“pandoc -f markdown -t native”shell 命令的输出与 Pandoc Haskell 库生成的结果不同

问题描述 投票:0回答:1

执行以下命令

pandoc -f markdown example.md -t native

example.md

$(λx.M)$

出品:

[ Para [ Math InlineMath "(\955x.M)" ] ]

但是,以下代码从同一个文件中读取:

module Main where

import Control.Monad
import Control.Monad.Catch
import Control.Monad.IO.Class
import qualified Data.Text.IO as TIO
import Text.Pandoc

main :: IO ()
main = 
  TIO.putStrLn 
    =<< 
      runIOorExplode (do
        markdownText <- liftIO $ TIO.readFile "example.md"
        doc <- readMarkdown def markdownText
        writeNative def doc
      )

并生产:

[ Para [ Str "$(\955x.M)$" ] ]

这里发生了什么?为什么数学块不被解析为

Math
类型?

haskell markdown pandoc
1个回答
0
投票

Pandoc 允许为其支持的格式启用或禁用各种扩展。

def
默认扩展集仅包含少数适用于大多数格式的扩展。对于 pandoc 的 Markdown,您需要来自 pandocExtensions
 模块的 
Text.Pandoc.Extensions
。修改阅读器参数以使用它们,并将修改后的选项作为第一个参数传递给 
readMarkdown
应该会给出所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.