我正在尝试为我的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
我希望有一个位于/source/site_index.json.erb
的第三页,当输出看起来像:
[
{'title': 'My Page', 'body': '#This is my page\nWith *my markdown\n'},
{'title': 'My Other Page', 'body': '#Here is my other page\n'}
]
我可以使用类似的东西获得标题等,但我不知道如何获得原始身体:
[
<% 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 %>
]
答案 0 :(得分:1)
之前从未使用过Middleman,但您尝试过resource.render
吗?
根据http://rubydoc.info/gems/middleman-core/Middleman/Sitemap/Resource#render-instance_method的文档,它似乎应该有效。
另一个潜在的潜在客户是以下对https://github.com/middleman/middleman-sitemap-api/blob/master/lib/middleman-sitemap-api/extension.rb#L122
的raw_body_content
的引用
希望这有帮助
答案 1 :(得分: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测试。