Оглавление
Применение
Создайте уценку, как обычно, с соответствующими заголовками. Вот пример содержания:
<!-- Your front matter up here -->
## Introduction
One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.
## My Heading
He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment.
### My Subheading
A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame. It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the dull weather. Drops
Хьюго возьмет этот Markdown и создаст оглавление из ## Introduction
, ## My Heading
и ### My Subheading
, а затем сохранит его в переменные страницы.TableOfContents
.
Встроенные переменные .TableOfContents
выводят элемент <nav id="TableOfContents">
с дочерним элементом <ul>
, чьи дочерние элементы <li>
начинаются с соответствующих заголовков HTML. Смотрите доступные настройки, чтобы настроить, какие уровни заголовков Вы хотите включить в оглавление.
Пример шаблона: базовое оглавление
Ниже приводится пример очень простого одностраничного шаблона:
{{ define "main" }}
<main>
<article>
<header>
<h1>{{ .Title }}</h1>
</header>
{{ .Content }}
</article>
<aside>
{{ .TableOfContents }}
</aside>
</main>
{{ end }}
Пример шаблона: Частичное содержание оглавления
Ниже приведен частичный шаблон, который добавляет немного больше логики для управления оглавлением на уровне страницы. Предполагается, что Вы используете поле toc
в front matter Вашего контента, которое, если специально не установлено на false
, добавит оглавление на любую страницу с .WordCount
(смотрите переменные страницы) больше 400. Этот пример также демонстрирует, как использовать условные в Вашем шаблоне:
{{ if and (gt .WordCount 400 ) (.Params.toc) }}
<aside>
<header>
<h2>{{.Title}}</h2>
</header>
{{.TableOfContents}}
</aside>
{{ end }}
Использование с AsciiDoc
Hugo поддерживает оглавление с форматом содержимого AsciiDoc.
В заголовке файла содержимого укажите директивы AsciiDoc TOC, необходимые для создания оглавления. Хьюго будет использовать сгенерированное оглавление для заполнения переменной страницы .TableOfContents
так же, как описано для разметки. Смотрите пример ниже:
// <!-- Your front matter up here -->
:toc:
// Set toclevels to be at least your hugo [markup.tableOfContents.endLevel] config key
:toclevels: 4
== Introduction
One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.
== My Heading
He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment.
=== My Subheading
A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame. It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the dull weather. Drops
Хьюго возьмет этот AsciiDoc и создаст оглавление и сохранит его в переменной страницы .TableOfContents
, как описано для Markdown.