嘿!我正在运行一个托管在 Discourse 上的实例(商业版,非企业版),想在帖子中嵌入一个 Runkit 小部件。你知道这是否可行吗?谢谢!
从技术上讲,通过一个用于装饰帖子的主题组件可以实现这一功能。您可以为嵌入内容定义一个 [wrap] 区块,并在帖子装饰加载时引入相关库,然后执行嵌入操作。
不过,我强烈建议您在此方面保持谨慎:
- 您不希望使内容安全策略(CSP)失效,因此需要对此进行充分考虑。
- 您不希望因加载大型动态 JavaScript 资源包而导致 Discourse 运行变慢。
- 允许 Runkit 在您的 Discourse 实例上运行 JavaScript,意味着您对其投入了极大的信任。
我估计开发此类功能大约需要 1 到 2 个工作日。如果您有预算,或许可以在 Marketplace 频道中发起一个话题?主题组件在我们的企业版套餐环境中可以正常安装使用。
得益于 oEmbed 标准,您只需将 https://runkit.com/ 添加到设置中的 allowed iframes 即可轻松搞定。
只需将 Runkit 链接单独放在一行,Discourse 便会自动将其转换为嵌入内容:
https://runkit.com/falco/5e13a3b7f5d2e2001a5741d2
将变为
https://runkit.com/falco/5e13a3b7f5d2e2001a5741d2
不过,当嵌入内容过长时,显示效果会变得不太理想,因此确实可能需要一个主题组件来优化嵌入内容的样式并支持滚动。