/ /すべてのページから生の "コンテンツ"を得る方法 - ruby​​、sitemap、sprockets、middleman

すべてのページから生の "コンテンツ"を得る方法 - ルビー、サイトマップ、スプロケット、仲買人

私はMiddlemanサイト用のインデックスファイルを作成しようとしていて、そのファイルに自分のページの生の "コンテンツ"を含めることを望んでいます。

/source/mypage.md:

---
title: My Page
---
# This is my page
With *my markdown*

そして

/source/myotherpage.md:

---
title: My Other Page
---
# Here is my other page

私は3番目のページを持っています /source/site_index.json.erb 出力が次のようになったとき:

 [
{"title": "My Page", "body": "#This is my pagenWith *my markdownn"},
{"title": "My Other Page", "body": "#Here is my other pagen"}
]

私はこのようなものを使用してタイトルなどを得ることができますが、私は身体を取得する方法を知りません:

[
<% sitemap.resources.select{|resource| resource.content_type == "text/html; charset=utf-8" unless resource.data.ignore }.each do |resource| %>
{
"title": <%= resource.data.title.to_json %>,
"body": <%= nil %>
} ,
<% end %>
]

回答:

回答№1は1

まだ前にMiddlemanを使ったことはありませんが、試してみました resource.render

のドキュメントによると http://rubydoc.info/gems/middleman-core/Middleman/Sitemap/Resource#render-instance_method それはうまくいくようです。

別の潜在的なリードは、 raw_body_content 〜で https://github.com/middleman/middleman-sitemap-api/blob/master/lib/middleman-sitemap-api/extension.rb#L122

お役に立てれば


回答№2の場合は1

resource オブジェクトにはソースファイルへのポインタがあります(source_file)あなたはただファイルの内容を読むことができます:

[
<%
pages = sitemap.resources.select{|resource| resource.content_type == "text/html; charset=utf-8" unless resource.data.ignore }
pages.each_with_index do |resource, index|
file = File.open(resource.source_file, "r")
content = file.read
%>
{
"title": <%= resource.data.title.to_json %>,
"body": <%= content.to_json %>
} <%="," unless( index == pages.length-1) %>
<% end %>
]

これは私のために働いて、Middlemanとテストしました3.3.3。