实战指南:在 VitePress 中集成 TinaCMS
TinaCMS 是一个非常适合 VitePress 的 Git-based CMS。下面是将它“部署”到你项目中的详细步骤。
1. 初始化 TinaCMS
在你的项目根目录下,我们需要运行 Tina 的初始化命令。打开终端,输入:
bash
npx @tinacms/cli@latest init这个命令会引导你完成配置:
- Choose your package manager: 选择
npm。 - What framework are you using?: 选择
Other(因为列表中可能只有 Next/Gatsby 等,VitePress 选 Other 即可)。 - Does your project use TypeScript?: 建议选
Yes(Tina 的配置文件通常是 TS)。 - Where are your public assets stored?: 输入
docs/public(VitePress 的静态资源目录)。
2. 发生了什么变化?
运行完命令后,你会发现项目里多了一些东西:
tina/config.ts: 这是 Tina 的核心配置文件。你需要在里面定义你的内容结构(Schema),比如“文章”有哪些字段(标题、日期、内容等)。package.json:scripts脚本会被自动修改。- 原来的
dev可能被改成了tinacms dev -c "vitepress dev docs"。 - 意思是:先启动 Tina 的后台服务,然后由 Tina 去启动 VitePress。
- 原来的
3. 配置内容模型 (Schema)
你需要修改 tina/config.ts 来匹配你的博客结构。比如你的博客文章在 docs/notes 下,你需要这样配置:
typescript
schema: {
collections: [
{
name: "notes",
label: "学习笔记",
path: "docs/notes", // 指向你的 markdown 文件夹
fields: [
{
type: "string",
name: "title",
label: "标题",
isTitle: true,
required: true,
},
{
type: "rich-text", // 富文本编辑器
name: "body",
label: "内容",
isBody: true,
},
],
},
],
},4. 本地运行
现在,你只需要运行:
bash
npm run dev你会发现:
- 终端里会告诉你 CMS 的访问地址,通常是
http://localhost:3000/admin。 - 打开这个地址,你就能看到一个漂亮的后台界面,可以直接编辑你的
docs/notes里的 markdown 文件了! - 你在后台做的修改,会直接同步保存到你本地的硬盘文件里。
5. 部署上线 (生产环境)
要让这个 CMS 在线上也能用,你需要:
- 注册 Tina Cloud: 去 app.tina.io 注册一个账号。
- 创建项目: 连接你的 GitHub 仓库。
- 获取密钥: 拿到
ClientId和Token。 - 配置环境变量: 在你的 Vercel 或 GitHub Actions 里设置这些环境变量。
- 构建: 当你部署网站时,Tina 会把 CMS 的后台界面也一起打包进去。
这样,你访问 你的域名.com/admin,就可以用 Tina Cloud 的账号登录,直接在线编辑内容了。
常见问题:文件为什么不显示?
如果在 Tina 后台看不到你已有的 Markdown 文件,通常是因为缺少 Frontmatter(元数据头)。
TinaCMS 依赖文件头部的 yaml 格式元数据来识别文件。比如你的文章必须长这样:
markdown
---
title: 我的第一篇文章
---
# 我的第一篇文章
这里是正文...如果你的文件开头直接是 # 标题 而没有上面的 --- 包裹的元数据区域,Tina 可能会忽略该文件。所以在引入 Tina 后,记得给现有的所有文章补上这个“身份证”。