初始化私有内容仓库
约 1805 字大约 6 分钟
2026-09-01
构建独立的内容仓库有两种途径,请根据你的现状选择:
- 方式一:使用 content:eject 一键解耦迁出 推荐:适合已在本地克隆主题代码仓,希望一键将文章与配置抽离为独立内容仓的博主;
- 方式二:从官方模板仓库克隆初始化 从零建站:适合全新起步、直接以双仓形态建站的博主。
方式一:使用 content:eject 一键解耦迁出 官方推荐
如果你已经在本地拥有主题代码仓库,使用主题内置的解耦向导是最便捷的初始化方式。
核心特性
- 全自动结构组装:自动提取文章、动态、相册、数据实体,并生成合规的
shirone.content.json清单与自动化触发工作流; - 最小化配置安全导出:仅导出
site.yaml与profile.yaml等核心身份标识,绝不硬编码主题默认值,保障未来主题升级平滑; - 代码仓安全防护:自动在代码仓的
.gitignore中追加忽略规则并安全取消 Git 跟踪,同时物理保留本地文件,本地开发预览完全不受影响; - 自动绑定本地路径:自动将代码仓的开发环境与迁出的外部目录建立本地关联。
零风险预演机制
pnpm.cmd content:eject 在未携带 --yes 参数时处于 预演模式,仅在控制台打印迁移计划,不会修改磁盘中的任何文件。
操作步骤
在代码仓运行一键解耦命令
打开终端进入你的主题代码仓库根目录,运行解耦命令:
Windows (PowerShell)PowerShell# 1. 预演模式:查看即将迁出的文件清单(不修改磁盘文件) pnpm.cmd content:eject # 2. 确认无误后执行迁出(默认导出至上一级目录的 ../shirone-content) pnpm.cmd content:eject --yes # 也可以通过 --out 参数指定自定义导出路径: pnpm.cmd content:eject --yes --out "<目标路径>" # 例如 "D:\Code\my-blog-content"Linux / macOS (Bash)Bash# 1. 预演模式:查看即将迁出的文件清单(不修改磁盘文件) pnpm content:eject # 2. 确认无误后执行迁出 pnpm content:eject --yes # 自定义导出路径 pnpm content:eject --yes --out "<目标路径>" # 例如 "/Users/yourname/Code/my-blog-content"在 GitHub 上创建空白私有仓库
- 登录 GitHub 账号,点击右上角 + 号选择 New repository;
- Repository name:建议命名为
my-blog-content或shirone-content; - Visibility:务必勾选 Private(私有仓库);
- Initialize this repository with:不要勾选任何初始化选项(保持完全空白);
- 点击底部的 Create repository 创建仓库。

必须勾选 Private
为了确保你的草稿文章、相册原图和站点私密配置不被公网抓取,仓库可见性必须选择 Private。
将导出的内容仓库推送到 GitHub
打开终端进入刚刚导出的内容仓库目录,执行 Git 初始化与推送:
Git Push# 1. 进入导出的外部内容目录 cd ../shirone-content # 2. 初始化 Git 仓库并提交 git init -b main git add . git commit -m "feat: 初始化博客私有内容仓库" # 3. 关联你的 GitHub 私有仓库地址并推送 git remote add origin git@github.com:你的用户名/my-blog-content.git git push -u origin main
至此,你的独立私有内容仓库已初始化完毕。
方式二:从官方模板仓库克隆初始化 从零建站
如果你希望从头开始建立一个全新的空白内容仓库,可以直接克隆官方模板仓库。
操作步骤
在 GitHub 上创建空白私有仓库
按照上述步骤在 GitHub 上创建一个空白的 Private 私有仓库(保持完全空白,不勾选任何初始化选项)。

克隆官方内容模板到本地
在终端中运行:
Git Clone# 1. 克隆官方内容模板仓库 git clone https://github.com/LyraVoid/Shirone-Content.git my-blog-content # 2. 进入克隆下来的目录 cd my-blog-content
将远程地址重定向为你自己的私有仓库
Git Remote# 将远程仓库 origin 的地址更换为你第一步创建的私有仓库地址 git remote set-url origin git@github.com:你的用户名/my-blog-content.git # 验证远程地址是否修改成功 git remote -v
推送首次提交到你的私有仓库
Git Push# 将模板内容推送到你的私有仓库 main 分支 git push -u origin main
推送完成后,刷新 GitHub 页面即可看到完整的目录结构:

内容仓库目录结构与映射关系
无论是通过一键解耦还是模板克隆创建的内容仓库,均遵循标准的目录映射规范:
内容仓库标准结构与代码仓映射
.github/workflows# 自动化工作流定义
trigger-build.yml.example# 跨仓触发流水线模板
config# 全站配置覆盖 YAML 文件群 -> 编译为 src/user/user-config.ts
site.yaml# 站点基本信息、色彩与横幅壁纸
profile.yaml# 博主头像、昵称与社交链接
footer.html# 自定义页脚注入 HTML -> 映射至 src/config/FooterConfig.html
content# 原创文章与生活动态 -> 映射至 src/content/
posts# Markdown 与 MDX 博客长文
…
moments# 动态生活说说
…
spec# 关于与自定义说明文案
…
data# 结构化数据实体 -> 映射至 src/data/
projects.ts# 开源项目清单
skills.ts# 技能图谱
devices.ts# 硬件装备
timeline.ts# 大事记时间线
friends.ts# 友情链接
assets# 高清原始媒体 -> 映射至 src/assets/ (参与构建期压缩优化)
images
…
public# 静态多媒体资源 -> 映射至 public/ (原样发布不转码)
images
…
assets
…
shirone.content.json# 内容仓库元数据标识文件
映射与同步保护规则
- 资源路径语义一致:
assets/与public/保持了标准相对路径映射,在 Markdown 或配置中引用图片时路径写法无需额外转换; - 配置安全编译:
config/目录下的 YAML 文件在同步时会自动提取并编译为带完整类型约束的 TypeScript 模块,防止格式错误; - 系统目录跳过:内容仓中的
.git/、.github/、.vscode/、scripts/以及README.md等辅助文件不会被同步到主题代码仓; - 派生资源隔离保护:说说缩略图缓存、番剧封面缓存与中文字体子集抽取产物受系统保护,不会被误删或覆盖。
下一步
- 前往 本地预览与实时调试:在本地启动双仓开发服务器,体验边写边看实时重载