defuddle について
defuddle は、記事形式のページから本文を抽出し、メタデータ付きの Markdown にするスキルです。記事情報の提示から Markdown ファイルへの保存まで、エージェントの手順を定めています。
主な機能
- 01記事本文を Markdown で抽出
- 02記事メタデータを JSON で取得
- 03タイトル、著者、出典、語数を表示
- 04frontmatter 付き Markdown ファイルに保存
- 05URL またはローカル HTML ファイルに対応
活用シーン
- 01ブログやニュース記事のクリップ
- 02ウェブページからドキュメントを抽出
- 03出典と公開日を添えて記事を保存
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ joeseesun/ defuddle-skill --skill defuddleインストール後、Claude Code で/defuddleを入力して読み込まれたか確認します。
詳細
Defuddle - Web コンテンツ抽出
広告、サイドバー、ナビゲーションなどの不要な要素を取り除き、Web ページから記事の本文を抽出します。メタデータ付きのクリーンな Markdown を出力します。
前提条件
初めて使用する前に、defuddle がインストールされているか確認してください。
command -v defuddle >/dev/null 2>&1 || npm install -g defuddle jsdom
デフォルトのワークフロー
ユーザーから URL が提供されたら、次のワークフローに従います。
ステップ 1:コンテンツを Markdown と JSON メタデータとして抽出する
完全なメタデータ付きの Markdown コンテンツを取得するため、必ず -m と -j の両方のフラグを使用します。
defuddle parse "<url>" -m -j
ステップ 2:ユーザーに概要を提示する
ユーザーに次の情報を示します。
- タイトル:JSON の
titleフィールドから取得 - 著者:JSON の
authorフィールドから取得 - ソース:ドメイン
- 単語数:JSON の
wordCountフィールドから取得 - 簡単なプレビュー(最初の 2〜3 文)
ステップ 3:保存先を尋ねる
この会話で defuddle を初めて使用する場合は、ユーザーに次のように尋ねます。
"どのディレクトリに保存しますか?(例:
~/Documents、~/Desktop、または任意のパス)"
同じ会話で次回以降に使用するため、ユーザーが選んだディレクトリを記憶します。
ステップ 4:Markdown ファイルとして保存する
フロントマターとコンテンツ全体を含めてファイルを書き込みます。
---
title: {title}
author: {author}
source: {url}
date: {published or "Unknown"}
clipped: {today's date YYYY-MM-DD}
wordCount: {wordCount}
---
# {title}
{markdown content}
ファイル名:記事タイトルをファイル名として使用し、ファイルシステムで使えるように整形します。
- 特殊文字をスペースに置き換える
- 前後の空白を削除する
- 例:
The Shape of the Essay Field.md
ステップ 5:ユーザーに確認する
ファイルの保存先パスをユーザーに伝えます。
CLI リファレンス
defuddle parse <source> [options]
引数:
<source>— URL(https://...)またはローカルの HTML ファイルパス
オプション:
| フラグ | 説明 |
|---|---|
-m, --markdown | コンテンツを Markdown に変換 |
-j, --json | 完全なメタデータを含む JSON として出力 |
-o, --output <file> | 標準出力ではなくファイルに書き込む |
-p, --property <name> | 単一のプロパティ(title、description、domain、author、published、wordCount、content)を抽出 |
--debug | 詳細なログを出力 |
JSON レスポンスのフィールド
-j を使用すると、レスポンスには次の項目が含まれます。
title— 記事タイトルauthor— 著者名published— 公開日description— メタディスクリプションcontent— 抽出された Markdown(-mを使用した場合)domain— ソースのドメインfavicon— ファビコンの URLimage— メイン画像の URLsite— サイト名wordCount— 単語数parseTime— 処理時間(ミリ秒)
注意事項
- Node.js と npm が必要です
- ピア依存関係として
jsdomが必要です - 記事形式のページ(ブログ、ニュース、ドキュメント)で最適に動作します
- SPA や JavaScript を多用するページ(例:WeChat の記事にはブラウザーでのレンダリングが必要です)向けには設計されていません
コメント
Markdown 対応