在kramdown中禁用语法猜测

时间:2016-05-03 18:38:03

标签: markdown syntax-highlighting kramdown

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

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

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

我可以禁用此语法吗?猜测'或者我是否因为错误突出显示的代码块而将text语言标记添加到错误地突出显示的代码块中,或者更糟糕的是{:.language-text}

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

1 个答案:

答案 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,但是没有任何关于您正在使用的指示,我只能查看其文档。