是否可以关闭 Asciidoctor 中的语法高亮显示?

Is it possible to turn off syntax highlighting in Asciidoctor?

我用过Asciidoctor to create my JHipster Mini-Book。它在 PDF、MOBI、EPUB 和 HTML 中看起来很棒。我还创建了一个可打印的 (PDF) 版本。可打印版本通过 Lulu,并以黑白打印。

可打印 PDF 的代码清单是彩色的,这导致代码清单在打印时难以阅读,尤其是当它们是浅灰色时(例如注释)。有没有办法关闭 Asciidoctor 中的语法高亮显示?

一个简单的方法是不说明代码使用的是哪种语言。只需更换

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

[source]
----
require 'sinatra'
----

将属性 source-highlighter 设置为 html-pipeline,例如在调用 asciidoctor 时在 CLI 上:

asciidoctor -a source-highlighter=html-pipeline FILE

我在 Twitter 上@mojavelinux (Dan Allen) 的帮助下找到了答案。关键是不要传入 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 [=10=]))
MEDIA=prepress
HIGHLIGHTING=""
if [ ! -z "" ]; then
  MEDIA=
  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"