Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 用流畅的语法将每个单词的第一个字母大写?_Html_Liquid - Fatal编程技术网

Html 用流畅的语法将每个单词的第一个字母大写?

Html 用流畅的语法将每个单词的第一个字母大写?,html,liquid,Html,Liquid,我正在尝试使用液体语法在MotorveCMS安装中设置SEO。我试图对其进行编码,以便使用{{page.title}}动态地提取页面标题,然后强制它将每个单词的第一个字母大写 我试过这个: <title> {{ page.title | camelcase }} | {{ site.name }} </title> {{page.title | camelcase}}{{{site.name}} 根据此处的液体语法文档: 但它不起作用。使用大写是可行的,

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

我试过这个:

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

{{page.title | camelcase}}{{{site.name}}
根据此处的液体语法文档:

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


谢谢

关于您发布的链接,camel案例的作用如下:

{{ 'coming-soon' | camelcase }}
它接受一个单词以“-”分隔的字符串,并将其替换为空。我只有一个问题:你的“页面标题”进展如何?它的字是用“-”分隔的吗?或者你有这样的文字:“这是我页面的标题”?如果是这样,你应该用“这是我页面的标题”来代替


希望这能有所帮助。

用CSS设置如何

title {
    text-transform:capitalize;
}

编辑:我做了一个关于文本转换的打字错误,现在它是固定的

谢谢你的回复,我在发布这篇文章后就找到了解决办法。现在,我不再调用
page.title
,而是拉取
page.seo\u title
,它可以通过MotorveCMS后端以正确的大小写手动输入。

我建议使用插件来获得此行为

\u plugins/\u capitalize\u all.rb

require 'liquid'
require 'uri'

# Capitalize all words of the input
module Jekyll
  module CapitalizeAll
    def capitalize_all(words)
      return words.split(' ').map(&:capitalize).join(' ')
    end
  end
end

Liquid::Template.register_filter(Jekyll::CapitalizeAll)
用法:

{{ "mein text" | capitalize_all }}

这对我有用:{page.title | capitalize}

它只大写句子中的第一个单词

我的第一直觉是,这会使每个单词大写,但事实并非如此


来源:

有一种方法可以仅使用液体语法来实现这一点。不需要任何插件

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

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

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

{{ titlecase }}
输出:

嗨,你今天好吗


请注意,所有这些都在一行中,在整个capture语句中只有一个空格

这一系列的过滤器一直在为我工作。如果你的标题有5个连续的破折号,或者你不希望下面的字母大写的破折号,你会遇到问题

{% assign headerTitle = page.title | split: " " | join: "-----" | camelcase | split: "-----" | join: " " %}

我试着用
camelize
代替
camelcase
,但也没用。
camelcase
是一个-所以它在机车CMS中不起作用。这不是他想要的。他希望他的标题中的所有单词都以大写字母开头。对不起,我的意思是:文本转换:大写;这实际上就是我想做的,在《杰基尔》中的标题案例分类。谢谢你的提醒。好主意。。。幸运的是,CSS中的大写字母不像液体中的大写字母那样容易损坏;-)是的,我的OPI中提到了这一点,但实际上它存在着oposite问题。我不希望标题中的每个字都大写。在我的例子中,我从文件名中提取标题,而不是前面的主标题。当我这样做的时候,每一个单词都会大写。这可能是杰基尔的一个错误。因为这是一个令人惊讶的惯例。预期的标题将是写入文件名的标题。我正在研究如何获得实际的文件名标题。在你的例子中,如果你不想把你的邮政编码弄得乱七八糟的话,你可以写一个液体循环并把它包括进去。或者像我一样从文件名中提取标题。谢谢你的回答!请问如何在liquid theme文件夹中添加插件文件?@YaoyuYang据我所知,您只需将其放入您的jekyll站点的
\u plugins
目录中,我就知道了。我没有使用Jekyll,我在一个shopify网站上工作,不知道在哪里添加它。@YaoyuYang没有这方面的经验,对不起。我很确定这只是解决方案,尽管使用了or。这是唯一对我有效的东西。好主意!