如何/在哪里自定义 Markdown 解析器

我正在准备一个使用 SSO 的 Discourse 实例,对我们来说,支持现有用户名(这些用户名在任意位置都包含下划线和连字符)非常重要。我已经成功更新了 Discourse 代码中的正则表达式以实现这一功能,包括让作曲器中的用户名自动补全功能也能很好地配合使用。

然而,我在不熟悉的 Markdown 解析器方面遇到了问题。具体来说,当 @提及 的用户名在开头和结尾都包含下划线时,根据 Markdown 规范,它会被渲染为斜体。因此,目前像 @_username_ 这样的帖子会被渲染为 @username(而不是可点击的链接)。

有人能指点我从哪里开始着手自定义吗?我是 Discourse 的新手,任何帮助都非常感激。提前感谢!

这将是_精英级别_的难度。如果我是你,我会放弃这个想法,接受用户名的小幅修改。这是我作为在此领域拥有 8 年以上经验的专业人士给出的建议。

感谢您提醒此事。这确实超出了我的能力范围。

我正在考虑聘请具备相关技能的人来调查这个问题。如果最终完成,假设一切正常且通过所有测试,您是否愿意将其纳入核心代码?或者,Discourse 是否永远不会在用户名中支持下划线或连字符?我只是想确认这应该是一个补丁(PR)还是一个插件。

不,我不会考虑这样做。

我同意杰夫的观点,强烈建议你中止这项任务。

在 Markdown 引擎中调整规则的优先级很可能会带来严重的副作用。