关于 qiaomu-markdown-proxy
qiaomu-markdown-proxy 用于抓取 URL 并转换为整洁的 Markdown。它为文档和论文设置专用路由,其他网页由代理级联流程自动回退处理。
主要功能
- 01按来源类型路由 URL
- 02代理级联与自动回退
- 03提取 PDF 和 LaTeX 内容
- 04过滤登录墙和错误页面
- 05以 YAML frontmatter 保存内容
适用场景
- 01将网页文章转为 Markdown 后再总结
- 02提取 arXiv 论文的结构化内容
- 03使用 API 凭据抓取飞书文档
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ joeseesun/ qiaomu-markdown-proxy --skill qiaomu-markdown-proxy安装后在 Claude Code 中输入/qiaomu-markdown-proxy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreLICENSEmanifest.jsonREADME.mdagents/interface.yamlevals/trigger_cases.jsonreferences/methods.mdreports/prior-art-research.mdcreation-handoff.mdoutput-evidence.jsonrelease-local.jsontrigger-eval.jsonskill-ir.jsonscripts/extract_pdf.shfetch.shfetch_feishu.pyfetch_weixin.shfetch_weixin.pyextract_tex.pytests/test_routing.py详细介绍
Markdown 代理 - URL 转 Markdown
将任意 URL 转为干净的 Markdown。支持需要登录的页面、PDF 和专有平台。
触发优先级(先触发,再分流)
- 用户给出 URL 并要求“读取、抓取、提取、解析、转 Markdown”时,优先使用本 Skill。
- 用户要求“读取这篇链接后再写稿、总结、翻译、做播客或分析”时,先用本 Skill 取回原文,再把 Markdown 交给下游 Skill;不要因为最终任务是写作而跳过抓取。
mp.weixin.qq.com和飞书文档属于专用路由。不要先尝试普通网页打开或通用内容解析器。- 用户已经贴出全文时不触发。YouTube 交给
qiaomu-youtube-download,普通搜索问题交给搜索工具。
URL 路由(先判断再执行)
收到 URL 后,先判断类型,不同类型走不同通道:
| URL 模式 | 路由到 | 原因 |
|---|---|---|
mp.weixin.qq.com | scripts/fetch_weixin.sh | 先代理,验证码页自动回退到 Playwright |
feishu.cn/docx/ feishu.cn/wiki/ larksuite.com/docx/ | scripts/fetch_feishu.py | 需要飞书 API 认证 |
youtube.com youtu.be | qiaomu-youtube-download skill | YouTube 有专用工具链 |
huggingface.co/papers/ | 提取 arXiv ID → scripts/extract_tex.py | HuggingFace 论文页实际上是 arXiv 镜像,先找到 arXiv 链接,再进行 LaTeX 提取 |
arxiv.org/abs/ arxiv.org/pdf/ | scripts/extract_tex.py | 从 LaTeX 源码中提取结构化内容(章节/图表/公式) |
.pdf(URL 或本地路径) | scripts/extract_pdf.sh | PDF 专用提取 |
| 所有其他 URL | scripts/fetch.sh | 代理级联并自动回退 |
工作流
步骤 1:按 URL 类型路由
if URL contains "mp.weixin.qq.com":
→ bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_weixin.sh "URL"
→ Done
if URL contains "feishu.cn/docx/" or "feishu.cn/wiki/" or "larksuite.com/docx/":
→ python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_feishu.py "URL"
→ Done
if URL contains "huggingface.co/papers/":
→ First fetch the page (WebFetch) to find the arXiv URL
→ Then python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "{arxiv_url}"
→ Done
if URL contains "arxiv.org/abs/" or "arxiv.org/pdf/":
→ python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "URL"
→ Done
if URL contains "youtube.com" or "youtu.be":
→ Call qiaomu-youtube-download skill
→ Done
if URL ends with ".pdf" or is local PDF path:
if remote URL:
→ Try: curl -sL "https://r.jina.ai/{url}"
→ If fails: download + extract_pdf.sh
if local path:
→ bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_pdf.sh "PATH"
→ Done
else:
→ bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "URL"
→ Done
步骤 2:显示内容
抓取后,向用户展示:
Title: {title}
Author: {author} (if available)
Source: {platform} (公众号 / 飞书文档 / 网页 / PDF)
URL: {original_url}
Summary
{3-5 sentence summary}
Content
{full Markdown, truncated at 200 lines if long}
步骤 3:继续或保存
-
复合请求(“读取后写稿/总结/分析”):将提取结果直接交给下游任务,并在同一轮继续;除非用户要求,否则不必额外保存源文件。
-
仅提取请求(“只读取/转 Markdown”):使用 YAML frontmatter 保存到
~/Downloads/{title}.md。 -
文件名:使用文章标题,并移除特殊字符。
-
格式:YAML frontmatter(title、author、date、url、source)+ Markdown 正文。
-
告知用户保存路径。
-
如果用户说“只预览”或“不要保存”,则跳过保存。
仅当提取就是完整请求时,才在提取后停止。如果用户还要求交付下游内容,则继续完成该交付。
示例
通用 URL
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://example.com/article"
X/Twitter 帖子
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://x.com/username/status/1234567890"
微信文章
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_weixin.sh "https://mp.weixin.qq.com/s/abc123"
飞书文档
python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_feishu.py "https://xxx.feishu.cn/docx/xxxxxxxx"
arXiv LaTeX 源码
python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "https://arxiv.org/abs/1706.03762"
PDF(远程)
curl -sL "https://r.jina.ai/https://example.com/paper.pdf"
PDF(本地)
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_pdf.sh "/path/to/paper.pdf"
使用自定义代理
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://example.com" "http://127.0.0.1:7890"
说明
- r.jina.ai 和 defuddle.md 无需 API 密钥
fetch.sh处理代理级联,并自动回退- 内容验证:过滤错误页、登录墙和微信验证页;要求超过 5 行
- 微信封装脚本优先使用无需依赖的代理,然后使用本地 Playwright;如果缺少 Python 软件包且有
uv,则在隔离环境中运行这些软件包 - Playwright 回退需要 Chromium 运行时;如果尚未安装,请运行
python3 -m playwright install chromium安装一次 - 飞书脚本需要以下环境变量:
FEISHU_APP_ID+FEISHU_APP_SECRET - PDF 提取会依次尝试:marker-pdf → pdftotext → pypdf
- 有关方法的详细文档,请参见
references/methods.md
评论
支持 Markdown