用途
该技能用于把微信公众号文章(mp.weixin.qq.com)采集进 Obsidian 知识库,保存为 Markdown 笔记,并将文章图片下载到本地,而不是引用远程 CDN 地址。
适用场景
当用户满足以下条件时使用:
- 提供了 mp.weixin.qq.com 的文章 URL
- 希望把文章正文保存为 Obsidian 知识库中的 Markdown 笔记
- 希望文章图片下载到本地,而非引用远程 CDN URL
- 希望使用 Obsidian 图片链接形式,如 ![[assets/title/image.png]]
- 希望获得可重复执行的微信文章剪藏工作流
以下情况不要使用:
- URL 不是微信公众号文章
- 用户只想从文章中提取视觉主题
- 用户想把 Markdown 发布回微信
- 目标不是本地 Markdown 或 Obsidian 知识库
主要能力
- 优先使用 opencli weixin download 进行初次文章抓取
- 当 opencli 遗漏图片,或文章为图片页文章时,使用随附脚本补充抓取
- 解析页面源码,提取标题、公众号名称、发布时间、描述/正文文本以及图片页图片 URL
- 将图片下载到 assets/<safe-title>/ 目录
- 将 Markdown 笔记写入指定的 --target-dir
- 输出 JSON 摘要,包含笔记路径、资源目录、图片数量以及是否运行了 opencli
使用方式
- 先阅读目标知识库的规范,尤其是目录规则、资源规则和索引维护规则。
- 根据文章主题选择语义化的笔记目录,不要默认放入通用的剪藏文件夹。
- 如果可用,运行 opencli weixin download:
opencli weixin download --url "https://mp.weixin.qq.com/s/example" --output /tmp/weixin-article --download-images true -f yaml
- 如果 opencli 遗漏图片,或文章是图片页文章,运行随附脚本:
python3 scripts/download_weixin_article.py "https://mp.weixin.qq.com/s/example" \
--vault-root /path/to/obsidian-vault \
--target-dir "FrontEnd/security"
- 检查生成的 Markdown,移除平台界面元素、重复元数据、推荐模块或打赏提示(如仍存在)。
- 验证每个图片引用都是指向 assets/<note-title>/ 下的 Obsidian 知识库链接。
- 如果知识库需要主题索引,用 wiki 链接把新笔记更新到本地索引页。
脚本行为
scripts/download_weixin_article.py:
- 先尝试 opencli weixin download,并在其 Markdown 正文足够完整时复用
- 直接抓取文章 HTML 作为回退或补充
- 提取标题、公众号名称、发布时间、描述/正文文本以及图片页图片 URL
- 将图片下载到 assets/<safe-title>/
- 将 Markdown 笔记写入请求的 --target-dir
- 输出 JSON 摘要,包含笔记路径、资源目录、图片数量以及是否运行了 opencli
重要选项
- --vault-root:Obsidian 知识库根目录,默认为当前工作目录
- --target-dir:知识库内的相对笔记目录,默认为知识库根目录
- --title:覆盖提取出的标题和资源文件夹名
- --locale:使用 zh 或 en 元数据标签,默认为 zh
- --overwrite:替换同标题的已有 Markdown 笔记
输出规则
- 将 Markdown 保存到选定的内容目录下
- 将图片保存到相对于知识库根目录的 assets/<note-title>/ 下
- 使用 Obsidian 图片语法,而不是普通 Markdown 图片语法
- 除非用户要求移除,否则保留来源 URL 作为一行简短元数据
- 除非知识库已要求,否则不要添加 YAML frontmatter
验证清单
- 笔记存在于所选目录中
- 资源文件夹存在,并包含所有预期的文章图片
- rg "mmbiz|data:image|http" <note> 只显示来源 URL,不显示远程图片链接
- 图片链接渲染为 ![[assets/...]]
- 在知识库要求时,主题索引已更新
限制
该技能仅适用于微信公众号文章,不适用于其他来源的网页;不用于提取视觉主题,也不用于把 Markdown 发布回微信。目标必须是本地 Markdown 或 Obsidian 知识库。关于收费、价格、平台支持范围等更多信息,资料中暂未提供。