项目/myblog/ 第 1 篇

这个站是怎么搭起来的

更新于 2026.01.12约 1 分钟myblog · 文档

目录结构

myweb/
  content/          全部内容,markdown
    notes/          笔记
    projects/       每个项目一个目录
    life/           生活记录
    fun/            摸鱼
  src/
    pages/          页面组件
    lib/content.js  构建期把 markdown 读成数据
    styles/main.css 全部样式

为什么不用数据库存内容

内容是写在 markdown 里的,跟着 git 走。这样:

  • 改文章就是改文件,diff 看得清
  • 迁移平台不用导出数据
  • 全文搜索可以在构建期做,不依赖服务端

代价是无法在线写作。第一版先接受这个代价。

数据流

import.meta.glob 在构建期把所有 markdown 读成字符串,frontmatter.js 解析头部,marked 渲染正文。整个过程没有运行时 IO。

路由

每条内容都展开成一条具体路径,不用 :slug 参数路由。这样 vite-ssg 构建时直接遍历 router.getRoutes() 就能预渲染,不需要额外配置。