我已在Hexo中设置帖子并为每个帖子分配了标签。但是 标题 标记并没有按照我想要的方式进行大写。
这是呈现的HTML:
<title>Viewing pizza | My site</title>
但我想实现这个目标:
<title>Viewing Pizza | My site</title>
标签:披萨是小写的,并且不确定如何使标签以 标题 标签内的大写字母开头(例如披萨,意大利面,意大利等等)上)。
我的代码:
<%
function capitalize (str) { return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase() }
var title = page.title;
if (is_archive()) {
title = capitalize(__('Viewing'));
if (is_month()) {
title += ': ' + page.year + '/' + page.month;
} else if (is_year()) {
title += ': ' + page.year;
}
} else if (is_category()) {
title = capitalize(__('Viewing')) + ': ' + page.category;
} else if (is_tag()) {
title = capitalize(__('Viewing')) + ': ' + page.tag;
}
%>
<title><% if (title) { %><%= title %> | <% } %><%= config.title %></title>
提前致谢!
答案 0 :(得分:0)
这是一个将句子的每个单词大写的功能:
function capWords(str) {
// we split string by words in an array
// and we iterate on each word to capitalize the first letter
// and we join each element with a space
return str.split(' ').map(function(str) {
return str[0].toUpperCase() + str.substr(1).toLowerCase()
}).join(' ');
}
在您的代码中:
<%
function capWords(str) {
// we split string by words in an array
// and we iterate on each word to capitalize the first letter
// and we join each element with a space
return str.split(' ').map(function(str) {
return str[0].toUpperCase() + str.substr(1).toLowerCase()
}).join(' ');
}
var title = page.title;
if (is_archive()) {
title = __('Viewing');
if (is_month()) {
title += ': ' + page.year + '/' + page.month;
} else if (is_year()) {
title += ': ' + page.year;
}
} else if (is_category()) {
title = __('Viewing') + ': ' + page.category;
} else if (is_tag()) {
title = __('Viewing') + ': ' + page.tag;
}
%>
<title>
<% if (title) { %>
<%= capWords(title) + ' | ' %>
<% } %>
<%= config.title %>
</title>
答案 1 :(得分:0)
我不知道这是否是hexo中的新内容,但如果您仍然在寻找,则会titlecase,这是您可以在模板中使用的功能。
这应该随你的hexo安装一起提供。如果您使用ejs
作为渲染器,则可以将其用作文档说明:
你可以做<%- titlecase('pizza') %>
并获得你想要的东西。
如果您需要编写自己的函数,首选方法是将它们写在/scripts/my_helpers.js
文件中(将.js文件命名为您想要的任何内容,但它必须位于scripts
中项目目录)。或者,发布前缀为hexo-
的模块并将其导入项目(如果您正在执行此操作,请确保它已在package.json中列出)。
然后,您可以在.js文件中使用以下咒语使您的javascript功能可用:
// note, I haven't tested this code.
hexo.extend.helper.register('capitalize', (aString) => {
return aString.split(" ").map(function(word) {
return word[0].toUpperCase() + word.substring(1).toLowerCase()}).join(" ")
});
然后您可以使用<%- capitalize("i am a strInG") %>
<title>
<% if (page.title) { %>
<%= capitalize(page.title) %> |
<% } %>
<%= config.title %>
</title>
`