我们的博客有很多代码示例。因为我们目前正在使用github页面,所以markdown将使用kramdown + rouge进行渲染。
这让我想到了一个问题:是否可以使用Kramdown进行特定于语法的突出显示?
问题是kramdown似乎错误地认为几乎任何以{
开头的代码都是JSON代码块。这通常会导致" JSON错误"当包含的代码不是JSON时,在我们的帖子中突出显示。
我可以禁用此语法吗?猜测'或者我是否因为错误突出显示的代码块而将text
语言标记添加到错误地突出显示的代码块中,或者更糟糕的是{:.language-text}
。
希望有一种简单的方法可以禁用它。
答案 0 :(得分:2)
Kramdown有一些options:
coderay_default_lang
设置突出显示代码块的默认语言
如果没有为代码块设置语言,则使用默认语言。如果不使用默认语言,则值必须是coderay或
nil
支持的语言之一。
您可以将其设置为nil
并且没有默认值,或将其设置为text
以使其成为默认值。
syntax_highlighter
设置语法高亮显示
指定应用于突出显示代码块和跨度的语法高亮显示器。如果此选项设置为
nil
,则不会进行语法突出显示。可以使用
syntax_highlighter_opts
配置选项设置语法高亮显示器的选项。默认值:
coderay
将syntax_highlighter
设置为nil
,并且根本没有语法高亮显示。
或者您可以将其设置为rouge
并通过syntax_highlighter_opts
配置选项传入Rouge支持的任何选项。例如,Rouge的default_lang
设置可能会满足您的需求。
您可以通过命令行设置选项:
kramdown --coderay_default_lang=text
或在您的Ruby代码中:
Kramdown::Document.new(source_text, {coderay_default_lang: "text"})
或在文件中:
{::options coderay_default_lang="text" /}
可能有一种方法可以将这些选项从您正在使用的博客引擎传递到Kramdown,但是没有任何关于您正在使用的指示,我只能查看其文档。