【问题标题】:Pandoc: What are the available syntax highlighters?Pandoc:有哪些可用的语法荧光笔?
【发布时间】:2015-09-02 00:23:48
【问题描述】:

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

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

【问题讨论】:

  • 现在使用 pandoc 可以轻松编辑 .theme 文件,参见。 my answer。这个回答“我可以定义我自己的吗?”我相信以最愉快的方式回答你的问题。

标签: syntax-highlighting pandoc


【解决方案1】:

由于pandoc 2.0.5,还可以使用--print-highlight-style输出theme文件并进行编辑。

对我来说,使用此选项的最佳方式是

  1. 选择一个令人愉快的可用样式

  2. 输出其theme文件

  3. 编辑theme文件

  4. 使用它!

1。可用样式

在现有的风格中选择你的风格:

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

【讨论】:

  • 这是天赐之物。我一直在寻找这样的东西。谢谢!
  • 谢谢你,克莱门特!直到现在我才知道这个新功能。来自我的 +1!
【解决方案2】:

如果您的 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"

【讨论】:

    【解决方案3】:

    Pandoc README says:

    --highlight-style=STYLE|FILE

    指定要在突出显示的源代码中使用的着色样式。 选项有pygments(默认)、katemonochromebreezeDarkespressozenburnhaddocktango。 有关 pandoc 中语法突出显示的更多信息,请参阅 Syntax highlighting,如下。也可以看看 --list-highlight-styles.

    不是 STYLE 名称,而是带有扩展名的 JSON 文件 可以提供.theme。这将被解析为 KDE 语法高亮主题和(如果有效)用作 突出风格。要查看一个示例主题,可以 已修改,pandoc --print-default-data-file default.theme.

    skylighting(在旧版本中为highlighting-kate)用于突出显示。如果您不喜欢任何提供的配色方案,您可以:

    • 如上所述指定.theme 文件,
    • 导出为 HTML 时,会生成 &lt;span&gt; 标记,您可以使用自定义 CSS 设置样式,或者
    • 导出为 LaTeX/PDF 时,您需要使用自定义 Pandoc LaTeX template 并将$highlighting-macros$ 部分替换为您的自定义颜色定义,如this issue 中所述。

    【讨论】:

      【解决方案4】:

      如果您使用的是 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
      

      【讨论】:

        猜你喜欢
        • 2010-11-12
        • 1970-01-01
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 2014-07-09
        • 1970-01-01
        • 2013-03-18
        相关资源
        最近更新 更多