shangjundragon.github.io — 个人博客 / VitePress 站点
项目概述
- 框架: VitePress 2.0.0-alpha.8 + Vue 3.6.0-alpha.1
- UI 库: Naive UI(SSR 通过
@css-render/vue3-ssr注入样式) - 评论系统: Waline(客户端
@waline/client) - 包管理: pnpm
- 部署: Netlify →
https://shangjundragon.netlify.app/ - 远程:
git@github.com:shangjundragon/shangjundragon.github.io.git
开发命令
bash
pnpm docs:dev # 开发服务器(端口 15187,硬编码在 .vitepress/vite-config.js)
pnpm docs:build # 生产构建
pnpm docs:preview # 预览构建产物目录结构关键点
.vitepress/components/— 17 个 Vue 组件目录,全局注册于.vitepress/theme/index.js.vitepress/data-js/— VitePress 数据加载器(createContentLoader),按分类聚合 markdown 内容.config.js/.config.development.js/.config.production.js— 环境配置,通过env-config.js按import.meta.env.MODE合并src/— 博客 markdown 内容,按标签目录组织(technology、life、goodfood、test、randomwriting)
内容规范
- 每篇 markdown 需包含 frontmatter:
title、createDate(排序依据,降序)、tabs(逗号分隔)、exclude(设为true排除) src/all.md汇总全部文章,通过getAllUnExcludeDataAndSort.data.js加载- 管理后台:
https://shangjundragon.netlify.app/admin/index.html
技术栈注意事项
- Auto-imports:
unplugin-auto-import自动导入 Vue API + Naive UI(useDialog、useMessage、useNotification、useLoadingBar) - 组件自动注册:
unplugin-vue-components+ Naive UI Resolver - 别名:
@→ 项目根目录 - SSR: Naive UI 需 SSR 处理,已在
theme/index.js配置@css-render/vue3-ssr - 搜索: Algolia(凭据在
.env和theme-config.js) - OSS: 七牛云(
qiuNiuOss函数代理)和 NAS 静态资源(nasAssets拼接路径)
构建 & 部署
- 构建产物在
.vitepress/dist/ - CI/CD: 通过 Netlify 自动部署(监听 master 分支);
.github/workflows/未配置 - 构建插件:
vite-plugin-compression压缩产物、vitepress-plugin-llms生成 LLM 索引