2014-10-28 82 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