| 概要 | サitemapをインポートし、「ウォッチドワード(Watched Words)」と同様に、ページタイトルをフォーラムリンクに自動的にマッピングできます。 | |
| リポジトリリンク | GitHub - multidimension-al/discourse-sitemap-autolink: Turn sitemaps into automatic links in discourse. · GitHub | |
| インストールガイド | Discourseにプラグインをインストールする方法 |
機能
これは「ウォッチドワード」機能を使用する代替手段です。外部Webサイトのsitemapを取得してインポートし、単語の一致を自動的に割り当て、次にリベイク(再レンダリング)が行われる際にそれらをリンクします。「ウォッチドワード」の動作と非常に似ていますが、sitemapの取り込みとキーワードの抽出というステップが追加されています。
例えば、別個のWikiセクションを持つ技術フォーラムや、ニュースサイトやECストアに関連するフォーラムに適しています。
Wikiのsitemapを使用します:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://www.example.com/wiki/soldering-iron-maintenance</loc><lastmod>2026-07-02</lastmod></url>
<url><loc>https://www.example.com/wiki/mosfet-driver-board</loc><lastmod>2026-07-05</lastmod></url>
<url><loc>https://www.example.com/wiki/li-ion-battery-pack</loc><lastmod>2026-07-11</lastmod></url>
<url><loc>https://www.example.com/wiki/pcb-etching</loc><lastmod>2026-07-19</lastmod></url>
<url><loc>https://www.example.com/wiki/flux</loc><lastmod>2026-07-23</lastmod></url>
</urlset>
プラグインはsitemapをダウンロードし、ページからタイトルを取得し、一致する単語を生成します。これらの単語は、それらの単語を含む投稿が次にベイク(レンダリング)される際に自動的にリンクされます。また、プラグインはそれらの投稿を検索し、それらだけを自動的にリベイクします。
取得した <title> |
保存されたタイトル |
|---|---|
| Soldering Iron Maintenance - Example Wiki | Soldering Iron Maintenance |
| MOSFET Driver Board - Example Wiki | MOSFET Driver Board |
| Li-Ion Battery Pack - Example Wiki | Li-Ion Battery Pack |
| PCB Etching - Example Wiki | PCB Etching |
| Flux - Example Wiki | Flux |
各タイトルは、安全策を施して一致するフレーズになります。
| 保存されたタイトル | 生成されたフレーズ | 状態 |
|---|---|---|
| Soldering Iron Maintenance | soldering iron maintenance(s) | アクティブ |
| MOSFET Driver Board | mosfet driver board(s) | アクティブ |
| Li-Ion Battery Pack | li-ion battery pack(s) | アクティブ |
| PCB Etching | pcb etching(s) | アクティブ |
| Flux | flux, fluxes | レビュー待ち — 短い単一単語 |
その後、フレーズに一致する内容を含む投稿は、自動的にサイト内のWikiへのリンクが貼られます。投稿ごとに最大1回までです。
例えば、次のような投稿がある場合:
私はSoldering Iron Maintenanceページを読んでいたところ、そこに書かれている内容に問題があることに気づきました…
「Soldering Iron Maintenance」という単語は、sitemapに関連付けられたページにリンクされます。
設定
インストール後、多くの設定が可能であり、インポート中のsitemapや一致するフレーズのリストおよびURLを表示する専用のカタログページもあります。
インポート予定のsitemap XMLファイルを見つけ、Discourseインスタンスから制限なくそのサーバーに接続できることを確認します。共通のサイトプレフィックスまたはサフィックスを特定し、不要な部分で「Sitemap autolink title suffixes(sitemap自動リンクタイトルサフィックス)」を設定します。例えば、ページタイトルが「- Discourse Meta」で終わるものを一致させたくない場合は、それを設定します。また、サイト上で頻繁に出現する特定の単語をスキップするように指定することもできます。ほとんどの設定は有効にする必要はありませんが、タイミングや遅延、sitemapのチェックに充てる時間、各URL間の遅延時間を調整できます。
URLがインポートされると、lastmod(最終更新日)の時間が保存され、lastmodフィールドが変更されない限り再チェックは行われません。一致するフレーズを手動で割り当てたり削除したりでき、単一単語の一致については自動的に確認を求められます。
設定項目
リンク設定
| 設定 | デフォルト | 目的 |
|---|---|---|
sitemap_autolink_enabled |
off | マスタースイッチ。 |
sitemap_autolink_max_links_per_destination_per_post |
1 | 投稿ごとに各宛先にリンクできる回数(最初の言及が優先)。0 = 無制限。 |
sitemap_autolink_max_links_per_post |
0 | 投稿ごとの自動リンクの総数。0 = 無制限。 |
sitemap_autolink_skip_quotes |
on | 引用部分内ではリンクしない。 |
sitemap_autolink_include_private_messages |
off | プライベートメッセージでもリンクする。 |
sitemap_autolink_excluded_categories |
– | これらのカテゴリ(サブカテゴリを含む)ではリンクしない。 |
sitemap_autolink_enabled_types |
– (すべて) | リンクを許可するコンテンツの種類を制限。 |
sitemap_autolink_type_priority |
manual |
衝突時の優先順位、強い順に並べる。リストされていない種類は最後にランクされる。 |
カタログとフレーズ
| 設定 | デフォルト | 目的 |
|---|---|---|
sitemap_autolink_sources |
– | 取り込むsitemap(1エントリあたり1つ):https://example.com/sitemap.xml,content_type。インデックスは自動的に拡張される。 |
sitemap_autolink_manual_mappings |
– | 手動のphrase,url,typeルール。相対URLはフォーラムに対して解決される。 |
sitemap_autolink_min_phrase_length |
5 | より短い生成フレーズはレビューに送られる。 |
sitemap_autolink_min_phrase_words |
2 | 単語数が少ない生成フレーズはレビューに送られる(文字+数字のモデル番号トークンは除外)。 |
sitemap_autolink_generate_plurals |
on | 単純な複数形バリエーションも生成する。 |
sitemap_autolink_title_suffixes |
– | 取得したタイトルの末尾から削除する定型文。エントリに \ を含めることはできない。 |
sitemap_autolink_excluded_url_patterns |
– | 一致するsitemap URLは取り込まない(部分一致または * ワイルドカード、例:*/checkout*)。 |
sitemap_autolink_excluded_terms |
– | 絶対に自動生成してはいけない正確なフレーズ。手動エイリアスが優先される。 |
同期
| 設定 | デフォルト | 目的 |
|---|---|---|
sitemap_autolink_sync_enabled |
off | 毎日のsitemap→カタログジョブを実行する。 |
sitemap_autolink_page_fetch_delay_ms |
500 | タイトル取得間のマナーポーズ(新規/変更されたURLのみ)。 |
sitemap_autolink_sync_time_budget_minutes |
30 | 1回の実行あたりの最大分。実行は「部分的(Partial)」として正常に終了し、次回の実行で残りの作業が再開される。 |
sitemap_autolink_fetch_host_rewrites |
– | 内部ターゲットを介して公開ホストを取得する(下記参照)。 |
リベイク
| 設定 | デフォルト | 目的 |
|---|---|---|
sitemap_autolink_auto_rebake_on_changes |
off | 同期後、フレーズの変更の影響を受ける可能性のある投稿をリベイクする — 同期ごとに1つのバッチ処理バックグラウンドジョブ。 |
sitemap_autolink_auto_rebake_max_phrases |
50 | 1回の同期でこの数より多くのフレーズが変更された場合、自動リベイクを完全にスキップする(初期インポートでフォーラム全体のほぼ全てのリベイクがトリガーされないようにするため)。 |
sitemap_autolink_auto_rebake_max_posts |
500 | 1回の同期のリベイク波が影響を与える投稿の最大数。 |
sitemap_autolink_max_rebakes_per_job_run |
200 | ジョブ実行あたりのバッチサイズ。大規模な波は1分間隔のフォローアップジョブで継続される。 |
分析
| 設定 | デフォルト | 目的 |
|---|---|---|
sitemap_autolink_analytics_enabled |
on | 生成されたリンクがクリックされたとき、gtagまたはdataLayerを介してGoogle Analyticsにinternal_auto_link_clickイベントを送信。どちらも存在しない場合は何もしない。 |
私はこれをメインウェブサイトとDiscourseフォーラムをリンクするのに使用しています。つまり、Wikiやショップのトピックが自動的にリンクを生成できます。
誰かが特定の製品について話している場合、あなたが割り当てたキーワードや製品名自体を言及する限り、リンクはベイク時に自動的に追加されます。
同様に、Wikiサイトを持っている場合、Wikiのページタイトルを取得して自動的にリンクできます。例えば、歴史サイトを持っていて、誰かが「1812年の戦争」について言及し、それが同名のWiki記事と一致する場合、自動的にリンクされます。
楽しんでください!
