2014-10-28 40 views
3

我想編寫一個預處理程序,在它被Jekyll處理成HTML之前,它使用一系列標記語言。理想情況下,用戶只需創建一個名爲_posts/xxyyzz.md.wmd的文件,然後Jekyll會使用我提供的插件將其預處理爲xxyyzz.md,然後以通常的方式將其處理爲HTML。預處理jekyll中的標記文件

它看起來像Jekyll的轉換器框架不允許這樣做,因爲output_ext函數只給了最後的擴展名「wmd」,阻止它爲「.md.wmd」,「.textile」返回「.md」爲「.textile.wmd」等。

有沒有一種方法來實現這樣的處理步驟鏈?

編輯:語法

+0

您的問題是廣泛的。你可以嘗試更簡潔,向我們展示什麼應該被預處理的代碼示例,... – 2014-10-28 09:00:16

+0

@DavidJacquel謝謝。我簡化了這個問題只是一件事,我會分開發布我的另一個問題。 – wonder 2014-10-28 17:45:44

回答

3

也許你可以嘗試使用使用大規模殺傷性武器的轉換器中的Generator plugin

require "yourWmdConverter" 

module Jekyll 
    class ConvertWmd < Jekyll::Generator 

    def initialize(config) 
     config['convert_wmd'] ||= true 
    end 

    def generate(site) 
     @site = site 
     site.posts.docs.each { |post| convertWmd post } 
    end 

    private 

    def convertWmd(post) 
     post.content = yourWmdConverter post.content 
    end 

    end 
end 
+0

謝謝 - 我會研究它 – wonder 2014-10-28 21:08:07

+0

是的 - 這似乎工作,一旦我修改了'post.content','post.name','post.slug'和'post.ext'就位。 – wonder 2014-10-29 01:26:46

+0

'site.posts.each'在新版本的Jekyll中被棄用。改爲使用'site.posts.docs.each'。看到這個相關的[問題](https://github.com/jekyll/jekyll/issues/4199)。 – arogachev 2017-01-27 06:47:03