是否可以关闭 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"
我用过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"