11ty支持中文标签
11ty搭建这个博客的时候由于想要偷懒,就直接用了官方的模板。写了第一篇博客就遇到了问题:tags.njk文件和另一个啥啥啥文件一起报错,就是说你不对,你的permanent link重了,大概这么个意思。我琢磨了一下,这俩的地址一个是/tags/,还有一个是/tags/tag,凭啥说我不对。官方的issue搜了下也没找到方案。今天决心自己来解决这个问题。
permalink: /tags/undefined/
个人感觉关键点就在这个地方。我首先想,slug是个啥?搜搜便得知这里其实是把tag传给slug做了个处理,类似于Unix里管道符的操作。这个slug是官方提供的一个Filter。它的目的就是让你的tag的URL更好看。比如blah blah就会变成/tags/blah-blah。不过这个filter很傻,遇到非英语单词就不太行了?所以在slug之前咱给他个转换就完啦。
// .eleventy.js
const chineseWordMapping = {
下厨记: "cook",
瞎掰扯: "blah blah",
};
module.exports = function (eleventyConfig) {
eleventyConfig.addFilter('translateChinese', (word) => {
return chineseWordMapping[word] || word;
})
// 下面省略n行
}
再修改tags-list.njk里的permalink和别的地儿用到的URL就大功告成。
permalink: /tags/undefined/
效果呢就随便点点我的博客就看到啦。
- 上一篇:这是在手机上发的一条博客