【发布时间】:2016-12-28 06:52:48
【问题描述】:
在 asciidoc 中有一个图像,我只想包含用于 PDF 输出。是否有一种属性可以传递给 image:: 以便处理图像以生成 PDF,并在生成 epub 等时忽略?或者更可能使用 ifdef,但究竟如何?
【问题讨论】:
标签: asciidoctor asciidoctor-pdf
在 asciidoc 中有一个图像,我只想包含用于 PDF 输出。是否有一种属性可以传递给 image:: 以便处理图像以生成 PDF,并在生成 epub 等时忽略?或者更可能使用 ifdef,但究竟如何?
【问题讨论】:
标签: asciidoctor asciidoctor-pdf
您可以像这样使用ifdef directive:
Some text for all outputs.
ifdef::backend-pdf[]
This is only displayed in the PDF document, you can use image:
image::mypict.png[]
endif::[]
【讨论】:
如果您需要一个简单而小型的解决方案,我更喜欢 Jminis 的答案。
对于需要更多区分的情况,您可以定义自己的过滤器参数,用于不同类型的输出,可以在命令行调用中定义为参数。您可以按如下方式过滤您的内容,例如如果您还想在不同的受众之间有所不同。
Some text for all outputs.
ifeval::["{myfilter1}"=="pdf"]
This content is pdf-only!
ifeval::["{myfilter2}"=="adminpdf"]
This content is admin-pdf-only!
endif::[]
endif::[]
可以在命令行调用中添加参数如下:
--attribute myfilter1='pdf'
该命令的确切表达式取决于您的系统。以下语法可以工作(我目前无法在没有 asciidoc-setup 的情况下对其进行测试)。
OS X asciidoc -> 文档:
SCRIPT=${...path to asciidoc installation...}/asciidoc.py
INPUT=myAsciidocInput.ad
OUTPUT=MyDocBookOutput.xml
MYFILTER="--attribute myfilter1='pdf' --attribute myfilter2='adminpdf'"
python "$SCRIPT" -o "$OUTPUT" "$MYFILTER "$INPUT"
WIN asciidoc -> 文档:
set SCRIPT=%{...path to asciidoc installation...}%\asciidoc.py
set INPUT=myAsciidocInput.ad
set OUTPUT=MyDocBookOutput.xml
set MYFILTER=--attribute myfilter1='pdf' --attribute myfilter2='adminpdf'
python "%SCRIPT%" -o "%OUTPUT%"
【讨论】:
MySourceFile.ad: ifeval::[{myfilter1}==pdf] 此内容仅限 pdf! endif::[] ifeval::[{myfilter2}==adminpdf] 此内容仅限 admin-pdf! endif::[] pom.xml: