В asciidoc, как мне выполнить макрос только для генерации PDF?
В asciidoc есть изображение, которое я хотел бы включить только для вывода PDF. Есть ли какой-то атрибут, который я могу передать в image::, чтобы изображение обрабатывалось для генерации PDF, и игнорировалось при генерации epubs и т. Д.? Или, скорее, с помощью ifdef, но как именно?
2 ответа
Вы можете использовать директиву ifdef следующим образом:
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 -> docbook:
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"
ВЫИГРАЙТЕ asciidoc -> docbook:
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%"