使用 Prism 输出语义代码块
Output semantic code blocks with Prism
我正在使用 Pandoc 输入降价数据并输出 HTML 文件。使用 --no-highlight
标志,我可以在没有内置基本语法突出显示的情况下获取要输出的语法,并使用 Prism.js 来突出显示代码,这更加健壮。
但是,Prism 要求 code
或 pre
在 class 名称中包含 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"
,这将解决问题。
Here is a link 在 Pandoc GitHub 上,其他人遇到了我正在尝试解决的相同问题。
我也赞成使用 sed,但作为预处理器。您可以编写如下所示的脚本,并将其命名为 pre-process
:
#!/bin/bash -e
derived_dir=derived
rm -fr ${derived_dir} && mkdir -p ${derived_dir}
for file in $*
do
cat ${file} | sed 's/```php/```language-php/g' > ${derived_dir}/$(basename ${file})
done
echo "${derived_dir}/*"
然后您可以在源代码中使用 ```php
,并通过以下方式生成 html:
pandoc assets/metadata.yaml $(pre-process chapters/*.md) -s --toc --no-highlight --css ../assets/style.css -A assets/template/footer.html -o build/book.html
希望对您有所帮助。
我正在使用 Pandoc 输入降价数据并输出 HTML 文件。使用 --no-highlight
标志,我可以在没有内置基本语法突出显示的情况下获取要输出的语法,并使用 Prism.js 来突出显示代码,这更加健壮。
但是,Prism 要求 code
或 pre
在 class 名称中包含 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"
,这将解决问题。
Here is a link 在 Pandoc GitHub 上,其他人遇到了我正在尝试解决的相同问题。
我也赞成使用 sed,但作为预处理器。您可以编写如下所示的脚本,并将其命名为 pre-process
:
#!/bin/bash -e
derived_dir=derived
rm -fr ${derived_dir} && mkdir -p ${derived_dir}
for file in $*
do
cat ${file} | sed 's/```php/```language-php/g' > ${derived_dir}/$(basename ${file})
done
echo "${derived_dir}/*"
然后您可以在源代码中使用 ```php
,并通过以下方式生成 html:
pandoc assets/metadata.yaml $(pre-process chapters/*.md) -s --toc --no-highlight --css ../assets/style.css -A assets/template/footer.html -o build/book.html
希望对您有所帮助。