0. 架构总览

本方案实现了:私有库创作 自动化同步 公开站点部署

  • 物理隔离:工作库与私人库完全独立,互不干扰。

  • 安全性:源文件保持 Private,仅通过 Quartz 渲染后的静态页面 Public

  • 自动化git push 即发布,无需手动干预。

架构图: CRM_developer_personal-note : 两个不同位置的笔记库

graph TD
    subgraph "Local Writing (Private)"
        A[CRM_developer] 
        B[_personal-note]
    end

    subgraph "Automation (CI/CD)"
        A -- "Push Action" --> C{Quartz Repo}
        B -- "Push Action" --> C
    end

    subgraph "Global Deployment"
        C -- "Webhook" --> D[Cloudflare Pages + Acess]
        D -- "Render" --> E((Public Site))
    end

1. 前置准备

  1. GitHub PAT (Personal Access Token):

    • 前往 GitHub Settings 生成一个 Token,需具备 repo 权限。

    • CRM_developer_personal-note 的仓库设置中,添加该 Token 为 Secret,命名为 PERSONAL_ACCESS_TOKEN

  2. 部署仓库:

    • 准备好已经配置好的 Quartz 4 仓库。

2. 核心同步脚本

每个内容库(工作库/私人库)的 .github/workflows/ 下创建 sync-to-quartz.yml

name: Sync Obsidian Vault to Quartz
 
on:
  push:
    branches:
      - master   # 当源仓库 master 分支有 push 时触发
 
jobs:
  sync:
    runs-on: ubuntu-latest
 
    steps:
      - name: Checkout Obsidian Vault (源仓库)
        uses: actions/checkout@v4
        with:
          repository: Yeh-Wang/CRM_developer             #仓库位置
          token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}    #更改为自己的secrets变量
          ref: master                                    #分支
 
      - name: Copy notes to temp folder                  #虚拟环境执行操作
        run: |
          mkdir -p $GITHUB_WORKSPACE/vault-content
          rsync -av --exclude 'vault-content' $GITHUB_WORKSPACE/ $GITHUB_WORKSPACE/vault-content/
 
      - name: Checkout Quartz repo (目标仓库)
        uses: actions/checkout@v4
        with:
          repository: Yeh-wang/deploy-vault
          token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
          ref: v4
          path: quartz
 
      - name: Sync content to Quartz
        run: |
          rm -rf quartz/content/working-vault/*
          cp -r vault-content/* quartz/content/working-vault/
          cd quartz
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add .
          git commit -m "Sync notes from CRM_developer"
          git push origin v4

3. 关键细节优化 (避坑指南)

🔗


4. 部署至 Cloudflare Pages

  1. 在 Cloudflare Pages 后台连接你的 Quartz 仓库。

  2. 构建命令:npm install && npx quartz build(根据你的 Quartz 版本而定)。

  3. 构建输出目录:public

  4. 环境变量:确保 Node 版本大于 18.14。


Tip: 每次你在 Obsidian 中按下 Ctrl+Sgit push,Cloudflare 都会在 2 分钟内自动更新你的全网数字花园。