惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
V
Vulnerabilities – Threatpost
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
News | PayPal Newsroom
S
Security Affairs
T
Tor Project blog
P
Proofpoint News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Security @ Cisco Blogs
H
Heimdal Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
Help Net Security
Help Net Security
U
Unit 42
云风的 BLOG
云风的 BLOG
The Hacker News
The Hacker News
Cisco Talos Blog
Cisco Talos Blog
量子位
F
Full Disclosure
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
有赞技术团队
有赞技术团队
T
Troy Hunt's Blog
P
Privacy & Cybersecurity Law Blog
Forbes - Security
Forbes - Security
人人都是产品经理
人人都是产品经理
L
Lohrmann on Cybersecurity
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
腾讯CDC
AI
AI
Last Week in AI
Last Week in AI
Latest news
Latest news
Google Online Security Blog
Google Online Security Blog
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
Martin Fowler
Martin Fowler
Blog — PlanetScale
Blog — PlanetScale
V2EX - 技术
V2EX - 技术
酷 壳 – CoolShell
酷 壳 – CoolShell

ImQi1

跟风做了一系列地图界面 川渝游结束,浅浅记录一下 来成都看大熊猫 跨越了两千公里,只为见到你 为了一个女孩,我哭了一整晚 我的 Nuxt 版网站即将上线了 个人毕业设计展 尝试从情绪中走出 更新到Ty1.3,顺便维护一些插件 没想到现在的编程AI已经这么好用了 Typecho 图床从USS迁移至COS ChatGPT年度总结,卖号纠纷,代码块新样式 近期拍摄的新照片 zai-org / Open-AutoGLM 已开源,体验一下 12月近况,实况照片功能 理想的未来和现实的现在 4000公里首摔,真是当头一棒 属实是信息差了,没想到现在的手机生态这么完善 比较是快乐的小偷 搬家,新车,父亲手术
彻底换到新的 CMS 了,Glass 主题介绍
· 2026-04-16 · via ImQi1

前言:终于是将主站彻底换到自研的 Glass 主题了,谨在此记录一下这段时间的辛苦劳作和收获吧。

介绍

Glass 主题是一款基于 Nuxt 编写,旨在打造一个可以记录各种类型内容的全栈 CMS,具有的功能如下:

  • 基本的分类、标签、文章、评论、友情链接、RSS 订阅等博客功能;
  • 以 Markdown 为基础的语法扩充,包括各种提示框、轮播图、音乐播放、段落折叠、Git 仓库卡片;
  • 针对图片优化的功能,包括具有独特样式的图片分类、实况照片;
  • 基于百度内容审核平台过滤内容的评论系统;
  • 基于腾讯云 COS、又拍云 USS 的附件管理系统,支持上传图片和视频;
  • 完整的后台管理界面,暂不支持多用户(目前系统被设计为单用户);
  • 完整的 CSRF token 鉴权机制、防 XSS、防 SQL 注入机制。

本 CMS 不开源。

技术栈

  • UI:Nuxt + Tailwindcss + shadcn/ui + iconify
  • 数据存储:Prisma + MySQL + 腾讯云 COS
  • 代码高亮:Shiki
  • Markdown 解析:Markdown-it
  • 图片灯箱:@fancybox/ui
  • 轮播图:swiper
  • 音乐播放器:@meting/core

样式展示

粗体 斜体 删除线 This is a inline code.

(由于标题会包含在目录中,这里不展示标题)

这是引用文字。

print("Hello World")
标题1 标题2 标题3
内容1 内容2 内容3
内容4 内容5 内容6

这里是段落折叠的内容,你可以在这里配置不想第一时间展示的文字。

成功执行。

遇到错误了。

使用 - 本地打包

推荐公共资源放在 CDN 中,服务器放在本地,本 CMS 仅支持 MySQL 数据库。

将项目从 Gitee 克隆到本地后,执行 bun install,安装依赖,预编译 nuxt。

在 .env 文件中写入必要的变量,主要是指定数据库配置:

# 用于 Prisma Migrate (prisma migrate dev)
DATABASE_URL="mysql://youruser:yourpassword@localhost:3306/yourdatabase"

# 用于 Prisma MariaDB Adapter (应用运行时)
DB_HOST="localhost"          # 数据库 host
DB_PORT="3306"               # 数据库端口
DB_USER="root"               # 数据库用户名
DB_PASSWORD="your_password"  # 数据库密码
DB_NAME="your_database"      # 数据库名称
COS_SECRET_ID=""             # 腾讯云 sId
COS_SECRET_KEY=""            # 腾讯云 sKey
COS_BUCKET=""                # COS 存储桶
COS_REGION="ap-beijing"      # 地域名称
COS_PREFIX="/"               # 上传的路径
COS_CONCURRENCY=50           # 并行上传数量
PORT=4000                    # 开发服务器监听端口

执行下面的命令初始化数据库:

bunx prisma generate
bunx prisma migrate deploy
bunx prisma db seed

启动开发服务器:

bun run dev

打包:

bun run build

快速将资源上传到腾讯云 COS:

bun run upload:cos

使用 - 在服务器上运行

从 Gitee 上 Clone 源码,和本地一样,先安装依赖,到 bunx prisma db seed,在前面加个 NODE_ENV=production,即初始化生产环境的种子。

打包后,.output 文件夹会产生 server 和 public 文件夹,执行 node .output/server/index.mjs 启动开发服务器。

或使用宝塔面板的 Node 版本管理器,创建传统项目,并配置伪静态:

# Service Worker 主文件
location = /sw.js {
    root /www/wwwroot/glass;
    add_header Cache-Control "no-cache";
}

# Workbox 相关脚本(关键)
location ^~ /workbox {
    root /www/wwwroot/glass;
    add_header Cache-Control "public, max-age=0, must-revalidate";
}

# 多目录统一处理
location ~ ^/(emojis|fonts|icons|imgs|skills)/ {
    return 302 https://cdn.imqi1.com$request_uri;
}

# 单文件
location = /favicon.ico {
    return 302 https://cdn.imqi1.com/favicon.ico;
}

其他

本项目复刻了 Typecho 版的 NewImQi1 主题,实现了原主题的全部功能,只去掉了一个详细信息显示(我觉得应该没人会看)。