DiscoTOC - 自动目录

我使用 DiscoTOC 已经很久了,在最近更新之前,它对中文标题一直工作得很好。

如果帖子中有多个中文标题(包括没有 ASCII 字符的标题),当点击右侧的导航项时,它只会导航到同一级别的第一个标题。我相信这是因为 DiscoTOC 生成的导航项具有相同的 id(因为所有标题都是中文的)。因此,查询选择器将只找到第一个标题。

作为一种尝试,我 fork 了 GitHub 仓库,并进行了一个小提交,地址是:

它似乎在我的网站上运行正常。如果你们团队觉得可以,我可以提交一个 pull request,或者这个 bug 需要以其他方式修复。

8 个赞

感谢 @topological :slight_smile: 我已将您的 Bug 报告移至 DisoTOC 主题本身,希望能引起相关人员的注意。:+1:

4 个赞

感谢您的报告和拉取请求。正如拉取请求中所述,我已经实现了一个不同的修复程序,它不依赖于标题作为子项的锚点。

(我很乐意合并您拉取请求中的翻译。)

4 个赞

首先,这是一个非常有用的主题组件,适用于长帖子!

但是,这个主题组件在移动设备(至少在 iOS 上)上存在一个问题。当我打开一个大的目录时,在移动设备上滚动目录不像在桌面上那样工作。


列表包含标题 A-H,但我无法滚动浏览它

列表似乎是可滚动的,但 touchstart 事件阻止了列表的滚动。禁用 d-toc 元素的 touch start 事件监听器似乎可以解决这个问题。


我看不到我们论坛上主题组件的版本,也无法在本地安装上进行测试(因为我无法在手机上加载它)。所以,如果有一个我不知道的修复方法,或者有什么我应该做的,请告诉我。

提前感谢 :slight_smile:

3 个赞

感谢您的报告,截图在追踪问题方面特别有帮助。这是源自核心的一个问题,DiscoTOC 移动 UI 的父元素之一禁用了其子元素的滚动,这影响了 DiscoTOC。该问题应通过 FIX: Limit pan event handler to fix scrolling in TOC by pmusaraj · Pull Request #16673 · discourse/discourse · GitHub 修复(可能将在下周初合并)。

4 个赞

这还有效吗?

@pmusaraj 我猜有可能是我没有正确设置,但我已经安装了主题,并且我在一个主题上设置的目录没有出现在 discourse-docs 版本上,但它出现在主主题中。

3 个赞

嗯,我同意,目录似乎又没有出现在 discourse-docs 页面上了。例如:

https://meta.discourse.org/docs?ascending=false&category=53&tags=themes&topic=91966

4 个赞

移动端滚动问题修复已合并。我还为 discourse 文档视图添加了一个兼容性修复,您可以在此处元站点上看到它。

6 个赞

如果您希望目录始终完全展开,请尝试将此 CSS 添加到您的主题中

#d-toc li.d-toc-item > ul {
  max-height: 500em !important;
  overflow: visible !important;
  opacity: 1 !important;
}
5 个赞

这也已确认已修复 :+1:

3 个赞

5 个帖子被拆分到一个新主题:当 ToC 存在时,我无法访问主题扳手?

下次更新 DiscoTOC 时,您可能会注意到我们添加了一个按钮,用于在主题时间线和目录之间切换……如果您遇到任何问题或对这项新功能有任何反馈,请告诉我们!

11 个赞

我太喜欢了!:heart_eyes_cat:

我刚刷新了一下浏览器才在这个帖子里看到它,因为它太闪亮、太新了!:sparkling_heart:

5 个赞

我对这个主题进行了一个小的更新,它会忽略 staff 账户的信任级别要求,这更接近 Discourse 的设置行为。

6 个赞

这个组件在第一篇帖子中效果很好,谢谢你做的这么好……

想知道是否有可能为下面的帖子也自动生成目录……这似乎是在尝试使用一篇帖子和下面的评论来记录某些内容时的一种常见情况……

也就是说,当浏览到主帖或下面的回复时,如果帖子/回复定义了标题/副标题,它会自动显示其目录,否则显示默认的时间线……

我没有读完这个长帖,快速搜索了一下,似乎没有讨论过……

谢谢……

2 个赞
4 个赞

另一个问题
不知何故,我没有看到切换内容和目录的按钮
使用官方的 disco-toc 或 @Moin 的分支版本也是如此……
有设置吗?好像没有……嗯……
我的系统是 discourse 3.2.1
有人能给点提示吗?谢谢……

1 个赞

您需要更新 Discourse,该功能需要一些 Discourse 更新。

3 个赞

嗯,3.2.1 是当前版本,对吧?

更新到测试版?

3 个赞

是的,主版本发布周期要慢得多,因此您可能要等上几个月才能获得新功能和安全更新,否则——默认情况下,我们建议您及时了解我们的 Beta 版本。更多信息请参见:Understanding Discourse release channels

7 个赞