> ## Documentation Index
> Fetch the complete documentation index at: https://web2md.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# カスタム抽出ルール

> ドメインごとに CSS セレクターを定義し、コンテンツを正確に抽出します。

## 概要

カスタム抽出ルール(v0.7)を使うと、ドメインごとに CSS セレクターを定義して、Web2MD が抽出する内容を正確にコントロールできます。サイトのメインコンテンツが特殊なコンテナに入っている場合や、常に除去したい要素がある場合に、完全な制御が可能になります。

<Note>
  カスタムルールは **Pro 限定**の機能です。
</Note>

## ルールの作成

<Steps>
  <Step title="設定を開く">
    Web2MD のポップアップで **Settings → Custom Rules** に移動します。
  </Step>

  <Step title="新しいルールを追加">
    **New Rule** をクリックし、ドメイン(例:`example.com`)を入力します。
  </Step>

  <Step title="セレクターを定義">
    コンテンツセレクター、除去セレクター、必要に応じてタイトルセレクターを設定します。
  </Step>

  <Step title="保存して変換">
    ルールを保存します。次にそのドメインのページを変換すると、カスタムセレクターが自動的に適用されます。
  </Step>
</Steps>

## ルールのフィールド

| フィールド                | 説明                         | 例                                |
| -------------------- | -------------------------- | -------------------------------- |
| **Domain**           | ルールを適用するドメイン(完全一致)         | `docs.example.com`               |
| **Content selector** | メインコンテンツのコンテナを指す CSS セレクター | `article.post-body`              |
| **Remove selectors** | 除去する要素の CSS セレクター(カンマ区切り)  | `.ads, .sidebar, .related-posts` |
| **Title selector**   | 自動タイトル検出を上書き               | `h1.entry-title`                 |

## 例:ブログの整形

特定の div にコンテンツが入っていて、ノイズの多いサイドバーウィジェットを含むブログを日常的に変換しているとします。

```
Domain:           blog.example.com
Content selector: div.article-content
Remove selectors: .author-bio, .newsletter-signup, .comments-section
Title selector:   h1.post-title
```

このルールにより、Web2MD は次のように動作します。

1. `div.article-content` 内のコンテンツだけを抽出する
2. 著者プロフィール、ニュースレター登録欄、コメント欄を除去する
3. `h1.post-title` 要素をドキュメントのタイトルとして使う

## ルールの適用方法

<CardGroup cols={2}>
  <Card title="自動マッチング" icon="bullseye">
    ルールはドメイン単位でマッチングされます。ページを変換する際、Web2MD はそのドメインのカスタムルールが存在するかを確認し、標準の抽出パイプラインより前に適用します。
  </Card>

  <Card title="フォールバック動作" icon="shield">
    コンテンツセレクターがページ上の何にもマッチしない場合、Web2MD はデフォルトの抽出ロジックにフォールバックします。ルールが原因で変換が壊れることはありません。
  </Card>
</CardGroup>

## ルールの管理

すべてのルールは、拡張機能ポップアップの **Settings → Custom Rules** で管理します。

| 操作      | 方法                                 |
| ------- | ---------------------------------- |
| **作成**  | Settings → Custom Rules → New Rule |
| **編集**  | 既存のルールをクリックしてセレクターを変更              |
| **削除**  | ルールの横のゴミ箱アイコンをクリック                 |
| **テスト** | 対象ドメインのページを開いて変換を実行                |

<Tip>
  ルールを作成する前に、ブラウザの DevTools(`Cmd+Shift+I` または `F12`)でページを調査し、適切な CSS セレクターを見つけてください。
</Tip>

## コミュニティ共有

<Info>
  コミュニティでのルール共有機能は近日公開予定です。ルールを公開(`isPublic` フラグ)としてマークすることで、他のユーザーがあなたのドメイン固有セレクターを利用できるようになります。
</Info>

## サイトアダプターとの関係

カスタムルールと[サイトアダプター](/ja/advanced/site-adapters)は、それぞれ異なる目的を持ちます。

|            | サイトアダプター                          | カスタムルール           |
| ---------- | --------------------------------- | ----------------- |
| **対象範囲**   | 組み込みの特定プラットフォーム(Reddit、GitHub など) | 任意に定義したドメイン       |
| **方式**     | プラットフォームの API と専用ロジック             | CSS セレクターのみ       |
| **メンテナンス** | Web2MD チーム                        | ユーザー自身            |
| **優先度**    | 先に実行される                           | アダプターがマッチしない場合に実行 |

ドメインに対応するサイトアダプターが存在する場合は、カスタムルールより優先されます。カスタムルールは、専用アダプターがないサイトに最適です。
