繁体   English   中英

Hakyll:启用pandoc扩展?

[英]Hakyll: enabling pandoc extensions?

我想为Hakyll帖子启用Ext_autolink_bare_uris pandoc扩展。 我按照这里给出的说明进行操作,并且一切似乎都可以正常进行……除了扩展名! 帖子中的裸URI不会转换为链接。 其他一切似乎都正常。 这是site.hs的代码:

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在所有相关位置使用。 该代码可以正常编译,但不会产生预期的效果。 谁能帮我发现原因?

先感谢您。

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

较新的Hakyll版本使用Pandoc 2.x进行了很多更改(尤其是参见PR#557 )。 值得注意的是,扩展Set模型已消失,取而代之的是自定义类型。

无论如何,这是一个相当自定义的设置,对我们来说很好-禁用了一个默认的阅读器扩展,并添加了一些额外的扩展。 可能还有更整齐的方法可以做到这一点。

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

还要注意,我发现哪个扩展是读者还是哪个作者并不总是很明显(也不是类型安全的)。 我想可能两者兼有...但是请检查一下您是否将其放置在正确的位置,因为这是一个容易犯的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM