【发布时间】:2018-04-20 21:56:27
【问题描述】:
我正在输入 Markdown 数据并使用 Pandoc 输出 HTML 文件。使用--no-highlight 标志,我可以在没有内置基本语法突出显示的情况下获得要输出的语法,并使用 Prism.js 来突出显示代码,这更加健壮。
但是,Prism 要求 code 或 pre 在类名中包含 language-*。以php为例,Pandoc输出<pre class="php">。我已经设法通过使用以下方法破解它:
```language-php
作为每个代码块的开始。但是,当我想导出与 EPUB 相同的代码时,它无法识别能够使用内置语法突出显示的语言。
以下是我用于 EPUB 和 HTML 输出的命令:
# epub output
pandoc assets/metadata.yaml chapters/*.md -o build/book.epub
# html output
pandoc assets/metadata.yaml chapters/*.md -s --toc --no-highlight --css ../assets/style.css -A assets/template/footer.html -o build/book.html
我的问题:
我希望能够写作
```php
作为我的代码块的开始,而不是
```language-php
所以 Prism.js 和内置语法高亮器都可以工作,我的 EPUB 和 HTML 生成。
如果我能让 Pandoc 将“```php”解释为class="language-php",这将解决问题。
Pandoc GitHub 上的Here is a link 为其他与我尝试解决的相同问题的人分享。
【问题讨论】:
-
你就不能
sed '/s/class="php"/class="language-php"/'吗? -
使用pandoc filter 会比
sed更健壮... -
这将非常有用,谢谢!
标签: javascript bash haskell pandoc prismjs