桌面
移动终端
toc = table of contents(内容列表)
在默认情况下,当前的内容的标题将会被标记为 toc(通过 composer 按钮来完成上面的操作的),同时如果你的当前主题是被标记的话,这个也将会被转换为 toc(这个与当前标题的层次有关),所有的内容标题都会被转换为 TOC —— 这就意味着,你的 MD 文件的标题设置是必须正确的,如果你的标题设置层级有错误,那么转换的结果也会出错.。
# heading 1
## heading 2
### heading 3
#### heading 4
##### heading 5
###### heading 6
针对层级,你可以随意进行调整,但是你必须要保证层级的正确。
# heading 2
## heading 3
## heading 3
### heading 4
## heading 3
# heading 2
etc...
为了保证链接能够正常工作,所有的标题必须要有 Id 属性。
这个组件将会自动对标题的 Id 进行校验,如果标题是存在的话,那么这个组件将能够更加有效的执行。同时 Id 在你手动创建主题的时候也更加有用。
如果你的标题没有 Id 的话,这个组件将会根据标题的内容来自动创建 Id(对不需要的字符将会自动的被忽略)。
当上面的所有内容完成后,TOC 将会根据标题创建一个链接到正文的链接,如下图:
这个组件只有一个设置,就是 Toc 的图标(这个图片将会在后面的设置中使用,官方不建议对这个图标进行修改。)
这个组件需要翻译的内容也非常少,只有下面 3 个字段需要翻译。
table_of_contents: "table of contents(内容列表)"
这个将会在移动终端上打开 TOC 的时候显示
insert_table_of_contents: "Insert table of contents(插入内容列表)"
这个是在内容列表被插入到主题页面的时候来进行显示的。
topic_will_contain_a_table_of_contents: "This topic will contain a table of contents(本内容将会提供主题列表)"
这个内容将会在你对主题内容进行编辑的时候,在右侧进行预览的时候显示在预览页面上。This is the text that shows up in the composer preview to indicate that the a toc will be generated for the topic
你可能知道,在页面中我们没有办法同时显示阅读进程和 TOC 。
官方的解决方案是,如果你再阅读第一个帖子的时候,TOC 存在的话,那么页面上将只会显示 TOC,而将阅读进度组件忽略而不显示。
当你的阅读超过第一个帖子的时候,TOC 将不会进行显示,取而代之的是整个内容的阅读进度显示条。
简单来说,TOC 只针对第一个帖子有效,后续的帖子将会使用阅读进度条。
针对移动终端盒桌面应用的显示是相同的。
针对作者和官方的说法,使用这个组件目前还没有遇到任何问题。
所有的内容显示是在客户端完成的,用行话来说,就是所有的内容是在前端完成的,所以后端的数据提供没有受到任何的影响。
当你禁用这个组件以后,所有的内容将会恢复成原样。
这个组件使用的是标准的主题布局。
如果你使用的布局对对标题的使用进行了修改的话,那么这个 TOC 组件将没有办法正常工作。
例如已知的,如果使用了 Vincent theme 这个主题的情况下,这个组件是没有办法正常工作的。
针对一些非常流行的主题支持,对官方这个插件来说是下一个需要考虑的内容和反向。
官方的作者是基于 Greg Franko’s tocify.js 库进行开发的。
但是,非常不幸的是,这个库已经很长时间没有更新了,所以作者针对这个库的内容删除了很多不需要的内容和没有必要的特性和代码后把相关的特性整合到 Discourse 中了。
整个组件的大小在 ~ 4kb 左右(使用 gzip 压缩的情况)。
作者也感谢 @erlend_sh 提出了很多很好的建议和 @david 帮助完成了翻译工作。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。