markdown-proxy について
markdown-proxyは、URLの内容を取得して読みやすいMarkdownに変換するスキルです。PDF、論文、WeChat公式アカウント、Feishu文書には専用スクリプトを使い、その他のページはプロキシを順次試します。
主な機能
- 01ソース別のURL振り分け
- 02プロキシの順次試行と自動フォールバック
- 03PDFとLaTeXの抽出
- 04ログイン壁とエラーページの除外
- 05YAML frontmatter付きで保存
活用シーン
- 01記事をMarkdownにしてから要約
- 02arXiv論文から構造化コンテンツを抽出
- 03API認証情報を使ってFeishu文書を取得
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ joeseesun/ qiaomu-markdown-proxy --skill markdown-proxyインストール後、Claude Code で/markdown-proxyを入力して読み込まれたか確認します。
詳細
Markdown Proxy - URL を Markdown に変換
任意の URL をクリーンな Markdown に変換します。ログインが必要なページ、PDF、専有プラットフォームに対応しています。
トリガーの優先順位(先にトリガーし、その後に振り分け)
- ユーザーが URL を提示し、「読み取り、取得、抽出、解析、Markdown に変換」を依頼した場合は、優先してこの Skill を使用します。
- ユーザーが「このリンクを読んでから、原稿の作成、要約、翻訳、ポッドキャストの作成、分析」を依頼した場合は、まずこの Skill で原文を取得し、その Markdown を下流の Skill に渡します。最終的なタスクが執筆だからといって、取得を省略しないでください。
mp.weixin.qq.comと Feishu ドキュメントは専用ルートです。通常のウェブページを開いたり、汎用コンテンツ解析ツールを試したりしないでください。- ユーザーがすでに全文を貼り付けている場合はトリガーしません。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 | Feishu 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"
WeChat の記事
bash ~/.agents/skills/qiaomu-markdown-proxy/scripts/fetch_weixin.sh "https://mp.weixin.qq.com/s/abc123"
Feishu ドキュメント
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はプロキシのカスケード処理と自動フォールバックを行います- コンテンツの検証:エラー、ログイン画面、WeChat の認証ページを除外し、5 行を超えることを確認します
- WeChat ラッパーは依存関係のないプロキシを優先し、その後ローカルの Playwright を使用します。Python パッケージが不足していて
uvを利用できる場合は、隔離された環境で実行します - Playwright のフォールバックには Chromium ランタイムが必要です。インストールされていない場合は、
python3 -m playwright install chromiumを一度実行してインストールしてください - Feishu スクリプトには、環境変数
FEISHU_APP_IDとFEISHU_APP_SECRETが必要です - PDF の抽出では、marker-pdf → pdftotext → pypdf の順に試します
- 詳細な手法のドキュメントについては、
references/methods.mdを参照してください
コメント
Markdown 対応