ruby 用Jekyll编程生成文件

pwuypxnk  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(105)

假设我在_data文件夹中有一些数据,我想从这些数据中自动生成页面。也就是说:假设_data/structure.md是如下所示的值

chapters:
  -
    chapter1  
    chapter2 
    chapter3 
    ...

字符串
我需要静态文件chapter1.mdchapter2.md ...等等,它们在结构上非常相似(例如,chapter1.md

---
title:chapter1
layout: default
---

This is chapter1!!


).是否有一种方法可以自动创建这些文件,而无需手动操作,只需更改或添加_data文件中的项目?

wd2eg0qa

wd2eg0qa1#

您可以使用生成器(documentation)。这可能是这样的:

module Jekyll

  class DataPage < Page
    def initialize(site, base, dir, name)
      @site = site
      @base = base
      @dir = dir
      @name = name
      self.process(@name)
      self.data ||= {}
      self.data['layout'] = 'default'
      self.data['title'] = data
    end
  end

  class CategoryPageGenerator < Generator
    def generate(site)
      datas = site.data['structure']
      datas.each do |data|
        name = "#{data}.md"
        page = Jekyll::DataPage.new(site, site.source, @dir, name)
        page.data['title'] = data
        page.data['layout'] = 'default'
        page.content = "This is #{data}"
        site.pages << page
      end
    end
  end

end

字符串

相关问题