当前PanDoc可以写入asciidoc,但无法读取:
Issue
.
此外,似乎没有用haskell编写的asciidoc解析器,所以没有纯的haskell解决方案。
然而,哈基尔已经
unixFilter
它可以使用从stdin输入并输出到stdout的任何命令。因此,你可以打电话给
asciidoctor
转换命令
.asciidoc
文件。
步骤如下:
1。安装asciidocker
乌邦图
$ apt-get install asciidoctor
费多拉
$ dnf install asciidoctor
ARCLinux
$ pacman -S asciidoctor
红宝石
$ gem install asciidoctor
2。定义PandoCompilerWithAsciiDoctor
将以下代码添加到
site.hs
pandocCompilerWithAsciidoctor :: Compiler (Item String)
pandocCompilerWithAsciidoctor = do
extension <- getUnderlyingExtension
if extension == ".asciidoc" then
getResourceString >>= withItemBody (unixFilter "asciidoctor" ["-"])
else
pandocCompiler
代替
pandocCompiler
在里面
地点HS
具有
pandocCompilerWithAsciidoctor
三。重新编译
$ stack build
$ stack exec site rebuild
注意,文件名必须是
2018-01-23-adoc-user-manual.asciidoc
而不是
2018-01-23_adoc-user-manual.asciidoc
,或者出现错误:
[ERROR] Missing field $date$ in context for item posts/2018-01-23_adoc-user-manual.asciidoc