真是激动人心。撰写了两个星期左右的 Nuxt 版 ImQi1 终于上线了,它是一个功能完备的 CMS,我将它取名为 Glass,因为它的导航栏背景像玻璃一样模糊透明。
在线体验:https://imqi1.qi1.website
动机
为什么要新写一个 CMS 呢,其实 Typecho 挺好用的,但是我还是想有一个完全独立手写的 CMS,就像被美国卡脖子的中国,总想在任何领域都有我们国产的产品。
功能
Glass 包含了 NewImQi1 的所有功能,你可以自由地探索本站和 https://imqi1.com,亲自比对各种细节,这里展示一些样式。
代码块
import type { ClassValue } from "clsx"
import { clsx } from "clsx"
import { twMerge } from "tailwind-merge"
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}const path = require('path')
module.exports = {
apps: [
{
name: 'imqi1-nuxt',
script: path.join(__dirname, '.output/server/index.mjs'),
// ❗推荐单实例
instances: 1,
exec_mode: 'fork',
env: {
NODE_ENV: 'production',
PORT: 4000
},
error_file: path.join(__dirname, 'logs/err.log'),
out_file: path.join(__dirname, 'logs/out.log'),
time: true,
autorestart: true
}
]
}后台页面

image.png
技术栈
Glass 主题的技术栈有 Nuxt + Prisma + MySQL。
之所以使用 Nuxt,是我受 Django 的启发,询问了 AI Nodejs 是否也有和 Python 一样的全栈框架,不需要前后端分离的那种,AI 给我的答案是 Nuxt。
Prisma 是一个 ORM 框架,跟 SQLAlchemy 差不多,可以定义模型类,不用自己手写 SQL。
但是有的时候还是需要自己手写 SQL 语句管理数据库,所以,我就没用 Postgresql。
代码高亮这次改成了 Shiki,是服务端渲染,减轻了前端 js 压力,同时可以识别更丰富的语法。
计划
目前这款主题就打算现在这里测试一段时间,新文章会在这里发,同时同步到旧站,各位新站旧站都可评论,最后上线之后会将数据合并在一起的。
目前已知 bug
- 带标题的代码块,图标不正确
- 从其他页面切换到分类和标签页面,没有渐入动画
评论