我已经在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的新手,有什么可能,所以任何建议都会感激不尽。
答案 0 :(得分:3)
我是汇编的开发人员之一,我认为最好将它放在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>
请告诉我这是否适合您。