我正在使用这个 haskell pandoc 包含文件过滤器
#!/usr/bin/env runhaskell
-- includes.hs
import Text.Pandoc.JSON
doInclude :: Block -> IO Block
doInclude cb@(CodeBlock (id, classes, namevals) contents) =
case lookup "include" namevals of
Just f -> return . (CodeBlock (id, classes, namevals)) =<< readFile f
Nothing -> return cb
doInclude x = return x
main :: IO ()
main = toJSONFilter doInclude
在 markdown 中使用以下代码片段
~~~~ {include="tasks/mdbook.js"}
~~~~
实际上,这确实将文件包含到 Markdown 中,但我希望它还包含代码格式,例如
```js
file content here
```
我如何更新上面的 haskell 代码来完成这个?类似的东西
~~~~ {code="tasks/mdbook.js", format="js"}
~~~~
最佳答案
由于include
过滤器保留了代码块的所有类
,因此您可以简单地包含文件内容并对其应用代码格式:
~~~~ {.javascript include="tasks/mdbook.js"}
~~~~
关于haskell - pandoc 在 haskell 中包含文件过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584396/