我的目标是,当用户包含指向特定 URL(域名 + 基本路径)的链接时,我能够自动以特殊格式显示该链接。
我可以在渲染后的帖子中使用 decorateCookedElement() 来实现这一点,但我似乎找不到如何挂钩到富文本编辑器显示以自定义链接在其中的外观。
是否有任何 api 功能可以在主题组件的 apiInitializer 中使用来自定义富文本编辑器的渲染?
我曾试图避免构建一个必须在服务器本身运行的插件……而且我还没有找到更简单的解决方案,但我愿意接受其他想法!(例如,我不想完全禁用此域的 OneBoxing,因为非 SPA 营销页面具有不错的 OpenGraph 标签可供 OneBoxing)
历史方法:decorateCookedElement()
我过去曾为 Bunny.net 提供的视频做过类似的事情(参考帖子),我让标准渲染发生(OneBox 视频),然后使用 decorateCookedElement() 来对来自 Bunny.net 流式 URL 的 OneBox 视频应用一些修复(theme-initializer.gjs#L8-L15),例如宽高比、全屏播放等。
对于 Bunny 视频,这效果很好,因为在编辑器中,它总是显示灰显的 OneBox 视频占位符(灰色框带有白色视频图标),因此内容不需要进行任何调整。
富文本问题
使用 decorateCookedElement() 来实现我当前的目标(能够替换指向特定 URL(域名 + 基本路径)的链接)所面临的挑战是,当用户在富文本编辑器中将该链接放在单独一行上然后按 Enter 键时,编辑器会将其转换为 OneBox,而我一直无法弄清楚是否有办法挂钩到该渲染流程或以其他方式自定义它。
此特定链接指向单个页面应用程序(静态托管)中的一项功能,因此它不提供特别有意义的 Open Graph / 元标签集,这使得 OneBox 变得不直观,而且我注意到社区成员将他们的导入链接包装在代码大括号和其他解决方法中。
因此,我想,如果我能自定义此特定链接在富文本编辑器中的渲染方式,用户将看到更直观的格式并接受它。
