url-to-markdown について
URL to Markdownは、Chrome CDPでウェブページを取得し、レンダリング済みHTMLをページメタデータ付きのMarkdownに変換します。公開ページや操作が必要なページ向けに、自動取得とユーザー操作を待つモードを備えています。
主な機能
- 01Chrome CDPによるJavaScript描画ページの取得
- 02自動取得とユーザー操作待ちモード
- 03ページメタデータ付きMarkdown出力
- 04出力先とタイムアウトの設定
- 05ドメイン別の取得ファイル整理
活用シーン
- 01公開ページをMarkdownとして保存
- 02ログインやスクロール後にページを取得
- 03動的に描画されるページの内容を抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zlh-428/ naruto-skills --skill url-to-markdownインストール後、Claude Code で/url-to-markdownを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/cdp.tsconstants.tshtml-to-markdown.tsmain.tspaths.ts詳細
URL から Markdown へ
Chrome CDP を介して任意の URL を取得し、HTML をクリーンな Markdown に変換します。
スクリプトディレクトリ
重要:すべてのスクリプトは、このスキルの scripts/ サブディレクトリにあります。
エージェントの実行手順:
- この SKILL.md ファイルのディレクトリパスを
SKILL_DIRとして特定します - スクリプトパス =
${SKILL_DIR}/scripts/<script-name>.ts - このドキュメント内のすべての
${SKILL_DIR}を実際のパスに置き換えます
スクリプトの参照:
| スクリプト | 用途 |
|---|---|
scripts/main.ts | URL 取得用の CLI エントリーポイント |
機能
- JavaScript を完全にレンダリングする Chrome CDP
- 2 つの取得モード:自動またはユーザー待機
- メタデータ付きのクリーンな Markdown 出力
- 待機モードでログインが必要なページに対応
使い方
# Auto mode (default) - capture when page loads
npx -y bun ${SKILL_DIR}/scripts/main.ts <url>
# Wait mode - wait for user signal before capture
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --wait
# Save to specific file
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md
オプション
| オプション | 説明 |
|---|---|
<url> | 取得する URL |
-o <path> | 出力ファイルのパス(デフォルト:自動生成) |
--wait | 取得前にユーザーの合図を待ちます |
--timeout <ms> | ページの読み込みタイムアウト(デフォルト:30000) |
取得モード
自動モード(デフォルト)
ページを読み込み → ネットワークがアイドル状態になるまで待機 → すぐに取得します。
次の場合に最適です:
- 公開ページ
- 静的コンテンツ
- ログインが不要
待機モード(--wait)
ページを開く → ユーザーが操作できます(ログイン、スクロールなど)→ ユーザーが準備完了を通知 → 取得します。
次の場合に最適です:
- ログインが必要なページ
- 操作が必要な動的コンテンツ
- 遅延読み込みのあるページ
待機モードでのエージェントのワークフロー:
--waitフラグを付けてスクリプトを実行します- スクリプトが次のように出力します:
Page opened. Press Enter when ready to capture... AskUserQuestionを使って、ページの準備ができたかユーザーに尋ねます- ユーザーが確認したら、取得を開始するために標準入力へ改行を送信します
出力形式
---
url: https://example.com/page
title: "Page Title"
description: "Meta description if available"
author: "Author if available"
published: "2024-01-01"
captured_at: "2024-01-15T10:30:00Z"
---
# Page Title
Converted markdown content...
モード選択ガイド
ユーザーが URL の取得を依頼した場合は、適切なモードの選択を支援してください。
自動モードを提案する場合:
- URL が公開されている(ログイン画面が表示されない)
- コンテンツが静的に見える
- ユーザーがログインの必要性に言及していない
待機モードを提案する場合:
- ユーザーがログインの必要性に言及している
- 認証が必要なサイトであることが知られている
- ユーザーが取得前にスクロールや操作をしたい
- コンテンツがペイウォールの内側にある
不明な場合はユーザーに尋ねます:
The page may require login or interaction before capturing.
Which mode should I use?
1. Auto - Capture immediately when loaded
2. Wait - Wait for you to interact first
出力ディレクトリ
取得するたびに、ドメインごとに整理されたファイルが作成されます。
url-to-markdown/
└── <domain>/
└── <slug>.md
パスの構成要素:
<domain>:サイトのドメイン(例:example.com、github.com)<slug>:ページタイトルまたは URL パスから生成(ケバブケース)
スラッグの生成:
- ページタイトル(優先)または URL パスから抽出します
- 2~6 語のケバブケースに変換します
- 例:「Getting Started with React」→
getting-started-with-react
競合の解決:
url-to-markdown/<domain>/<slug>.md がすでに存在する場合:
- タイムスタンプを追加します:
<slug>-YYYYMMDD-HHMMSS.md - 例:
getting-started.mdが存在する →getting-started-20260118-143052.md
エラー処理
| エラー | 解決方法 |
|---|---|
| Chrome が見つからない | Chrome をインストールするか、URL_CHROME_PATH env を設定します |
| ページのタイムアウト | --timeout の値を増やします |
| 取得に失敗 | 複雑なページでは待機モードを試します |
| コンテンツが空 | JavaScript のレンダリングに時間が必要なページの可能性があります |
環境変数
| 変数 | 説明 |
|---|---|
URL_CHROME_PATH | カスタム Chrome 実行ファイルのパス |
URL_DATA_DIR | カスタムデータディレクトリ |
URL_CHROME_PROFILE_DIR | カスタム Chrome プロファイルディレクトリ |
拡張機能のサポート
EXTEND.md を使用してカスタム設定を行えます。
パスの確認(優先順位順):
.content-gen-skills/url-to-markdown/EXTEND.md(プロジェクト)~/.content-gen-skills/url-to-markdown/EXTEND.md(ユーザー)
見つかった場合は、ワークフローの前に読み込みます。拡張コンテンツはデフォルト設定を上書きします。