【问题标题】:In middleman, how do set variables?在中间人中,如何设置变量?
【发布时间】:2012-05-27 04:30:30
【问题描述】:

我已经开始尝试使用中间人和 ruby​​。

示例布局有这个字符串:

<body class="<%= page_classes %>

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

【问题讨论】:

  • 我不确定中间人具体是什么,但我会冒险猜测page_classes 不是一个变量,但实际上是一个方法。

标签: ruby middleman


【解决方案1】:

&lt;%= page_classes %&gt; 是 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 中使用。

【讨论】:

    【解决方案2】:

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

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

    并通过在 config.rb 中添加使其对模板可见:

    set :var, @var
    

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

    【讨论】:

      【解决方案3】:

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

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

      在您的模板中,您将有可用的

      config[:var]
      

      【讨论】:

        猜你喜欢
        • 2019-11-29
        • 1970-01-01
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 1970-01-01
        • 2019-06-14
        • 2020-06-21
        • 2018-09-01
        相关资源
        最近更新 更多