[英]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.