Pandoc: Каковы доступные синтаксические выделения?

Точка маркера 18 http://pandoc.org/demos.html#examples показывает, как изменить яркость синтаксиса, используя аргумент --highlight-style. Например:

pandoc code.text -s --highlight-style pygments -o example18a.html
pandoc code.text -s --highlight-style kate -o example18b.html
pandoc code.text -s --highlight-style monochrome -o example18c.html
pandoc code.text -s --highlight-style espresso -o example18d.html
pandoc code.text -s --highlight-style haddock -o example18e.html
pandoc code.text -s --highlight-style tango -o example18f.html
pandoc code.text -s --highlight-style zenburn -o example18g.html

Мне интересно, являются ли это единственными доступными цветовыми схемами. Если нет, как я могу загрузить другой синтаксический ярлык? Могу ли я определить свой собственный?

Ответы

Ответ 1

Пандок README говорит:

--highlight-style=STYLE|FILE

Указывает стиль окраски, который будет использоваться в выделенном исходном коде. Варианты: pygments (по умолчанию), kate, monochrome, breezeDark, espresso, zenburn, haddock и tango. Для получения дополнительной информации о подсветке синтаксиса в pandoc, см. Подсветка синтаксиса, ниже. Смотрите также --list-highlight-styles.

Вместо имени STYLE - файл JSON с расширением .theme может поставляться. Это будет проанализировано как KDE тема подсветки синтаксиса и (если допустимо) используется в качестве стиль выделения. Чтобы увидеть образец темы, которая может быть изменено, pandoc --print-default-data-file default.theme.

Для подсветки используется библиотека skylighting (в более старых версиях highlighting-kate). Если вам не нравится любая из предоставленных цветовых схем, вы можете:

  • Укажите файл .theme, как указано выше,
  • при экспорте в HTML создаются теги <span>, которые можно стилизовать с помощью пользовательского CSS или
  • при экспорте в LaTeX/PDF необходимо использовать пользовательский шаблон Pandoc LaTeX template и заменить деталь $highlighting-macros$ вашими определениями цветов, как описано в этой проблеме.

Ответ 2

Если ваш pandoc --version указывает выпуск 1.15.1 (с 15 октября 2015 г.) или новее, вы можете проверить, работает ли параметр --bash-completion, чтобы получить полный список доступных встроенных стилей выделения.

Run

pandoc --bash-completion

Если это сработает, вы увидите много результатов. И это будет полезно намного выше исходного вопроса...

Если --bash-completion работает, поместите эту строку в конец вашего файла ${HOME}/.bashrc (в Mac OS X или Linux - еще не работает в Windows):

eval "$(pandoc --bash-completion)"

Как только вы откроете новый терминал, вы можете использовать команду pandoc с надписью "tab":

pandoc --h[tab]

даст

--help     --highlight-style  --html-q-tags

pandoc --hi[tab]

даст

pandoc --highlight-style

Ответ на исходный вопрос:

Теперь нажмите кнопку [tab] еще раз, и вы увидите

espresso   haddock   kate   monochrome  pygments    tango    zenburn

Это список всех доступных подсветчиков синтаксиса. Чтобы сократить приоритет, вы также можете ввести

pandoc --hi[tab][tab]

чтобы получить тот же результат.

Полезность завершения вкладки Pandoc вне оригинального вопроса:

Завершение вкладки Pandoc bash также работает для всех остальных ключей командной строки:

pandoc -h[tab]

дает это - список всех возможных параметров командной строки:

Display all 108 possibilities? (y or n)
--ascii                    --indented-code-classes    --template
--asciimathml              --jsmath                   --title-prefix
--atx-headers              --katex                    --to
--base-header-level        --katex-stylesheet         --toc
--bash-completion          --latex-engine             --toc-depth
--biblatex                 --latex-engine-opt         --trace
--bibliography             --latexmathml              --track-changes
--chapters                 --listings                 --variable
--citation-abbreviations   --mathjax                  --verbose
--columns                  --mathml                   --version
--csl                      --metadata                 --webtex
--css                      --mimetex                  --wrap
--data-dir                 --natbib                   --write
--default-image-extension  --no-highlight             -A
--dpi                      --no-tex-ligatures         -B
--dump-args                --no-wrap                  -D
--email-obfuscation        --normalize                -F
--epub-chapter-level       --number-offset            -H
--epub-cover-image         --number-sections          -M
--epub-embed-font          --old-dashes               -N
--epub-metadata            --output                   -R
--epub-stylesheet          --parse-raw                -S
--extract-media            --preserve-tabs            -T
--file-scope               --print-default-data-file  -V
--filter                   --print-default-template   -c
--from                     --read                     -f
--gladtex                  --reference-docx           -h
--help                     --reference-links          -i
--highlight-style          --reference-odt            -m
--html-q-tags              --section-divs             -o
--id-prefix                --self-contained           -p
--ignore-args              --slide-level              -r
--include-after-body       --smart                    -s
--include-before-body      --standalone               -t
--include-in-header        --tab-stop                 -v
--incremental              --table-of-contents        -w

Одним из интересных вариантов использования для завершения вкладки Pandoc является следующее:

pandoc --print-default-d[tab][tab]

дает выходной список завершения для pandoc --print-default-data-file. Этот список дает вам представление о том, какие файлы данных ваш экземпляр Pandoc будет загружать, когда он выполняет свою работу. Например, вы можете исследовать детали вывода Pandoc по умолчанию ODT (текстовый файл OpenDocument), например:

pandoc --print-default-data-file odt/content.xml \
 | tr " " "\n" \
 | tr "<" "\n" \
 | grep --color "style"

Ответ 3

Начиная с pandoc 2.0.5, вы также можете использовать --print-highlight-style для вывода файла theme и его редактирования.

Для меня лучший способ использовать эту опцию -

  1. Выберите приятный доступный стиль

  2. Выведите его файл theme

  3. Отредактируйте файл theme

  4. Используйте это!

1. Доступные стили

Выберите свой стиль среди уже существующих:

breezedark

monochrome

kate

zenburn

espresso

haddock

tango

2. Выведите его файл theme

После того, как вы решили, какой стиль наиболее соответствует вашим потребностям, вы можете вывести его файл theme, используя (например, pygments, стиль по умолчанию):

pandoc --print-highlight-style pygments

чтобы вы могли сохранить этот стиль в файле, используя, например,

pandoc --print-highlight-style pygments > my_style.theme

3. Отредактируйте файл

С помощью руководства Skylighting JSON Themes отредактируйте файл в соответствии со своими потребностями/вкусом.

4. Используйте файл

В нужной папке просто используйте

pandoc my_file.md --highlight-style my_style.theme -o doc.html

Ответ 4

Если вы используете Pandoc версию 1.18 (выпущенную в октябре 2016 г.) или позже, возможен новый ответ:

  pandoc --list-highlight-languages

и

  pandoc --list-highlight-styles

предоставит вам всю информацию, которую вы просите.

Другими новыми параметрами командной строки, добавленными в v1.18, являются:

  pandoc --list-input-formats
  pandoc --list-output-formats
  pandoc --list-extensions