Можно ли отключить подсветку синтаксиса в Asciidoctor?

Я использовал Asciidoctor для создания Мини-книга JHipster. Он отлично выглядит в PDF, MOBI, EPUB и HTML. Я также создал версию (PDF), которую можно распечатать. Версия для печати проходит через Лулу и печатается в черно-белом цвете.

Печатный PDF-файл содержит списки кодов в цвете, из-за чего списки кодов трудно читать при печати, особенно если они светло-серые (например, комментарии). Есть ли способ отключить подсветку синтаксиса в Asciidoctor?


person Matt Raible    schedule 12.10.2017    source источник


Ответы (3)


Простым способом было бы не говорить, на каком языке написан код. Просто замените

[source,ruby]
----
require 'sinatra'
----

с

[source]
----
require 'sinatra'
----
person EhmKah a.k.a. Michael Krauße    schedule 12.10.2017
comment
Верно, но это отключит подсветку синтаксиса в других артефактах (загружаемых PDF, MOBI и EPUB). Подсветка синтаксиса отлично смотрится в этих файлах. - person Matt Raible; 12.10.2017

Установите для атрибута source-highlighter значение html-pipeline, например. в CLI при вызове asciidoctor:

asciidoctor -a source-highlighter=html-pipeline FILE
person Jakub Jirutka    schedule 13.10.2017

Я нашел ответ с помощью @mojavelinux (Дэн Аллен) в Твиттере. Главное не передавать аргумент source-highlighter.

Вот мой generate-pdf.sh скрипт после внесения этого изменения.

#!/bin/bash
# Usage: `./generate-pdf.sh` to generate a printable 6x9" PDF with no syntax highlighting
#        `./generate-pdf.sh screen` to generate a downloadable 8.5x11" PDF

source $HOME/.rvm/scripts/rvm

rvm use 2.3.1 --quiet
if [ ! -d .bundle/gems ]; then
  rm -f Gemfile.lock
  bundle config --local github.https true
  bundle --path=.bundle/gems --binstubs=.bundle/.bin
fi

if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".ruby-version" ] && [ -f ".ruby-gemset" ]; then
  source "$rvm_path/scripts/rvm"
  rvm use `cat .ruby-version`@`cat .ruby-gemset`
fi

ASCIIDOCTOR_PDF="./.bundle/.bin/asciidoctor-pdf"
OPTIMIZE_PDF="`bundle exec gem contents --show-install-dir asciidoctor-pdf`/bin/optimize-pdf"

ROOT_DIR=$(realpath $(dirname $0))
MEDIA=prepress
HIGHLIGHTING=""
if [ ! -z "$1" ]; then
  MEDIA=$1
  HIGHLIGHTING="-a source-highlighter=coderay"
fi
BASE_DIR="$ROOT_DIR/src/docs/asciidoc"
OUT_DIR="$ROOT_DIR/build/asciidoc/pdf-$MEDIA"

$ASCIIDOCTOR_PDF --trace -B "$BASE_DIR" \
  -D "$OUT_DIR" \
  -S unsafe \
  -r "$ROOT_DIR/src/main/ruby/asciidoctor-pdf-extensions.rb" \
  -a media=$MEDIA \
  -a pdfmarks \
  -a pdf-style=infoq-$MEDIA \
  -a pdf-stylesdir="$BASE_DIR/styles/pdf" \
  -a pdf-fontsdir="$BASE_DIR/styles/pdf/fonts" \
  -a sourcedir=../../../main/webapp \
  $HIGHLIGHTING \
  -a imagesdir=images \
  -a toc \
  -a icons=font \
  -a idprefix \
  -a idseparator=- \
  -a projectdir=../../.. \
  -a rootdir=../../.. \
  -a project-name=jhipster-book \
  -a project-version=2.0.0-SNAPSHOT \
  -a attribute-missing=warn \
  "$BASE_DIR/index.adoc"

$OPTIMIZE_PDF "$OUT_DIR/index.pdf"
mv -f "$OUT_DIR/index-optimized.pdf" "$OUT_DIR/index.pdf"
person Matt Raible    schedule 13.10.2017