在中间人,如何设置变量?

时间:2012-05-27 04:30:30

标签: ruby middleman

我开始尝试使用中间人和红宝石。

示例布局包含以下字符串:

<body class="<%= page_classes %>

在任何给定页面上,如何设置'page_class'?

3 个答案:

答案 0 :(得分:3)

<%= page_classes %>是Middleman的默认视图帮助程序之一,它根据当前页面的文件名和目录返回一个字符串,例如:克。

  • 对于/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')。

使用您发布的示例布局中的代码段,您可以设置网页样式或highlight the corresponding navigation item via CSS

编辑:要为Marek提供的答案添加更多选项,您可以使用

这两个都在Middleman的网站/文档中有描述 请注意,通过YAML Frontmatter设置的变量也可以在layouts中使用。

答案 1 :(得分:1)

您可以使用@符号在config.rb中定义变量,例如:

@var = ["something", "here", ...]

并通过在config.rb中添加

使模板可见
set :var, @var

如果它是一个方法,你应该在config.rb的helper部分下定义它。

答案 2 :(得分:0)

您可以在config.rb中定义变量

set :var, ["something", "here"]

在您的模板中,您将可以使用

config[:var]