html - 使用流畅的语法将每个单词的首字母大写?

标签 html liquid

我正在尝试使用流式语法在 LocomotiveCMS 安装中设置 SEO。我正在尝试对其进行编码,以便使用 {{ page.title }} 动态提取页面标题,然后强制其将每个单词的首字母大写。

我试过这个:

<title>
      {{ page.title | camelcase }} | {{ site.name }}
</title>

基于此处的流式语法文档:http://docs.shopify.com/themes/liquid-basics/output#camelize

但它不起作用。使用 capitalize 可行,但它只会将第一个单词的第一个字母大写。

谢谢!

最佳答案

有一种方法可以仅使用 Liquid 语法来实现这一点。无需任何插件。

将您的单词字符串分解为一个数组,并使用 for 循环和大写过滤器将每个单词的首字母大写。如果您将其适本地封装在捕获语句中,那么每个单词的第一个字符都会大写。

{% assign words = "Hi, how are you today?" | split: ' ' %}

{% capture titlecase %}
  {% for word in words %}
    {{ word | capitalize }}
  {% endfor %}{% endcapture %}
{{ titlecase }}

输出:

Hi, How Are You Today?

请注意,所有这些都在一行中,并且整个捕获语句中只出现一次空格!

关于html - 使用流畅的语法将每个单词的首字母大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315732/

相关文章:

html - 定义布局时液体变量停止工作

java - 玩法 2 - 没有助手的模板

javascript - 如何检查数组是否包含多个同一个单词

html - 为什么我需要应用 flexbox 两次才能让它工作?

liquid - Jekyll 日期格式化是如何工作的?

css - Jekyll 从 CSS 访问页面变量

jekyll - 在 jekyll 中循环过滤集合

jekyll 变量,if 函数

javascript - 用户查看弹出窗口更改变量值的次数

html - CSS : strange behaviour when displaying divs side by side