这是我的pry控制台:
> input = <<-HEREDOC
* # Header 1
* ## Header 2
*
* ```
* def hello
* puts "hello world"
* end
* ```
* HEREDOC
=> "# Header 1n## Header 2nn```ndef hellon puts "hello world"nendn```n"
> Kramdown::Document.new(input, input: "GFM", syntax_highlighter: "rouge").to_html
=> "<h1 id="header-1">Header 1</h1>n<h2 id="header-2">Header 2</h2>nn<div class="highlighter-rouge">def hellon puts "hello world"nendn</div>n"
您可以看到,为代码块生成的HTML不包含任何<pre>
代码包装器。但是,如果我删除了rouge
选项并使用coderay
,则可以很好地工作。
> Kramdown::Document.new(input, input: "GFM").to_html
=> "<h1 id="header-1">Header 1</h1>n<h2 id="header-2">Header 2</h2>nn<pre><code>def hellon puts "hello world"nendn</code></pre>n"
任何想法怎么了?预先感谢。
这是因为rouge
GEM版本。我需要将其更改为&lt;v2.0.0
。现在我正在使用:
- kramdown v1.13.1
- Rouge V1.11.1