моя Посредник структура выглядит следующим образом:Использовать пользовательский помощник в Middleman Frontmatter
source/
blog/
post-one.md
post-two.md
blog.erb
index.md
мой config.rb
определяет этот помощник:
helpers do
TOP_LEVEL_DIR = Dir.pwd
def posts
files = Dir["#{TOP_LEVEL_DIR}/source/blog/*"]
files.map do |file|
created_at = `git log --follow --date=short --pretty=format:%ad --diff-filter=A -- #{file}`
basename = File.basename(file).split('.')[0]
{
date: created_at,
link: '/blog/' + basename,
title: basename.gsub('-', ' ').capitalize
}
end
end
end
И мой blog.erb
выглядит следующим образом:
<ul>
<% posts.each do |post| %>
<li><%=post[:date]%>: <%= link_to post[:title], post[:link] %></li>
<% end %>
</ul>
Это работает очень хорошо для меня, но я пропускаю одну вещь. Я хочу показать метаданные created_at
, которые я определил в своем пользовательском помощнике в макетах для post-one
и post-two
.
Обычно это делается путем определения Frontmatter, но я не хочу вручную вводить даты каждого сообщения, когда они доступны в git.
Так что мне нужен способ определения пользовательского помощника, который позволяет мне получить доступ к метаданным current_page
. Или какой-то другой способ передать метаданные, которые я вручную создаю в помощнике posts
в макете.