我玩 Jekyll 有一段时间了。在某些情况下,我觉得功能有限。所以我计划以这种方式扩充我的网站:
- 只使用Jekyll渲染一些固定的基础组件(向后兼容不支持JS的环境)。
- 使用 Jekyll 输出元数据,例如XML 或 JSON。
- 使用客户端 JS 和元数据提供更丰富的功能。
当必填字段固定时,任务就很容易了。例如人们可能会使用 Jekyll 生成 RSS (xml) 提要;有些人使用 Jekyll 生成搜索索引(带有“标题”、“日期”等的 xml)。
现在我想为我的模板的最终用户提供更多自由,因此我不限制在 YAML 前端使用的字段。有没有一种方便的方法可以将完整的 YAML 前端内容转换为 JSON 到 XML 格式?
我没有在 Jekyll 或 Liquid 手册中找到支持转储完整的 YAML 前端内容。如果我直接输出{{ page }}
,结果是这样的:
{"name"=>"Google", "date"=>#, "link"=>"http://google.com/", "open_source"=>false, "open_format"=>false, "rate_use"=>10, "rate_quality"=>9, "tags"=>["Google", "Search Engine", "Information Retrieval"], "language"=>"en", "layout"=>"default", "mathjax"=>false, "url"=>"/sample/google.html", "content"=>"我每天都用的搜索引擎。\n\n"}
至少有两个问题:
- 我需要一个 JS 中的 ruby-to-JSON/XML 转换器。 (或将其直接读取为 JS 数据结构的解析器)。
- 有些字段没有正确输出,例如
日期
。
希望有人能给我指点相关资源和以前的类似试验。
非常感谢。
(这是来自 jekyll-rb Google Group 的重定向以获得更快的响应)
相关问题:
- Jekyll - generating JSON files alongside the HTML files . JekyllBot的指针很有用,但需要更多设置。我不想打扰我的最终用户。最好的是只使用标准的 Jekyll 和 Liquid 设施。
最佳答案
对于遇到此问题并试图找到一种方法将任何 Jekyll 的 YAML 数据(来自 Frontmatter 或来自 _data 中的文件)转换为模板中的 JSON 的任何人:
Jekyll 有一个名为 jsonify
的过滤器。 super 简单明了。 https://jekyllrb.com/docs/templates/
文档中的示例:
{{ site.data.projects | jsonify }}
关于xml - Jekyll——将完整的 YAML 前端内容转换为 XML/JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889512/