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

标签 ruby jekyll jekyll-extensions

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

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

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

最佳答案

您应该为此使用类 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

关于ruby - 使用 Jekyll 插件在 _site 内生成文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12594990/

相关文章:

ruby - 数据库 :migrate hangs on simple migration

mysql - 如何查询rails方式?轨道3.2

ruby - 将 Jekyll 提供给 localhost 的问题,eventmachine 1.2.7 安装时出错

github - 将 Google 分析添加到 jekyll 博客

ruby - 如何软重启 ruby​​ 应用程序?

ruby - Amazon SQS 优先级队列

ruby - Cron 不会执行 ruby​​ 脚本

css - 如何为 Jekyll 添加自动前缀

emacs - 使用 octopress 和 emacs org-mode 来写博客

ruby - 使用带有 jekyll 的 html-proofer 忽略标签