使用 Notion-Hugo 构建个人博客
1. 为什么? 为什么会想要构建个人博客并且还是通过 Notion 的方式? Notion 中毒用户,馋 Notion 的编辑器 对 Notion 中记录的内容做一个系统整理并输出,尽量使用图的形式来展示 记录个人的思考、成长以及展示自己的能力,以便后续回顾 希望每篇博客都有自己的拍摄的一张照片,记录生活的点滴 为什么选择 Hugo? 2. 架构图 3. 遇到的问题 Copy https://prod-files-secure.s3.us-west-2.amazonaws.com/dc681554-1505-4cec-9a8f-844b66d5dcc8/4e9385da-92e0-4c4a-9ba1-871eb116b2e5/DSCF9506_preview.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466SETVVHQ7%2F20250927%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250927T010113Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEBEaCXVzLXdlc3QtMiJHMEUCIBgl6TamR&X-Amz-Signature=d9be103faf2f37cf40ca1481c3dd906b8aa9e47d57bf05b8195d9929f53eebcc&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject 4. 其他核心点 Copy name: Build and Deploy Blog on: # 每天凌晨 1 点自动触发 schedule: - cron: '0 17 * * *' # 北京时间 01:00 # 允许手动触发 workflow_dispatch: jobs: build-deploy: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v3 # Hugo 主题库拉取 - name: Update git submodules run: | git submodule update --init --recursive - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y make pip install -r py/requirements.txt - name: Install latest Hugo run: | wget https://github.com/gohugoio/hugo/releases/download/v0.151.0/hugo_0.151.0_linux-amd64.deb -O hugo.deb sudo dpkg -i hugo.deb hugo version # 指定 NOTION DB 和 NOTION TOKEN - name: Set up environment variables run: | echo "NOTION_DB_ID=${{ secrets.NOTION_DB_ID }}" > .env echo "NOTION_TOKEN=${{ secrets.NOTION_TOKEN }}" >> .env echo "NOTION_DB_ID=${{ secrets.NOTION_DB_ID }}" >> $GITHUB_ENV echo "NOTION_TOKEN=${{ secrets.NOTION_TOKEN }}" >> $GITHUB_ENV - name: Build blog run: | make convert && make build # 自动提交 hugo-site/content 中的内容 - name: Commit updated content uses: stefanzweifel/git-auto-commit-action@v6 with: commit_message: Sync content with Notion file_pattern: 'hugo-site/content/' 5. 后续的思考 需要去解决 Notion 中特殊块到 Markdown 的连接 ...