1

我们的博客有很多代码示例。因为我们目前使用的是 github 页面,所以 markdown 使用 kramdown+rouge 渲染。

这让我想到了我的问题:是否可以使用 Kramdown 选择特定于语法的突出显示?

问题是 kramdown 似乎错误地认为几乎所有以 JSON 开头{的代码都是 JSON 代码块。当包含的代码不是 JSON 时,这通常会导致我们的帖子中突出显示“JSON 错误”。

我是否可以禁用此语法“猜测”,或者我是否坚持将text语言标志添加到错误突出显示的代码块,或者更糟糕{:.language-text}的是错误突出显示的代码跨度。

希望有一种简单的方法可以禁用它。

4

1 回答 1

2

Kramdown 有几个选择

coderay_default_lang

设置突出显示代码块的默认语言

如果没有为代码块设置语言,则使用默认语言。该值必须是 coderay 支持的语言之一,或者nil不应该使用默认语言。

您可以将其设置为nil没有默认值,或者将其设置text为默认值。

syntax_highlighter

设置语法高亮

指定应该用于突出显示代码块和跨度的语法突出显示。如果此选项设置为nil,则不进行语法高亮。

可以使用syntax_highlighter_opts配置选项设置语法荧光笔的选项。

默认:coderay

设置 syntax_highlighternil并且根本没有语法荧光笔。

或者,您可以将其设置为rouge并通过配置选项传递Rouge支持的任何syntax_highlighter_opts选项。例如,default_langRouge 的设置可能会满足您的需求。

您可以通过命令行设置选项:

kramdown --coderay_default_lang=text

或在您的 Ruby 代码中:

Kramdown::Document.new(source_text, {coderay_default_lang: "text"})

或在文档本身中:

{::options coderay_default_lang="text" /}

可能有一种方法可以将这些选项从您正在使用的博客引擎传递给 Kramdown,但没有任何迹象表明您正在使用什么,我只能说检查它的文档。

于 2016-05-03T19:34:10.607 回答