我编写了一个生成小JSON文件的简单插件
module Jekyll
require 'pathname'
require 'json'
class SearchFileGenerator < Generator
safe true
def generate(site)
output = [{"title" => "Test"}]
path = Pathname.new(site.dest) + "search.json"
FileUtils.mkdir_p(File.dirname(path))
File.open(path, 'w') do |f|
f.write("---\nlayout: null\n---\n")
f.write(output.to_json)
end
# 1/0
end
end
end
但每次Jekyll运行完成时,生成的JSON文件都会被删除。如果我将除法除以零线并导致它出错,我可以看到search.json
文件正在生成,但随后会被删除。我该如何防止这种情况?
答案 0 :(得分:0)
我发现了以下问题,建议将文件添加到keep_files
:https://github.com/jekyll/jekyll/issues/5162,该文件有效:
新代码似乎避免search.json
被删除:
module Jekyll
require 'pathname'
require 'json'
class SearchFileGenerator < Generator
safe true
def generate(site)
output = [{"title" => "Test"}]
path = Pathname.new(site.dest) + "search.json"
FileUtils.mkdir_p(File.dirname(path))
File.open(path, 'w') do |f|
f.write("---\nlayout: null\n---\n")
f.write(output.to_json)
end
site.keep_files << "search.json"
end
end
end
答案 1 :(得分:0)
将新页面添加到site.pages
:
module Jekyll
class SearchFileGenerator < Generator
def generate(site)
@site = site
search = PageWithoutAFile.new(@site, site.source, "/", "search.json")
search.data["layout"] = nil
search.content = [{"title" => "Test 32"}].to_json
@site.pages << search
end
end
end
受jekyll-feed code的启发。