3

我已经在github上问过这个问题,但是开发人员让我把它放在这里,看看有没有其他人有任何其他建议......

是否可以将 YAML 前端变量动态转换为小写并用连字符替换空格?

我问的原因是我正在向 div 添加一个类,该类包含对当前页面的唯一引用,在我的例子中是页面标题。我已经在前面设置了页面标题,所以如果我可以简单地重复使用它会很棒。

为了说明,如果你能做这样的事情会很棒:

---
title: My Page Title
---
<div class="{{ title.hyphenize }}">
    <h1>{{ title }}</h1>
    ...
</div>

输出如下:

<div class="my-page-title">
    <h1>My Page Title</h1>
    ...
</div>

我是 YAML Front Matter 的新手,它有什么可能,所以任何建议都将不胜感激。

4

1 回答 1

3

我是 assemble 的开发人员之一,我认为最好将它放在 stackoverflow 上以供参考。这是我提供的答案:

我认为处理这个问题的最好方法是使用车把助手或下划线模板。我们在 helper lib repo 中提供了几个把手助手,可以像下面这样使用......

---
title: My Page Title
---
<div class="{{hyphenate title}}">
    <h1>{{ title }}</h1>
    ...
</div>

这将用连字符替换空格,但不会将其变为小写。

另一种方法是在 yaml 标头中使用 lodash 模板:

---
title: My Page Title
class: <%= title.toLowerCase().split(" ").join("-") %>
---
<div class="{{class}}">
    <h1>{{ title }}</h1>
    ...
</div>

此外,@jonschlinkert 补充说,您可以将这两种方法与以下内容结合使用:

---
title: My Page Title
class: <%= title.toLowerCase() %>
---
<div class="{{hyphenate class}}">
    <h1>{{ title }}</h1>
    ...
</div>

让我知道这是否适合您。

于 2013-06-03T13:30:10.733 回答