这是上面评论中我的想法的一些代码。匹配术语并将文本转换为链接或类似内容的逻辑尚不可用。
这只是为职位工作的一个粗略想法。如果您设法运行这样的网站,我很乐意看到任何工作代码。无论如何,我希望这会有所帮助。
_data/glossary/en.yml 中的数据文件
- term: test
definition: this is a test definition
- term: another
definition: this is a another definition
用于创建可访问索引变量的生成器插件
module Jekyll
class GlossaryEntryGenerator < Jekyll::Generator
safe true
def generate(site)
@glossary_entries = Hash.new
@site = site
@site.data["glossary"]["en"].each do |entry|
add_term(entry["term"], entry["definition"])
end
@site.config["glossary_entries"] = @glossary_entries
end
private
def add_term(term, definition)
@glossary_entries[term] = [term, definition]
end
end
end
钩子插件替换内容
module Foobar
def self.transform(site)
puts site.config["glossary_entries"]
site.documents.each do |doc|
puts doc
# page.content match word from @glossary_entries
doc.content.gsub!('foo', 'bar')
end
end
end
Jekyll::Hooks.register :site, :pre_render do |site|
Foobar.transform(site)
end
构建站点时,任何“foo”内容都将转换为“bar”。这可以是任何东西,例如格式、链接等