簡體   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