执行以下命令
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
类型?
Pandoc 允许为其支持的格式启用或禁用各种扩展。
def
默认扩展集仅包含少数适用于大多数格式的扩展。对于 pandoc 的 Markdown,您需要来自 pandocExtensions
模块的
Text.Pandoc.Extensions
。修改阅读器参数以使用它们,并将修改后的选项作为第一个参数传递给 readMarkdown
应该会给出所需的结果。