frontmatter变量的动态默认值

时间:2015-04-03 12:20:55

标签: ruby middleman

我正在寻找一种方法来使用frontmatter变量的值作为另一个变量的默认值。例如,对于以下前端块,current_page.data.altTitle应评估为"Home"

---  
title: "Home"  
---

current_page.data.altTitle对于此"foo"评估为--- title: "Home" altTitle: "foo" ---

config.rb

所以这归结为以下几点:

  • 我可以动态设置current_page.data.altTitle
  • 的值
  • 如果是这样,我应该在哪里这样做?在模板中?或者我可以在创建html页面之前告诉中间人在构建时执行此操作吗?
  • 如果没有,什么是优雅的解决方法?我的第一种方法是编写一个返回altTitle的辅助方法,除非它没有设置,在这种情况下它将返回title。有关更好/更清洁的解决方法的建议吗?

编辑:
我现在只是使用下面的小帮手,但如果有更清洁的方法,我仍然很乐意了解它。
helpers do def shortenedTitle(data) if (data.shortenedTitle != nil) then data.shortenedTitle else data.title end end end

(current_page.data.shortenedTitle || current_page.data.title)

EDIT2: 没有助手的清洁解决方案:

{{1}}

0 个答案:

没有答案