107
这个用户还没有留下简介。
第 1 条附言
一个面向 Rhex 的内容治理插件,用于统一控制 Markdown 内容中的裸域名自动链接、显式外链保留策略,以及渲染后的外链兜底处理。
本插件主要解决以下问题:
abc.com、www.example.com、https://example.com 时,被宿主自动识别并渲染为可点击外链插件当前采用 结果治理优先 的实现方式:
<a> 进行一次兜底净化当前版本不改宿主编辑器默认行为,因此重点是“保存结果”和“最终渲染结果”的治理,而不是完全接管输入时的编辑器体验。
插件已接入以下内容场景:
对应 Hook 声明见:
post.content.valuecomment.content.valuemessage.body.valuereport.reasonDetail.valueuser.profile.bio.valueuser.profile.introduction.valuepost.content.render插件清单见 addon.json。
以下形式会被视为裸域名候选:
abc.comwww.example.comhttps://example.comexample.com/path192.168.1.10localhost若命中治理规则,插件会在保存前对其做“打断处理”,从而降低被宿主自动 linkify 的概率。
例如:
md[官网](https://example.com)
这类链接不会无条件保留,而是仍会经过策略判断:
所以你如果使用 Markdown 工具栏插入的是站外显式链接,在当前配置下也可能被降级为纯文本。
帖子正文在渲染成 HTML 后,插件会再次检查输出中的 <a>:
这意味着即使前面的保存前治理有漏网之鱼,最终显示层仍会做一次收口。
在默认逻辑下,以下链接更容易被保留:
例如:
/post/123https://你的站点域名/post/123只要命中 siteDomains,会被视为站内链接。
如果配置了白名单,仅命中白名单的站外链接才会被保留。
例如:
txtgithub.com *.microsoft.com
显式 Markdown 链接需要同时满足:
allowExplicitMarkdownLinks = true以下配置最容易导致“Markdown 编辑器工具栏插入的链接也失效”:
即:
allowInternalLinksOnly = true此时所有站外显式链接都会被禁用。
例如白名单只有:
txtgithub.com *.microsoft.com
则下列链接会被禁用:
md[Google](https://google.com)
黑名单优先级更高,命中后直接降级。
即:
allowExplicitMarkdownLinks = false此时显式 Markdown 外链也不会保留。
当前后台支持以下主要配置:
enabled:插件总开关disableAutoLinkify:禁用裸域名自动链接disableProtocolLinkify:禁用协议裸链接自动链接allowExplicitMarkdownLinks:允许显式 Markdown 外链allowInternalLinksOnly:仅允许站内链接可点击blockedLinkRenderMode:被禁用链接的显示方式siteDomains:站内域名列表whitelistDomains:外链白名单blacklistDomains:外链黑名单后台页面文件见:
后台规则当前支持:
txtgithub.com www.example.com *.microsoft.com localhost 127.0.0.1
txthttps://github.com example.com/path example.com:443 foo*bar.com *.127.0.0.1
localhost、IPv4*.example.com当前版本已增强:
www. 归一化localhost / 本地回环地址识别com.cn、co.uk)这部分核心逻辑位于:
当前版本不修改宿主默认编辑器,因此:
目前最强的 HTML 渲染兜底是帖子正文:
post.content.render其他场景更多依赖保存前规则处理。
Markdown 工具栏插入的显式外链,仍然会被统一外链治理策略审查。
如果策略不允许,该链接会被降级。
这版插件更适合:
如果你的目标是:
那么当前策略会偏严格,需要后续再做更细的显式链接放行策略。
txtmarkdown-link-governor/ ├─ addon.json ├─ README.md ├─ dist/ │ └─ server.mjs └─ assets/ ├─ markdown-link-governor-admin.js ├─ markdown-link-governor-admin.model.js ├─ markdown-link-governor-admin.controller.js └─ markdown-link-governor-admin.view.js
abc.comhttps://example.commd[官网](https://example.com)
当前版本:1.0.0
这是一个以 不改宿主代码前提下的最强可用版 为目标实现的外链治理插件。
markdown-link-governor.zip