unisonshift
880 字
4 分钟
对 Fuwari 的增强改动教程
注意
fuwari现在还没有版本之分(这时候),都是v0.0.1的版本。无论是哪个版本,请不要随意升级。
进行过自定义更改,修改过代码的,
升级建议通过下载新的重命名旧的,手动复制配置,
粘贴使用的文件,如果代码在新版本不兼容等各项事项都应该尝试自己解决。
归档页面添加更新日期
1.给Post数据补上updated字段
补充这个字段不需要你去赋值,
上游已经传递了,你只需要在Post接口中声明一下即可
interface Post { slug: string; data: { title: string; tags: string[]; category?: string; published: Date; updated: Date; };}2.在formatDate函数后再添加一个函数
function formatDateTwo(date: Date,datePublished: Date) { const month = (date.getMonth() + 1).toString().padStart(2, "0"); const day = date.getDate().toString().padStart(2, "0"); const year = date.getFullYear(); if (date.getFullYear() != datePublished.getFullYear()) { return `${year}-${month}-${day}`; } return `${month}-${day}`;}疑惑为什么不使用
formatDate函数?而是再写一个?原本的
formatDate函数仅输出月份和日期,没有年份。而更新日期是可能会跨年的,所以需要单独写一个函数来处理。
3.注释taglist元素后创建更新日期元素
tag list说实话非常鸡肋,都有标签容器了,根本没必要在归档容器中在末尾写这个东西。
所以建议注释掉,相比标签,更新日期明显更有用。
<!-- tag list ... --><!-- 自己加的更新日期(包括i18n支持!) --><div class="hidden md:block md:w-[15%] text-left text-sm transition whitespace-nowrap overflow-ellipsis overflow-hidden text-30" > {post.data.updated && i18n(I18nKey.updatedAt)+" "+formatDateTwo(post.data.updated,post.data.published)}</div>看看效果吧

疑惑为什么更新日期和发布日期相同时会显示?
这里没有判断是否相同的代码,如果不想在相同时显示请尝试自己写个判断,或者删除相应的更新日期属性。
分类,标签翻译
你是否好奇如何实现翻译过的标签或分类?
是否还在为fuwari官方没有文档和相关描写关于如何实现翻译而苦恼?
这里教你!
1.在i18n文件夹下新建一个ts文件
我自己命名叫translite.ts,写下如下内容:
const transTable: { [key: string]: string } = { "Products" : "产品", "Today" : "今日", "Daily" : "日常", "Tutorial" : "教程", "Game" : "游戏", "Program" : "程序", // 写下自己的翻译}
export function Translite(key: string): string { return transTable[key] || key;}你会发现,这里仅仅只是一个函数根据key返回对应的value,如果value不存在,则返回key本身。
这个就是最核心的内容,是不是很简单?
提醒你可能对这个做法产生困惑,为什么不用自带的
i18n函数呢?因为
i18n需要定义枚举,还要在对应语言文件下定义对应的value,太麻烦了!而且
fuwari目前本来就不支持实时多语言切换,没必要用这么复杂的东西。还不如直接一张字符串表,更改简单!
2.修改组件生成的文本
在下面用到Translite函数的地方记得引用,不然会报错(这不当然?)
import { Translite } from "@i18n/translite";修改PostMeta组件
把 PostMeta 组件的 categories 和 tags 部分的文本内容表达式改成:
<!-- categories 60行左右 -->{category && Translite(category) || i18n(I18nKey.uncategorized)}<!-- tags 77行左右 -->{Translite(tag.trim())}修改widget文件夹下的组件
<!-- 31行左右 -->label={`View all posts in the ${c.name.trim()} category`}<!-- 33行左右 -->{Translite(c.name.trim())}<!-- 27行左右 -->label={`View all posts with the ${Translite(t.name.trim())} tag`}<!-- 28行左右 -->{Translite(t.name.trim())}完成!

对 Fuwari 的增强改动教程
https://authorzixi.github.io/posts/today/2025/0804/