使用Jekyll插件在_site内生成文件

时间:2012-09-26 05:19:31

标签: ruby jekyll jekyll-extensions

我编写了一个Jekyll插件“Tags”,它生成一个文件并返回该文件的链接字符串。

一切都很好,但如果我将该文件直接写入_site文件夹,则会将其删除。如果我将该文件放在_site文件夹之外,则不会在_site。

中生成

我应该在何处以及如何添加我的文件以便在_site文件夹中可用?

1 个答案:

答案 0 :(得分:2)

您应该使用课程Page,并调用方法renderwrite

这是在我的博客上生成archive page的示例:

module Jekyll
  class ArchiveIndex < Page
    def initialize(site, base, dir, periods)
      @site = site
      @base = base
      @dir = dir
      @name = 'archive.html'
      self.process(@name)
      self.read_yaml(File.join(base, '_layouts'), 'archive_index.html')
      self.data['periods'] = periods
    end   
  end

  class ArchiveGenerator < Generator
    priority :low

    def generate(site)
        periods = site.posts.reverse.group_by{ |c| {"month" => Date::MONTHNAMES[c.date.month], "year" => c.date.year} }

        index = ArchiveIndex.new(site, site.source, '/', periods)
        index.render(site.layouts, site.site_payload)
        index.write(site.dest)
        site.pages << index
    end
  end
end