wechat-article-ingest · diff
v1.0.0 to v1.0.0
46 added, 123 removed. Audit A to A.
---
name: wechat-article-ingest
description: >
- 微信公众号文章 PDF → Markdown 提取 + A层观点提取 + B层问题链生成。
- 支持批量处理、长文档子主题拆分。
+ 微信公众号文章 → Markdown 提取 + A层观点提取 + B层问题链生成。
+ 支持直接链接抓取和 PDF 提取两种方式。
category: productivity
triggers:
- "处理公众号文章"
- "公众号入库"
- "提取观点"
- "A+B 处理"
- - "观点提取"
- - "问题链"
+ - "把这篇文章转成 markdown"
+ - "抓取公众号文章"
version: 1.0.0
tags: [productivity, wechat, article-ingest, knowledge-management]
---
# 微信公众号文章处理 Skill
- 将微信公众号文章 PDF 提取为 Markdown,生成 A 层观点提取 + B 层问题链,存入知识库。
+ 将微信公众号文章转换为 Markdown,生成 A 层观点提取 + B 层问题链,存入知识库。
- ## 为什么需要这个
+ ## 两种模式
- 微信公众号文章没有稳定的网页抓取方式(反爬、需要登录),但可以通过「笔记同步助手」等工具导出 PDF。这个 skill 解决:
+ ### 模式 1:直接链接抓取(推荐)
- - PDF → Markdown 结构化提取
- - 观点提取(A层):核心观点矩阵 + Takeaway
- - 问题链生成(B层):L1→L2→L3 递进式提问
- - 长文档自动拆子主题
+ ```bash
+ python scripts/fetch_article.py "https://mp.weixin.qq.com/s/xxxxx"
+ ```
+ 公众号文章 URL 是公开的,不需要登录,直接抓取即可。
+
+ ### 模式 2:PDF 提取
+
+ ```bash
+ python scripts/extract.py "path/to/article.pdf"
+ ```
+
+ 适用于通过「笔记同步助手」等工具导出的 PDF。
+
## 环境要求
```bash
# Python 3.10+
- pip install markitdown pymupdf
+ pip install beautifulsoup4 markitdown pymupdf
# 或者用 uv
- uv pip install markitdown pymupdf
+ uv pip install beautifulsoup4 markitdown pymupdf
```
- ## 核心流程
+ ## 使用方法
- ```
- PDF 文件 → MarkItDown 提取 → 判断是否拆子主题 → A层观点提取 + B层问题链 → 存入知识库
- ```
+ ### 单篇处理(链接)
- ## 使用方法
+ ```bash
+ python scripts/fetch_article.py "https://mp.weixin.qq.com/s/xxxxx" --output ./output
+ ```
- ### 单篇处理
+ ### 单篇处理(PDF)
```bash
python scripts/extract.py "path/to/article.pdf" --output ./output
```
### A+B 处理(需要 Agent)
```
- 帮我处理这篇文章:path/to/article.pdf
+ 帮我处理这篇文章:https://mp.weixin.qq.com/s/xxxxx
提取观点 + 问题链
```
- ### 批量处理
-
- ```
- 处理素材库里最近的公众号文章
- ```
-
- ## Step 1: PDF → Markdown
-
- ### 首选:MarkItDown
+ ## 核心流程
- ```bash
- python3 -m markitdown path/to/file.pdf > /tmp/output.md
```
-
- MarkItDown 保留标题层级、列表、表格结构。
-
- ### 备选:pymupdf
-
- ```python
- import pymupdf
- doc = pymupdf.open('path/to/file.pdf')
- text = ""
- for page in doc:
- text += page.get_text()
+ 公众号链接/PDF → 提取内容 → A层观点提取 + B层问题链 → 存入知识库
```
- 纯文本,丢失格式但内容完整。
-
- ### 跳过规则
-
- - 两种提取都返回 <300 字有效文本 → 纯图片扫描件,跳过
- - 内容 <500 字 → 跳过
- - 纯英文文章 → 跳过
-
- ## Step 2: A层观点提取
+ ## A层:观点提取
生成 `观点提取-{作者}-{主题}.md`:
- ```markdown
- ---
- title: "{作者}:{主题} — 观点提取与知识卡片"
- type: note
- tags: [公众号, 主题标签...]
- created: YYYY-MM-DD
- source: "原文链接或路径"
- summary: "一句话摘要"
- ---
-
- # {作者}:{主题}
-
- ## 核心观点矩阵
-
- ### 🔴 支柱观点(P1-P6)
- - P1: ...
- - P2: ...
-
- ### 🟡 支撑观点(S1-S8)
- - S1: ...
-
- ### 🟢 延伸观点(E1-E4)
- - E1: ...
-
- ## Takeaway
-
- 1. **核心观点** → 行动指向
- 2. ...
- ```
+ - 🔴 支柱观点(P1-P6):文章最核心的论点
+ - 🟡 支撑观点(S1-S8):支撑支柱的论据
+ - 🟢 延伸观点(E1-E4):可以延伸思考的方向
+ - Takeaway:每条含核心观点 + 行动指向
- ## Step 3: B层问题链
+ ## B层:问题链
生成 `问题链-{作者}-{主题}.md`:
- ```markdown
- ---
- title: "{作者}:{主题} — 问题链与伴读引导"
- type: note
- tags: [问题链, 伴读...]
- created: YYYY-MM-DD
- source: "原文链接或路径"
- paired_with: "[[观点提取-{作者}-{主题}]]"
- ---
-
- # {作者}:{主题} — 问题链
-
- ## 问题链 1:{主题关键词}
-
- ### L1 安全区(你知道的)
- - Q1: ...
-
- ### L2 边缘区(你模糊知道的)
- - Q3: ...
-
- ### L3 核心区(你没想到的)
- - Q5: ...
-
- ## 伴读指南
- ...
-
- ## 终局种子
- 一个带回家的问题。
- ```
-
- ## Step 4: 长文档子主题拆分
-
- 当一篇 PDF 报告有多个独立章节时:
-
- 1. **提取全文** → MarkItDown 转 Markdown
- 2. **识别子主题** → 提取 3-5 个最相关的独立子主题
- 3. **每个子主题独立 A+B** → 每篇设独立子目录
- 4. **并行分派** → 多 Agent 并行处理
+ - 3-5 条问题链,每条对应一个核心主题
+ - 每条链分 L1(安全区)→ L2(边缘区)→ L3(核心区)
+ - 每条链 6 道问题
+ - 终局种子:一个带回家的问题
## 知识库目录结构
```
知识库/
├── 素材库/
│ └── 公众号文章/
│ └── {公众号名}/
- │ └── article.pdf
+ │ └── article.md
└── wiki/
└── 外部输入/
└── 公众号/
└── {公众号名}/
└── {主题}/
├── 观点提取.md
└── 问题链.md
```
## 已知限制
+ - 部分公众号文章有防盗链,可能抓取失败
+ - 纯图片文章无法提取文字
- MarkItDown 需要 Python ≥ 3.10
- - 纯图片扫描件无法提取(需要 OCR)
- - 某些 PDF 有加密保护,无法解析
- - 长文档拆分需要 Agent 判断,不是纯脚本能完成
+ - 长文档拆分需要 Agent 判断
## 参考项目
- [microsoft/markitdown](https://github.com/microsoft/markitdown) - PDF/文档转 Markdown
- [pymupdf/PyMuPDF](https://github.com/pymupdf/PyMuPDF) - PDF 处理库
+ - [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/) - HTML 解析