---
name: "wml::std::toc"
section: "3"
platform: "linux"
package: "wml"
version: "2.32.0~ds1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wml::std::toc"
---

# wml::std::toc(3)

Table of Contents Generation

## NAME

wml::std::toc - Table of Contents Generation

## SYNOPSIS

```
 #use wml::std::toc [style={pre,nbsp,hspace,ul,ol} [type=...]]
 <toc>
 <hN>...</hN>
 <toc_hN ...>...</toc_hN>
```

## DESCRIPTION

This creates a table of contents which can be inserted at any point (even more than once) by the `"<toc>"` tag. The contents gets created out of all header tags \`\``"<hN>"`'' where \`\`N'' also controls the indention in the table of contents.

Alternatively you can use the `"<toc_hN>"` tags to insert its body (can be empty!) at the current location and into the Table Of Contents. If specified, the `"alt"` attribute is included into the ToC instead of the body.

## STYLES

You may specify any of the five styles `"pre"`, `"nbsp"`, `"hspace"`, `"ul"` and `"ol"`. The last two accept special options to render HTML lists. With `"style=ol"`, you may choose types `1`, `"A"`, `"a"`, `"i"` and `"I"` whereas `"style=ul"` provides `"d"`, `"c"` and `"s"` for respectively discs, circles and squares.

## EXAMPLE

Below is an example to render the Table of Contents with HTML `"<pre>"` tag.

```
 #use wml::std::toc style=pre
 #use wml::std::page
 <page>
 <h1>Chapter 1</h1>
 <h2>Section 1</h2>
 <h2>Section 2</h2>
 <h1>Chapter 2</h1>
 <h2>Section 1</h2>
 <h2>Section 2</h2>
 <toc>
```

Play and choose your favorite!

```
 #use wml::std::toc style=ol type=A1ai
```

or

```
 #use wml::std::toc style=ul type=dssccc
```

## AUTHORS

```
 Ralf S. Engelschall
 rse@engelschall.com
 www.engelschall.com
 Denis Barbier
 barbier@engelschall.com
```

## REQUIRES

```
 Internal: P1, P2, P5, P6
```

## SEE ALSO

HTML `"<Hx>"` `"<UL>"` `"<OL>"` tags.
