Skip to content

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.jsimport.meta.env.MODE 合并
  • src/ — 博客 markdown 内容,按标签目录组织(technology、life、goodfood、test、randomwriting)

内容规范

  • 每篇 markdown 需包含 frontmatter:titlecreateDate(排序依据,降序)、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(useDialoguseMessageuseNotificationuseLoadingBar
  • 组件自动注册: unplugin-vue-components + Naive UI Resolver
  • 别名: @ → 项目根目录
  • SSR: Naive UI 需 SSR 处理,已在 theme/index.js 配置 @css-render/vue3-ssr
  • 搜索: Algolia(凭据在 .envtheme-config.js
  • OSS: 七牛云(qiuNiuOss 函数代理)和 NAS 静态资源(nasAssets 拼接路径)

构建 & 部署

  • 构建产物在 .vitepress/dist/
  • CI/CD: 通过 Netlify 自动部署(监听 master 分支);.github/workflows/ 未配置
  • 构建插件: vite-plugin-compression 压缩产物、vitepress-plugin-llms 生成 LLM 索引
/AGENTS.html