Jekyll - 将完整的YAML Front-matter转换为XML / JSON

时间:2013-06-03 03:03:38

标签: xml json jekyll

我一直在玩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"=>"The search engine I use everyday. \n\n"}

至少有两个问题:

  • 我需要JS中的ruby-to-JSON / XML转换器。 (或解析器直接将其读作JS数据结构)。
  • 某些字段输出不正确,例如date

希望有人能指出相关资源和以前的试验。

非常感谢。

(这是jekyll-rb Google Group的重定向以获得更快的响应)

相关问题:

2 个答案:

答案 0 :(得分:3)

对于遇到这种情况的人,试图找到一种方法将任何Jekyll的YAML数据(从Frontmatter或_data中的文件)转换为模板中的JSON:

Jekyll有一个名为jsonify的过滤器。超级简单直接。 https://jekyllrb.com/docs/templates/

文档示例:

 {{ site.data.projects | jsonify }}

答案 1 :(得分:0)

我遇到了和你一样的问题,并设法找到一个Jekyll插件来帮忙。它并不完美(我不知道是否有阵列支持)但它的效果非常好。

以下是链接:https://github.com/matthewowen/jekyll-json

基本上只需将ruby文件放在/ _plugins目录中。我还发现你必须在_config.yml文件中输入至少一个值,然后将其添加到为各自的帖子页面创建的每个对象中