# DiscoTOC - 自动生成目录

**URL:** <https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143>\
**Category:** Theme component\
**Tags:** official, disco-toc\
**Created:** [2019年三月9日 05:36 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143 "2019-03-09T05:36:22Z")\
**Posts on this page:** 9\
**Page:** 8

<div class="post-metadata">

**Author:** ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)\
**Post date:** [2025年十二月11日 03:29 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/482 "2025-12-11T03:29:00Z")

</div>

您好，您指的是内容吗？您可以点击主题时间线上的按钮：

![IMG_0080](https://global.discourse-cdn.com/meta/original/4X/7/a/e/7ae151ec091e2eeca53125b46b842db5cc58bb7e.jpeg)

---

<div class="post-metadata">

**Author:** ![pHneutre](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/phneutre/32/326831_2.png) [@pHneutre](https://meta.discourse.org/u/pHneutre)\
**Post date:** [2025年十二月17日 15:06 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/483 "2025-12-17T15:06:35Z")

</div>

您好，如果点击目录（TOC）中的项目时，页面的 URL 能够像点击标题左侧的锚点链接一样，修改为匹配的标题锚点，那就太棒了。  
这样一来，即使对方不知道左侧的锚点链接，也可以将特定的主题分享给他们。  
这个功能是否已被考虑过？

---

<div class="post-metadata">

**Author:** ![newbit1337](https://avatars.discourse-cdn.com/v4/letter/n/ecc23a/32.png) [@newbit1337](https://meta.discourse.org/u/newbit1337)\
**Post date:** [2026年二月4日 09:59 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/484 "2026-02-04T09:59:25Z")

</div>

您好，有个快速问题：  
嵌套级别是否限制为 5 级，还是我做错了什么？

 ![TOC_levels1](https://global.discourse-cdn.com/meta/original/4X/8/e/b/8ebebc03b023fc8a09bc7e6e8c13301d4b099a23.jpeg)

 ![TOC_levels2](https://global.discourse-cdn.com/meta/original/4X/2/4/2/242017af01aa9e724134f442ced6acacdb73e4a6.jpeg)

---

<div class="post-metadata">

**Author:** ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)\
**Post date:** [2026年二月4日 10:14 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/485 "2026-02-04T10:14:03Z")

</div>

这很有趣——我刚测试了一下，可以确认目录只支持五级，而 Markdown 支持六级。我怀疑这是一个有意的决定，因为六级导航起来可能很麻烦。

 ![Screenshot 2026-02-04 at 11.12.42 AM](https://global.discourse-cdn.com/meta/original/4X/0/f/f/0ff55b07ad0407cb1418a9dd4566e9d89b35daff.png)

---

<div class="post-metadata">

**Author:** ![Hasimir](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hasimir/32/553565_2.png) [@Hasimir](https://meta.discourse.org/u/Hasimir)\
**Post date:** [2026年五月15日 09:31 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/486 "2026-05-15T09:31:15Z")

</div>

DiscoToC 和文档分类插件之间存在已知的兼容性问题吗？  
在我的普通话题中，目录功能运行完美，但在我的文档中却完全无法使用 😕

---

<div class="post-metadata">

**Author:** ![Honeyxilia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/honeyxilia/32/523830_2.png) [@Honeyxilia](https://meta.discourse.org/u/Honeyxilia)\
**Post date:** [2026年六月11日 10:06 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/487 "2026-06-11T10:06:39Z")

</div>

你好——我注意到在使用 DiscoTOC 时，话题翻译切换按钮存在一个奇怪的问题。

确实，为了在客户端语言的话题翻译和原始话题文本之间进行切换，添加了一个按钮。

以下是没有 DiscoTOC 时的基本翻译话题布局：

 ![标题为“Test Topic”的 Discourse 话题，正文包含“This is a test topic”。右侧有一个设置按钮和一个翻译按钮](https://global.discourse-cdn.com/meta/original/4X/7/2/4/724c76eccec3f2d866ef3e5b2aae45acad26781d.png)

以下是带有 DiscoTOC 侧边栏面板时的布局：

 ![标题为“Test Topic”的 Discourse 话题，正文包含“This is a test topic”以及随后的三个标题。右侧列出了话题中包含的标题列表](https://global.discourse-cdn.com/meta/original/4X/4/6/a/46accecdf0d98dddb1c8f21c2c7ce508ecc9dbef.png)

虽然错过设置按钮并非问题，因为话题底部提供了相同的功能，但翻译切换却无法以同样的方式实现……

能否考虑在启用 DiscoTOC 时也显示该按钮，因为它是一个 Discourse 主题默认按钮？

---

<div class="post-metadata">

**Author:** ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)\
**Post date:** [2026年七月27日 08:16 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/488 "2026-07-27T08:16:08Z")

</div>

> [@Discourse](#):
>
> 为了让目录中的链接正常工作，标题必须具有 id 属性。该组件会检查标题是否已有 id，如果已有，则会保留这些 id。如果你曾手动创建过目录，这会非常方便。

能否有人解释一下如何给标题添加 id 属性？我尝试了这里的方法：[Extended Syntax | Markdown Guide](https://www.markdownguide.org/extended-syntax/#heading-ids) 在标题行末尾添加 `{#custom-id}`。我也直接使用了 HTML `h1` 标签并添加了 id。但这些都行不通。

文档是否已不再准确？如果可以添加我自己的 id，那就能解决我在 [这里](https://meta.discourse.org/t/hash-anchors-are-being-stripped-from-urls-on-mobile-how-to-stop-that/408505) 遇到的问题，前提是这些 id 在各种锚点标签的情况下都能正常工作。

---

<div class="post-metadata">

**Author:** ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)\
**Post date:** [2026年七月27日 15:26 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/489 "2026-07-27T15:26:39Z")

</div>

是的，不再正确（我会将其删除），该组件现在使用锚链接而不是标题 ID……当向帖子添加标题时，Discourse 会自动创建锚链接，这些链接会被用于目录

---

<div class="post-metadata">

**Author:** ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)\
**Post date:** [2026年七月27日 15:42 UTC](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143/490 "2026-07-27T15:42:31Z")

</div>

谢谢！

我意识到这可能不严格属于目录（TOC）组件的问题，但你知道是否有办法为标题生成永久 ID 吗？自动生成的 ID 非常脆弱。即使只是在文档中添加另一个标题，也可能导致所有 ID 发生变化。

另外……使用此插件是否有办法设置与文档中标题不同的目录文本？使用场景是：当文档中的标题较长时，在目录中使用简写条目会更合适。文档插件中有一个类似的功能，在分类索引中可以使用自定义文本。不过那里的系统完全不同。

[上一頁](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143.md?page=7)
