首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hakyll:启用pandoc扩展?

Hakyll:启用pandoc扩展?
EN

Stack Overflow用户
提问于 2017-08-27 22:17:59
回答 1查看 435关注 0票数 2

我想为Hakyll帖子启用Ext_autolink_bare_uris pandoc扩展。我按照here的指示进行了操作,一切似乎都正常……除了那个扩展名!posts中的空URI不会转换为链接。其他一切似乎都很正常。下面是site.hs中的代码

代码语言:javascript
复制
import qualified Data.Set as S
import           Text.Pandoc.Options

...

customPandocCompiler :: Compiler (Item String)
customPandocCompiler =
  let customExtensions = [Ext_autolink_bare_uris]
      defaultExtensions = writerExtensions defaultHakyllWriterOptions
      newExtensions = foldr S.insert defaultExtensions customExtensions
      writerOptions = defaultHakyllWriterOptions {
                        writerExtensions = newExtensions
                      }
  in pandocCompilerWith defaultHakyllReaderOptions writerOptions

所有相关的地方都使用了customPandocCompiler。代码可以正常编译,但不会产生所需的效果。有人能帮我找出原因吗?

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-07-24 21:47:18

现在这个问题有点老了,但也许这会对某些人有所帮助。

较新的Hakyll版本使用了Pandoc 2.x,这改变了很多东西(特别是PR #557 )。值得注意的是,扩展的Set模型消失了,取而代之的是自定义类型。

无论如何,这里有一个相当定制的设置,对我们来说工作得很好-禁用一个默认的阅读器扩展,并添加一些额外的扩展。可能还有一种更好的方法来做到这一点。

代码语言:javascript
复制
customRenderPandoc :: Item String -> Compiler (Item String)
customRenderPandoc = renderPandocWith customReaderOptions defaultHakyllWriterOptions
    where customReaderOptions = def { readerExtensions = extraReaderExts <> customReaderExts }
          extraReaderExts = extensionsFromList [Ext_auto_identifiers, Ext_ascii_identifiers, Ext_emoji, Ext_backtick_code_blocks]
          customReaderExts = disableExtension Ext_implicit_figures $ pandocExtensions

还要注意,我发现哪些扩展是阅读器,哪些是编写器并不总是显而易见(也不是类型安全的)。我猜有些人可能两者兼而有之。但请检查您是否将您的代码放在正确的位置,因为这是一个很容易出错的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45905951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档