目录
用法
像平常一样创建Markdown内容并使用适当的标题。这是一个示例内容:
<!-- 这里是你的前置配置 -->
## 简介
有一天早上,当格雷戈尔·桑萨从烦躁的梦中醒来,他发现自己在床上变成了一只可怕的虫子。
## 我的标题
他仰卧着的时候,如果他稍微抬起头来,他可以看到他的褐色腹部,腹部略微隆起并被弧线分成多块。床单几乎无法盖住它,似乎随时准备滑下来。
### 我的副标题
桌子上摊开一些纺织品样品-桑莎是一名推销员-并且上面有一幅照片,是他最近从一本插图杂志上剪下来的,并且放在一个漂亮的镀金框架中。画上坐着一位戴着毛皮帽和毛皮围巾的女士,她挺直身体抬起了一个重重的毛皮手套,手套覆盖了她的整个下臂。然后格雷戈尔转过身来,朝窗外望去,天气阴沉。滴落声……
Hugo将从## 简介
,## 我的标题
和### 我的副标题
中提取这些Markdown,并将其作为目录存储在页面变量.TableOfContents
中。
内置的.TableOfContents
变量输出一个具有子<ul>
的<nav id="TableOfContents">
元素,子<li>
元素以适当的HTML标题开始。可以通过查看 可用的设置 来配置要在目录中包含的标题级别。
模板示例:基本的目录
以下是一个非常基本的 单页模板 示例:
layout/_default/single.html
{{ define "main" }}
<main>
<article>
<header>
<h1>{{ .Title }}</h1>
</header>
{{ .Content }}
</article>
<aside>
{{ .TableOfContents }}
</aside>
</main>
{{ end }}
模板示例:目录局部模板
以下是一个[局部模板],它对你的目录进行了更多的页面级别控制,假设你在内容的 前置配置 中使用了一个 toc
字段,除非显式地设置为 false
,否则会为.WordCount
大于400的任何页面添加一个目录(请参阅 页面变量)。此示例还演示了如何在模板中使用 条件语句:
layouts/partials/toc.html
{{ if and (gt .WordCount 400 ) (.Params.toc) }}
<aside>
<header>
<h2>{{ .Title }}</h2>
</header>
{{ .TableOfContents }}
</aside>
{{ end }}
与AsciiDoc一起使用
Hugo也支持使用AsciiDoc的内容格式进行目录。
在内容文件的头部,指定AsciiDoc TOC指令以确保生成目录。Hugo将使用这个生成的目录来以与Markdown相同的方式填充页面变量.TableOfContents
。以下是示例:
// 这里是你的前置配置
:toc:
:toclevels: 4
== 简介
有一天早上,当格雷戈尔·桑萨从烦躁的梦中醒来,他发现自己在床上变成了一只可怕的虫子。
== 我的标题
他仰卧着的时候,如果他稍微抬起头来,他可以看到他的褐色腹部,腹部略微隆起并被弧线分成多块。床单几乎无法盖住它,似乎随时准备滑下来。
=== 我的副标题
桌子上摊开一些纺织品样品-桑莎是一名推销员-并且上面有一幅照片,是他最近从一本插图杂志上剪下来的,并且放在一个漂亮的镀金框架中。画上坐着一位戴着毛皮帽和毛皮围巾的女士,她挺直身体抬起了一个重重的毛皮手套,手套覆盖了她的整个下臂。然后格雷戈尔转过身来,朝窗外望去,天气阴沉。滴落声……
Hugo将从这个AsciiDoc中提取并创建一个目录,并以与Markdown相同的方式存储在页面变量.TableOfContents
中。