在旧版本上测试非常困难。此功能旨在与最新的 tests-passed 分支兼容。它很可能 simply 不兼容较旧版本的 Discourse 实例。
您在控制台中看到 JavaScript 错误了吗?这可能是导致渲染不完整的原因。这并非一个样式组件 ![]()
偶尔,核心代码库会发生重大变更,导致所需的覆盖逻辑必须调整,从而不再支持旧代码库。不过,我的 PR 中包含了许多非常谨慎的覆盖实现,旨在对核心代码的变更具有鲁棒性。但即便如此,能做的也有限。
在旧版本上测试非常困难。此功能旨在与最新的 tests-passed 分支兼容。它很可能 simply 不兼容较旧版本的 Discourse 实例。
您在控制台中看到 JavaScript 错误了吗?这可能是导致渲染不完整的原因。这并非一个样式组件 ![]()
偶尔,核心代码库会发生重大变更,导致所需的覆盖逻辑必须调整,从而不再支持旧代码库。不过,我的 PR 中包含了许多非常谨慎的覆盖实现,旨在对核心代码的变更具有鲁棒性。但即便如此,能做的也有限。
是的,这是一个非常基本的兼容性问题。装饰器现在需要从新的位置导入,因为旧的导入位置已被弃用。您的旧安装中很可能不存在该位置。
建议您等待 Discourse 更新到更现代的版本。
太棒了!别担心,感谢 @merefield 的快速回复 ![]()
@Ryan_NR - 在此期间,您可以尝试原始版本,它可能不需要这些相同的依赖项?
我相信主题分支功能是有效的,因此你可以在同一个主题下维护三个分支(tests-passed、beta 和 stable)。
不过,这无法覆盖所有用户,而且维护这些分支并确保它们正常运行需要大量额外工作,尤其是当维护者是志愿者时。
感谢 @merefield。我原本担心分支可能会引起混淆,所以创建了一个新仓库——只是想确认这是否能消除 @Ryan_NR 的版本依赖问题?
在这种情况下,您的解决方案更简单。我只是在策略性地表达我的想法 ![]()
我试试看!谢谢 @Rhidian ![]()
明白了……这完全行得通!
非常感谢你们两位!
![]()
不客气,很高兴能帮上忙 ![]()
我已更新了说明,以防其他人遇到同样的问题。
我刚刚意识到,这段文字不仅出现在创建新主题时,在回复帖子时也会显示。至少在我的使用场景中,这样效果不太好。有没有可能让它像现在的主题模板一样,仅在创建新主题时显示?
观察得很仔细。原始版本的行为是正确的——它仅在新主题中显示,与主题模板的方式相同。
你可以在这里下载原始版本。
原始版本仓库:https://github.com/naidihr/discourse-topic-template-placeholders_original
这只是一个简单的 jQuery 切换,用于将模板文本移动到占位符(如果它与模板文本匹配)。
@merefield 你能再检查一下这个问题吗?
好的。所以你是希望这仅在首次发帖时发生吗?是否有任何情况下你希望它在后续发帖时也发生?
谢谢罗伯特。不,就像描述的那样——和原始功能一样工作。只有当自定义模板文本与编辑器中的文本匹配时,才应将其转换为占位符文本进行显示。
这就是为什么我最初要使用 JQuery 变通方法,因为我只能在渲染完成后才能进行该检查?
已解决并添加了一个默认值为 TRUE 的设置,将其限制为仅适用于首帖。
这实际上增加了一个新功能:如果您愿意,主题模板(或自定义占位符文本)现在可以应用于所有帖子 ![]()
我已在开发和生产环境中进行了相当全面的测试,但欢迎您自行检查。
谢谢,Robert。我已将其合并以进行测试。
它修复了所描述的问题,但引入了一个新问题。如果您打开一个草稿并重新打开它,草稿文本将会丢失。请您检查一下这个问题?
正确的行为应该是:只有当编辑器中显示的文本与模板文本匹配时,才进行转换。
我目前还无法复现……您能否提供详细的复现步骤(STR),包括您遇到此问题时具体的设置?我的草稿回复和草稿新主题都能正常恢复。
如果访问使用自定义模板的主题,会出现以下情况:我开始撰写草稿,然后离开网站。再次回到网站后,点击右上角的头像图标和用户名,再选择“草稿”。
接着,我点击已保存草稿的“继续编辑”。
但文本并未出现,而是显示了占位符文本。
Discourse 4.4.3
与 @merefield 合作后,我们认为现已修复了此问题及另一个问题。
@davidkingham - 请您确认一下好吗?