如何在 bookdown 中添加新语言以突出显示

How to add a new language for highlight in bookdown

我正在使用 thesisdown 模板在 rmarkdown 中编写文档。

与问题thesisdown-41相关:如何添加当前不支持的新语言来突出显示?

link中提到的项目来源于bookdown

在幕后 bookdown 使用 pandoc 将 markdown 转换为 HTML/PDF/.... 从 http://pandoc.org/MANUAL.html#syntax-highlighting 的 pandoc 手册中我们得到:

  • 用于突出显示的库是skylighting
  • 可以使用 pandoc --list-highlight-languages
  • 检索可用语言列表

稍微跑题了,但我只是在 RMarkdown 而不是 Bookdown 中弄明白了如何做到这一点。我想您会需要这个,也许还需要更多。

通过 YAML front-matter 将额外的参数传递给 Pandoc:

output:
  html_document: 
    highlight: haddock
    pandoc_args: ["--syntax-definition", "cobol.xml"]  

从某处获取(或创建)XML 语法定义文件。我的 COBOL 版本来自:

wget http://kde.6490.n7.nabble.com/attachment/1163657/0/cobol.xml.gz

高亮文件的语法与 KDE 中的 Kate 项目使用的一样。

获取pre-req language.dtd文件,这是对pandoc的一些深度依赖。

wget https://raw.githubusercontent.com/jgm/highlighting-kate/master/xml/language.dtd

如果刚刚将这两个文件添加到我的 git 存储库,并将 YAML 行添加到我的 RMarkdown,然后一切都可以在其他开发人员机器上运行。