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
и его редактирования.
Для меня лучший способ использовать эту опцию -
Выберите приятный доступный стиль
Выведите его файл theme
Отредактируйте файл theme
Используйте это!
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