Titleize Jekyll类别

gwe*_*rek 6 liquid jekyll

我想将帖子的打印类别名称转换为标题案例.我找不到可行的液体过滤器.我尝试使用破折号和camelcase过滤器,但没有骰子.

或者,我想打印在YAML前端编写的类别名称.

例如,对于帖子:

category: Here's the Category
Run Code Online (Sandbox Code Playgroud)

当我引用名称时:

{% for cat in site.categories %}
    <h1>{{ cat[0] }}</h1>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我在页面上看到"这里是类别".我想看看"这里是类别",甚至是"这里的类别",我可以替换(替换:'The','the')我想要做的几篇文章.

编辑

对于像我一样绝望的人,这个恶心的黑客有效,其中n是你在类别标题中拥有的最大单词数.

{% for cat in site.categories %}
    {% assign words = cat[0] | split: ' ' %}
    <h1>{{ words[0] | capitalize | replace:'The','the'}} {{ words[1] | capitalize }} {{ words[2] }} {{ words[3] | capitalize }} {{ words[4] | capitalize }} {{ words[n] | capitalize }}</h1>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

如果有人知道更优雅的方法,我会留下未回答的问题.

aga*_*rie 6

您可以使用capitalize过滤器实现所需的一部分:

输入

{{ 'capitalize me' | capitalize }}
Run Code Online (Sandbox Code Playgroud)

产量

Capitalize me
Run Code Online (Sandbox Code Playgroud)

来源.

我没有测试其边缘情况的另一种可能性是使用joincamelize:

{{ "here's the category" | join: '-' | camelize }}
Run Code Online (Sandbox Code Playgroud)

它应该打印"Here's The Category",但是camelize可能有问题here's.