在 DokuWiki 中,您可以通过在页面中添加特殊语法来控制目录(TOC)是否显示。有两种方法可以实现这一点:
1. 使用 ~~NOTOC~~
语法
如果您想在特定页面中禁用目录,可以在页面的任何位置添加 ~~NOTOC~~
标记。这会将该页面的 toc
元数据标记设置为 false
,从而阻止目录的显示。
2. 通过修改页面元数据
DokuWiki 的渲染器系统中有一个控制 TOC 显示的标志。在 Doku_Renderer
类中,有一个 info
数组,其中包含 toc
属性,默认值为 true
。 renderer.php:32-36
当解析器处理页面内容时,如果遇到 ~~NOTOC~~
标记,它会将 info['toc']
设置为 false
,这会阻止目录的生成。
目录显示的条件
目录只有在满足以下条件时才会显示:
- 页面中没有
~~NOTOC~~
标记(即info['toc']
为true
) - 页面中的标题数量达到配置中设定的最小数量(
$conf['tocminheads']
)
这在 document_end()
方法中可以看到: xhtml.php:180-186
实际应用
当页面被渲染时,系统会检查这些条件,并决定是否生成目录。在 tpl_content()
函数中,会调用 tpl_toc()
函数来显示目录,但只有在上述条件满足时才会实际显示。 template.php:150-158
Notes
~~NOTOC~~
是控制目录显示的标准方法,它可以放在页面的任何位置。- 目录的显示还受全局配置
$conf['tocminheads']
的影响,该配置决定了显示目录所需的最小标题数量。 - 在中文环境下,目录在界面中显示为"目录表",如
inc/lang/zh-tw/lang.php
中所示。 lang.php:206