2013-06-03 45 views
1

我一直在玩Jekyll一段時間。在某些情況下,我覺得功能有限。所以我打算用這種方式來擴充我的網站:Jekyll - 將完整的YAML前端轉換爲XML/JSON

  • 只使用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紅寶石到JSON/XML轉換器。 (或者一個解析器直接將其作爲JS數據結構讀取)。
  • 某些字段輸出不正確,例如date

希望有人能指點我相關的資源和以前的試驗這樣。

非常感謝。

(這是從jekyll-rb Google Group重定向來獲得更快的響應)

相關問題:

+1

你想創建一個包含所有頁面的YAML(如JSON),或爲每個頁面創建一個單獨的文件(第一個是可能只是一個大的JSON文件與jekyll,後者不是那麼多)? – Polygnome

+0

@Polygnome,我原本是指後者,但前者也可以是一種解決方法(性能較差,因爲客戶端JS會讀取不相關的信息)。當frontmatter中使用的字段是固定的,這不是問題。我們可以迭代所有頁面,然後遍歷所有預期的字段。我試圖用這種方式建立一個站內搜索索引。但是,當頁面具有自定義的前置字段時,我不知道如何將它們全部轉儲。 –

+0

對不起,遲到了....我剛剛發現了SF的評論通知。嘆。 –

回答

0

我和你有同樣的問題,並設法找到一個Jekyll插件來幫忙。這並不完美(我不知道是否有陣列支持),但它工作得很好。

這裏的鏈接:https://github.com/matthewowen/jekyll-json

基本上只是把紅寶石的文件/目錄_plugins裏面。我也發現你必須在_config裏輸入至少一個值。yml文件,然後將其添加到您爲各個帖子頁面創建的每個對象中

+0

該插件看起來不錯,但GitHub不允許插件...我認爲YAML到JSON的轉換是一種常見的需求。如果這個標籤可以由Liquid正式支持,這將會非常有用 –

2

對於任何遇到此問題的人都試圖找到一種方法將任何Jekyll的YAML數據(來自Frontmatter或來自文件_data)到JSON:

Jekyll有一個名爲jsonify的過濾器。超級簡單直接。從文檔https://jekyllrb.com/docs/templates/

例子:

{{ site.data.projects | jsonify }}