| Краткое описание | Позволяет импортировать карту сайта (sitemap), чтобы автоматически сопоставлять заголовки страниц со ссылками на форуме, аналогично работе функции «Следимые слова» (Watched Words). | |
| Ссылка на репозиторий | GitHub - multidimension-al/discourse-sitemap-autolink: Turn sitemaps into automatic links in discourse. · GitHub | |
| Руководство по установке | Как устанавливать плагины в Discourse |
Возможности
Это альтернатива использованию функции «Следимые слова». Она позволяет взять карту сайта вашего внешнего веб-сайта и импортировать её, автоматически назначить слова для соответствия, а затем создать ссылки во время следующей пересборки (rebake). Очень похоже на работу функции «Следимые слова», но добавляет шаг обработки карт сайта и извлечения ключевых слов.
Хорошо подходит для технических форумов с отдельным разделом Wiki, например, или для форумов, связанных с новостными порталами или интернет-магазинами.
Вы берете карту сайта своей Wiki:
<?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>
Плагин загрузит карту сайта, получит заголовок со страницы, а затем сгенерирует слова для соответствия. Эти слова будут автоматически превращены в ссылки при следующей пересборке любых сообщений, содержащих их, либо плагин сам найдет эти сообщения и автоматически пересоберет только их.
Полученный <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 раза на сообщение.
Итак, если у меня есть сообщение, в котором сказано:
Я читал страницу о обслуживании паяльника и заметил проблему в том, что там говорилось…
Слова «Обслуживание паяльника» будут связаны со страницей, связанной с ними в карте сайта.
Настройка
После установки существует множество настроек, которые можно конфигурировать, а также отдельная страница «Каталог», которая показывает ваши импортируемые карты сайта и список фраз, которые будут соответствовать, вместе с URL.
Найдите XML-файл карты сайта, который вы планируете импортировать, и убедитесь, что вы можете подключиться к этому серверу без ограничений с вашей установки Discourse. Найдите общий префикс или суффикс сайта и установите суффиксы заголовков карты сайта для автолинков той частью поля, которую вы не хотите. Примером может быть «- Discourse Meta», если вы не хотите, чтобы это совпадало с заголовком страницы. Вы также можете указать, чтобы пропустить определенные общие слова, которые часто встречаются на вашем сайте. Большинство настроек не нужно включать, но они позволяют вам настроить время и задержку, сколько времени разрешено тратить на проверку карты сайта и сколько времени задерживать между каждым URL.
После того, как URL был импортирован, он сохраняет время lastmod и не проверяет снова, пока поле lastmod не изменится. Вы можете вручную назначать или удалять соответствующие фразы, и он автоматически спросит вас о совпадениях из одного слова.
Настройки
Связывание
| Настройка | По умолчанию | Назначение |
|---|---|---|
sitemap_autolink_enabled |
выкл | Главный переключатель. |
sitemap_autolink_max_links_per_destination_per_post |
1 | Сколько раз каждое назначение может быть связано в сообщении (побеждают первые упоминания). 0 = без ограничений. |
sitemap_autolink_max_links_per_post |
0 | Общее количество автоматических ссылок на сообщение. 0 = без ограничений. |
sitemap_autolink_skip_quotes |
вкл | Никогда не связывать внутри цитируемого материала. |
sitemap_autolink_include_private_messages |
выкл | Также связывать в личных сообщениях. |
sitemap_autolink_excluded_categories |
– | Никогда не связывать в этих категориях (включая подкатегории). |
sitemap_autolink_enabled_types |
– (все) | Ограничить типы контента, которые могут связываться. |
sitemap_autolink_type_priority |
manual |
Порядок приоритета при коллизиях, от самого сильного; неперечисленные типы имеют последний ранг. |
Каталог и фразы
| Настройка | По умолчанию | Назначение |
|---|---|---|
sitemap_autolink_sources |
– | Карты сайтов для обработки, одна на запись: 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 |
вкл | Также генерировать простые множественные варианты. |
sitemap_autolink_title_suffixes |
– | Шаблоны, удаляемые с конца полученных заголовков. Запись не может содержать ` |
sitemap_autolink_excluded_url_patterns |
– | Никогда не обрабатывать соответствующие URL карты сайта (подстрока или * как wildcard, например */checkout*). |
sitemap_autolink_excluded_terms |
– | Точные фразы, которые никогда не должны быть автоматически сгенерированы. Ручные псевдонимы переопределяют. |
Синхронизация
| Настройка | По умолчанию | Назначение |
|---|---|---|
sitemap_autolink_sync_enabled |
выкл | Запускать ежедневную задачу sitemap→каталог. |
sitemap_autolink_page_fetch_delay_ms |
500 | Вежливая пауза между получением заголовков (только новые/измененные URL). |
sitemap_autolink_sync_time_budget_minutes |
30 | Максимальное количество минут на запуск; запуск останавливается чисто как Частичный, и следующий запуск возобновляет оставшуюся работу. |
sitemap_autolink_fetch_host_rewrites |
– | Получать публичный хост через внутреннюю цель (см. ниже). |
Пересборка
| Настройка | По умолчанию | Назначение |
|---|---|---|
sitemap_autolink_auto_rebake_on_changes |
выкл | После синхронизации пересобрать сообщения, вероятно, затронутые изменениями фраз — одна пакетная фоновая задача на синхронизацию. |
sitemap_autolink_auto_rebake_max_phrases |
50 | Если одна синхронизация изменяет больше фраз, чем это, полностью пропустить автоматическую пересборку (чтобы первоначальный импорт никогда не запускал пересборку почти всего форума). |
sitemap_autolink_auto_rebake_max_posts |
500 | Максимальное количество сообщений, которые может затронуть волна пересборки одной синхронизации. |
sitemap_autolink_max_rebakes_per_job_run |
200 | Размер пакета на запуск задачи; более крупные волны продолжаются в последующих задачах с интервалом в минуту. |
Аналитика
| Настройка | По умолчанию | Назначение |
|---|---|---|
sitemap_autolink_analytics_enabled |
вкл | Отправлять события internal_auto_link_click в Google Analytics через gtag или dataLayer, когда на сгенерированные ссылки нажимают. Не делает ничего, если ни одного из них нет. |
Я использую это, чтобы помочь связать мой основной веб-сайт с моим форумом Discourse. Таким образом, тема в нашей Wiki или Магазине может автоматически генерировать ссылку.
Если кто-то говорит о определенном продукте, пока они упоминают ключевое слово, которое вы назначили, или само название продукта, ссылка будет автоматически добавлена во время сборки.
Аналогично, если у вас есть сайт Wiki, вы можете взять заголовки страниц Wiki и автоматически связать их. Допустим, у вас есть сайт истории, и кто-то упоминает «Войну 1812 года», что совпадает со статьей Wiki с тем же названием, она будет автоматически связана.
Надеемся, вам понравится!
