/ / Как да получите сурово "съдържание" от всички страници - рубин, карта на сайта, зъбни колела, посредник

Как да получите суровото "съдържание" от всички страници - рубин, карта на сайта, зъбни колела, посредник

Опитвам се да създам индексен файл за сайта ми в 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 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

Надявам се това да помогне


1 за отговор № 2

Най- 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.