在pandoc test.md -o test.html --highlight-style=pygments
中使用pandoc CLI时,输入markdown文件中的代码块会按照预期转换为格式良好的HTML:
<div class="sourceCode" id="cb1"><pre
class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> hello_world():</span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="bu">print</span>(<span class="st">"Hello, world!"</span>)</span></code></pre></div>
字符串
然而,当试图在Haskell程序中使用pandoc
库实现相同的结果时,使用如下内容:
processMarkdown :: Text -> IO Text
processMarkdown filePath = runIOorExplode $ do
let readerOpts = def {readerExtensions = enableExtension Ext_yaml_metadata_block (readerExtensions def)}
result <- readMarkdown readerOpts filePath
let writerOpts = def {writerHighlightStyle = Just pygments}
writeHtml5String writerOpts result
型
HTML中的结果代码都输出在一行上:
<p><code>python def hello_world(): print("Hello, world!")</code></p>
型
我该如何解决此问题?
1条答案
按热度按时间ftf50wuq1#
我不确定,但我怀疑你需要使用为Pandoc风格的Markdown启用的扩展,而不是默认的扩展集。换句话说,你应该使用
pandocExtensions
,而不是(readerExtensions def)
。