繁体   English   中英

DocPad:如何防止渲染插件冲突?

[英]DocPad: How do I prevent clashing of render-plugins?

我正在为DocPad编写我的第一个插件,我真的很喜欢这个过程,因为它实际上非常直观。

我的插件使用shortcode-parser解析markdown文档中的短代码。

这是我的问题:

DocPad的标记插件"转换为" ,这完全是预期的行为。但是,这使我的插件中断了,因为原来的[tagname attribute="some value"]变成了[tagname attribute="some value"]

可能的解决方案:

已经有一个可以处理短代码的插件了。 通过使用文件扩展名可以避免此问题。 我编写自己的插件的原因是(除了学习DocPad之外),我不想为了启用我的插件而不得不向数百个文档添加文件扩展名。

除了使用文件扩展名来防止渲染插件冲突之外,还有其他替代方法吗? 例如,如果有一个配置属性来指定渲染插件的执行顺序–我认为这是一个很好的解决方案。

我只是使用扩展名。 如果有人感兴趣,可以在这里找到生成的插件: https : //github.com/maximilianschmitt/docpad-plugin-shortcodeparser

如果有人有解决此问题的更好的主意,请告诉我!

我认为拥有一个可以提供预定义管道的插件会很方便。
例如:

docpadConfig = {
    plugins:
        PLUGIN:
            main: '.html.md.eco'
}

使用具有扩展名.main此插件文档,可以将其视为具有扩展名'.html.md.eco'的文档。

不确定,但是也许可以通过如下查询替换管道:

docpadConfig = {
    collections:
        _main: ->
            @getCollection('html').findAllLive({extension:'main', }).on 'add', (model) ->
                model.setMeta({extensions:['html', 'md', 'eco']})
}

暂无
暂无

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

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