自动链接站点地图

:information_source: 摘要 允许您导入站点地图,以类似于“监控词”(Watched Words)的方式,将页面标题自动映射到论坛链接。
:hammer_and_wrench: 代码库链接 GitHub - multidimension-al/discourse-sitemap-autolink: Turn sitemaps into automatic links in discourse. · GitHub
:open_book: 安装指南 如何在 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 次。

例如,如果我有一篇帖子写道:

我正在阅读 Soldering Iron Maintenance 页面,并注意到其中说的一些问题……

短语“Soldering Iron Maintenance”将链接到站点地图中与之关联的页面。

配置

安装后,您可以配置许多设置,还有一个专用的目录页面,显示正在导入的站点地图以及将匹配的短语列表及其 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(子字符串或 * 通配符,例如 */checkout*)。
sitemap_autolink_excluded_terms 绝不应自动生成的确切短语。手动别名可覆盖。

同步

设置项 默认值 用途
sitemap_autolink_sync_enabled 关闭 运行每日站点地图→目录任务。
sitemap_autolink_page_fetch_delay_ms 500 标题获取之间的礼貌暂停(仅限新/更改的 URL)。
sitemap_autolink_sync_time_budget_minutes 30 每次运行的最大分钟数;运行将作为部分(Partial)干净停止,下次运行将恢复剩余工作。
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 开启 当生成的链接被点击时,通过 gtagdataLayer 向 Google Analytics 发送 internal_auto_link_click 事件。如果两者都不存在,则无操作。

我使用此插件来帮助链接我的主网站和我的 Discourse 论坛。因此,我们 Wiki 或商店中的主题可以自动生成链接。

如果有人在谈论某个特定产品,只要他们提到您分配的关键词或产品名称本身,链接就会在烘焙时自动添加。

同样,如果您有一个 Wiki 网站,您可以获取 Wiki 的页面标题并自动链接它们。假设您有一个历史网站,有人提到“1812年战争”,而这恰好与同名 Wiki 文章相符,它将自动链接。

希望您喜欢!