Pandoc:荧光笔的可用语法是什么?

时间:2015-06-16 23:57:12

标签: syntax-highlighting pandoc

http://pandoc.org/demos.html#examples的子弹点18显示了如何通过为--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

我想知道这些是否是唯一可用的配色方案。如果没有,我如何加载不同的语法荧光笔?我可以定义自己的吗?

4 个答案:

答案 0 :(得分:20)

如果您的pandoc --version表示发布了1.15.1(2015年10月15日)或更新,那么您可以检查--bash-completion参数是否适用于您获取完整列表可用的内置高亮样式。

运行

pandoc --bash-completion

如果有效,你会看到很多输出。它将远远超出上述原始问题......

如果--bash-completion有效,请将此行放在${HOME}/.bashrc文件的末尾(在Mac OS X或Linux上 - 还不能在Windows上运行):

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

打开新终端后,您可以使用pandoc命令与"标签完成"

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"

答案 1 :(得分:16)

Pandoc README says

  

--highlight-style=STYLE|FILE

     

指定要在突出显示的源代码中使用的着色样式。   选项为pygments(默认),katemonochrome,   breezeDarkespressozenburnhaddocktango。   有关pandoc中语法突出显示的更多信息,请参阅   Syntax highlighting,下方。也可以看看   --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$部分替换为您的自定义颜色定义,如this issue中所述。

答案 2 :(得分:14)

pandoc 2.0.5起,您还可以使用--print-highlight-style输出theme文件并对其进行修改。

对我而言,使用此选项的最佳方式是

  1. 选择一种愉快的风格

  2. 输出其theme文件

  3. 编辑theme文件

  4. 使用它!

  5. 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
    

答案 3 :(得分:11)

如果您使用的是Pandoc 1.18版(2016年10月发布)或更高版本,则可以获得新答案:

  pandoc --list-highlight-languages

  pandoc --list-highlight-styles

将为您提供所需的所有信息。

添加到v1.18的其他新信息命令行参数是:

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