【发布时间】:2012-05-27 04:30:30
【问题描述】:
我已经开始尝试使用中间人和 ruby。
示例布局有这个字符串:
<body class="<%= page_classes %>
在任何给定页面上,如何设置“page_class”?
【问题讨论】:
-
我不确定中间人具体是什么,但我会冒险猜测
page_classes不是一个变量,但实际上是一个方法。
我已经开始尝试使用中间人和 ruby。
示例布局有这个字符串:
<body class="<%= page_classes %>
在任何给定页面上,如何设置“page_class”?
【问题讨论】:
page_classes 不是一个变量,但实际上是一个方法。
<%= page_classes %> 是 Middleman 的默认视图助手之一,它根据当前页面的文件名和目录返回一个字符串,例如。 g.
/index.html,它返回index
/folder1/index.html,它返回folder1 folder1_index
/folder1/folder2/page.html,它返回folder1 folder1_folder2 folder1_folder2_page
等等(以上例子改编自Middleman's Relish documentation for 'page_classes')。
使用您发布的示例布局中的 sn-p,您可以设置页面样式或 highlight the corresponding navigation item via CSS。
编辑:要为 Marek 提供的答案添加更多选项,您可以使用
这两者都在 Middleman 的网站/文档中进行了描述。
请注意,通过 YAML Frontmatter 设置的变量也可以在您的 layouts 中使用。
【讨论】:
您可以在config.rb中使用@符号定义变量,例如:
@var = ["something", "here", ...]
并通过在 config.rb 中添加使其对模板可见:
set :var, @var
如果它是一个方法,你应该在 config.rb 的 helper 部分下定义它。
【讨论】:
你可以在config.rb中定义变量
set :var, ["something", "here"]
在您的模板中,您将有可用的
config[:var]
【讨论】: