mcpField
Q
qiaomu-markdown-proxy

qiaomu-markdown-proxy

github.com/joeseesunDocuments508659 installsUpdated 12w ago
Repository

About qiaomu-markdown-proxy

qiaomu-markdown-proxy is a skill for retrieving URLs as clean Markdown. Dedicated routes handle documents and papers, while a proxy cascade with automatic fallback covers general pages.

Key features

  1. 01URL routing for specialized sources
  2. 02Proxy cascade with automatic fallback
  3. 03PDF and LaTeX extraction
  4. 04Login-wall and error-page filtering
  5. 05Save extracted content with YAML frontmatter

Use cases

  1. 01Convert a web article to Markdown before summarizing it
  2. 02Extract structured content from an arXiv paper
  3. 03Fetch a Feishu document using API credentials

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/joeseesun/qiaomu-markdown-proxy --skill qiaomu-markdown-proxy

After installing, type/qiaomu-markdown-proxyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
LICENSE
manifest.json
README.md
agents/
interface.yaml
evals/
trigger_cases.json
references/
methods.md
reports/
prior-art-research.md
creation-handoff.md
output-evidence.json
release-local.json
trigger-eval.json
skill-ir.json
scripts/
extract_pdf.sh
fetch.sh
fetch_feishu.py
fetch_weixin.sh
fetch_weixin.py
extract_tex.py
tests/
test_routing.py

Details

From the project README

Markdown Proxy - URL to Markdown

将任意 URL 转为干净的 Markdown。支持需要登录的页面、PDF、专有平台。

Trigger Priority(先触发,再分流)

  • 用户给出 URL 并要求“读取、抓取、提取、解析、转 Markdown”时,优先使用本 Skill。
  • 用户要求“读取这篇链接后再写稿、总结、翻译、做播客或分析”时,先用本 Skill 取回原文,再把 Markdown 交给下游 Skill;不要因为最终任务是写作而跳过抓取。
  • mp.weixin.qq.com 和飞书文档属于专用路由。不要先试普通网页打开或通用内容解析器。
  • 用户已经贴出全文时不触发。YouTube 交给 qiaomu-youtube-download,普通搜索问题交给搜索工具。

URL Routing (先判断再执行)

收到 URL 后,先判断类型,不同类型走不同通道:

URL PatternRoute ToReason
mp.weixin.qq.comscripts/fetch_weixin.sh先代理,验证码页自动回退 Playwright
feishu.cn/docx/ feishu.cn/wiki/ larksuite.com/docx/scripts/fetch_feishu.py需飞书 API 认证
youtube.com youtu.beqiaomu-youtube-download skillYouTube 有专用工具链
huggingface.co/papers/提取 arXiv ID → scripts/extract_tex.pyHuggingFace 论文页实际是 arXiv 镜像,先找到 arXiv 链接再走 LaTeX 提取
arxiv.org/abs/ arxiv.org/pdf/scripts/extract_tex.py从 LaTeX 源码提取结构化内容 (章节/图表/公式)
.pdf (URL or local path)scripts/extract_pdf.shPDF 专用提取
All other URLsscripts/fetch.sh代理级联自动 fallback

Workflow

Step 1: Route by URL Type
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
Step 2: Display Content

After fetching, show to user:

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}
Step 3: Continue or Save
  • Composite request(“读取后写稿/总结/分析”):把提取结果直接交给下游任务,在同一轮继续;除非用户要求,不必额外保存源文件。

  • Extraction-only request(“只读取/转 Markdown”):保存到 ~/Downloads/{title}.md,使用 YAML frontmatter。

  • Filename: use article title, remove special characters.

  • Format: YAML frontmatter (title, author, date, url, source) + Markdown body.

  • Tell the user the saved path.

  • Skip saving if the user says “just preview” or “don't save”.

Only stop after extraction when extraction was the complete request. If the user asked for a downstream deliverable, continue to that deliverable.

Examples

General URL
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://example.com/article"
X/Twitter Post
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://x.com/username/status/1234567890"
WeChat Article
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_weixin.sh "https://mp.weixin.qq.com/s/abc123"
Feishu Document
python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_feishu.py "https://xxx.feishu.cn/docx/xxxxxxxx"
arXiv LaTeX Source
python3 ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_tex.py "https://arxiv.org/abs/1706.03762"
PDF (Remote)
curl -sL "https://r.jina.ai/https://example.com/paper.pdf"
PDF (Local)
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/extract_pdf.sh "/path/to/paper.pdf"
With Custom Proxy
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch.sh "https://example.com" "http://127.0.0.1:7890"

Notes

  • r.jina.ai and defuddle.md require no API key
  • fetch.sh handles proxy cascade with automatic fallback
  • Content validation: filters error, login-wall, and WeChat verification pages; requires >5 lines
  • WeChat wrapper prefers dependency-free proxies, then uses local Playwright; when Python packages are missing and uv is available, it runs them in an isolated environment
  • Playwright fallback requires a Chromium runtime; install once with python3 -m playwright install chromium if absent
  • Feishu script requires: FEISHU_APP_ID + FEISHU_APP_SECRET env vars
  • PDF extraction tries: marker-pdf → pdftotext → pypdf
  • For detailed method documentation, see references/methods.md

Comments

Markdown supported