2016-12-28 3 views
0

В asciidoc есть изображение, которое я хотел бы включить только для вывода PDF. Есть ли какой-то атрибут, который я могу передать image :: так, чтобы изображение обрабатывалось для генерации PDF и игнорировалось при создании epubs и т. Д.? Или, скорее, с помощью ifdef, но как именно?В asciidoc как выполнить макрос только для генерации PDF?

ответ

1

Вы можете использовать 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::[] 
1

Если вам нужен простой и небольшое решение, я бы предпочел 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).

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" 

WIN 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%" 
+0

Я использую asciidoc через Java/Maven, но это интересно в любом случае! :-) – seinecle

+0

По короткой попытке AsciiDoctor не поддерживает вложенные условные обозначения. (Или я был слишком noobish, чтобы запустить его прямо :-D.) Следующий пример работает для меня в AsciiDoctor с мавена: 'MySourceFile.ad': ifeval :: [{myfilter1} == PDF] Это содержание только в формате pdf! endif :: [] ifeval :: [{myfilter2} == adminpdf] Этот контент является администратором-pdf-only! ENDIF :: [] 'pom.xml': <конфигурация> PDF ... PDF - adminpdf Извините за плохой формат: / –

Смежные вопросы