王垠博客(yinwang.org)文章自动备份。通过 GitHub Actions 每周自动爬取,将所有博文保存为 Markdown 文件并下载图片。已删除的文章通过 Git 历史保留。
English · 中文
yinwangdl/
├── posts/ # Markdown 文章(文件名 = slug)
├── images/ # 文章图片(按 URL slug 分目录)
├── scripts/ # 爬虫和工具脚本
├── src/site/ # Eleventy 静态站点源码
└── index.json # 文章元数据索引
pip install requests)git clone https://github.com/turinglambdaai/yinwangdl.git
cd yinwangdl
# 安装依赖
pip install -r scripts/requirements.txt
# 增量爬取(仅新增/更新的文章)
python scripts/crawler.py
# 强制重新下载所有文章
python scripts/crawler.py --force
npm install
npm run build # 输出到 dist/
npm run dev # 本地开发服务器,支持热重载
https://www.yinwang.org/api/v1/posts 接口,通过分页参数(skip/limit)获取所有文章 slug。source URL 构建索引,避免生成重复文件。https://www.yinwang.org/api/v1/posts/{slug} 获取完整文章内容。images/{slug}/ 目录。index.json。每个 Markdown 文件以 URL slug 命名,完全自包含:
---
title: "我的博客文章"
slug: my-blog-post
author: 王垠
created: 2025-01-15
source: https://www.yinwang.org/posts/my-blog-post
---
# 我的博客文章
## 第一节
正文……
slug(即 URL /posts/{slug}/ 与图片目录 images/{slug}/,三者统一)title 字段;正文以 H1 标题开始每周爬取发现新文章时,工作流可给你发一封摘要邮件,方便你决定是否分享到公众号。通过仓库 Secrets 配置(Settings → Secrets and variables → Actions):
| Secret | 值 |
|---|---|
SMTP_HOST |
如 smtp.qq.com |
SMTP_USER |
发件账号,如 you@qq.com |
SMTP_PASS |
SMTP 授权码(非登录密码) |
NOTIFY_TO |
收件地址,通常与发件账号相同 |
未配置时该步骤仅本地输出,无副作用。
站点提供 Atom 订阅:/feed.xml(最新 20 篇,标题 + 链接 + 简短摘要)。有意不输出全文——内容归原作者所有。
仓库代码(脚本与工作流)基于 MIT License 开源;posts/ 下的博客内容版权归原作者所有,仅供个人存档阅读。
本站为备份存档,仅供阅读便利,不销售任何文章内容。若您是内容版权所有者并希望删除任何文章,请提交 issue,我们会尽快处理下架。