Haskell中的代码格式不支持Pandoc

voj3qocg  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(168)

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">&quot;Hello, world!&quot;</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>


我该如何解决此问题?

ftf50wuq

ftf50wuq1#

我不确定,但我怀疑你需要使用为Pandoc风格的Markdown启用的扩展,而不是默认的扩展集。换句话说,你应该使用pandocExtensions,而不是(readerExtensions def)

相关问题