0

我正在当前版本的 Middleman 中创建一个博客,我希望能够创建一个博客上所有作者的列表以显示在侧边栏上(就像我做一个标签一样,它会链接到列出的页面所有作者的帖子(有点像作者档案?)

到目前为止,我在每一页的顶部都有一个“作者”frontmatter 块:

---
author: Joe Bloggs
---

我曾考虑过使用前端来执行此操作,但前端似乎只允许特定于页面的变量,例如:

 ---
  layout: "blog"
  authors:
    - author 1
    - author 2
    - author 3
  ---

  <ul>
    <% current_page.data.authors.each do |f| %>
    <li><%= f %></li>
    <% end %>
  </ul>

而不是创建存档页面。

我想我可以像显示标签列表一样做到这一点:

<ul>
<% blog.tags.each do |tag, articles| %>
<li><%= link_to tag, tag_path(tag) %></a></li>
<% end %>
</ul>

但到目前为止还没有运气。我做了谷歌搜索,但没有找到具体的。

任何人都可以提出一个可能的代码解决方案吗?

4

1 回答 1

1

首先,您需要在 config.rb 中添加代理:

中间人:动态页面

# Assumes the file source/author/template.html.erb exists
["tom", "dick", "harry"].each do |name|
  proxy "/author/#{name}.html", "/author/template.html", :locals => { :person_name => name }, :ignore => true
end

然而,问题是中间人博客引擎似乎并没有正式支持每篇文章的不同作者。通读本教程以获得自制解决方案的完整说明:构建中间人博客

基本上,你会想要在你的存档页面模板上做这样的事情:

# Note the presence of the person_name local variable, created in the above example
<% author_articles = articles.select {|x| x.data.author == person_name } %>

<ul>
<% author_articles.each do |article|
  # Add your rendering code here %>
  <li><%= link_to article.title, article.url %></li>
<% # (for better practices, put this in a helper method)
end %>
</ul>
于 2013-09-04T18:36:19.260 回答