我正在为DocPad编写我的第一个插件,我真的很喜欢这个过程,因为它实际上非常直观。
我的插件使用shortcode-parser来解析我的markdown-documents中的短代码。
DocPad的marked-plugin会将"
转换为"
,这是完全预期的行为。但是,这会破坏我的插件,因为[tagname attribute="some value"]
变为[tagname attribute="some value"]
。
那里已经有a plugin来处理短代码。它通过使用文件扩展名来解决此问题。我编写自己的插件的原因是(除了学习DocPad之外)我不想为了启用我的插件而为数百个文档添加文件扩展名。
除了使用文件扩展名以防止渲染插件发生冲突外,还有其他干净的选择吗?例如,如果有一个配置属性来指定渲染插件执行的顺序 - 我认为这是一个非常好的解决方案。
答案 0 :(得分:0)
我刚刚使用扩展程序。如果有人对此感兴趣,可以在此处找到生成的插件:https://github.com/maximilianschmitt/docpad-plugin-shortcodeparser
如果有人有更好的想法来解决这类问题,请告诉我们!
答案 1 :(得分:0)
我认为拥有一个可以提供预定义管道的插件会很方便 例如:
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']})
}