# Define the <HX> and <TOC_HX> container tags (X = 1...6)
<set-var __i=1 />\
<set-var __pad= />
<while <lt <get-var __i /> 7 />>\
<subst-in-string ``\
=LT=define-tag h<get-var __i /> endtag=required>\
=LT=h<get-var __i />* %attributes>\
=LT=toc_h<get-var __i />>\
%body\
=LT=/toc_h<get-var __i />>\
=LT=/h<get-var __i />*>\
=LT=/define-tag>\
''
``=LT='' ``<''
/>
<subst-in-string ``\
=LT=define-tag toc_h<get-var __i/> endtag=required>\
=LT=preserve alt/>\
=LT=set-var alt=/>\
=LT=set-var %attributes/>\
=LT=a name=\''ToC=LT=get-var __TOCCNT/>\``>%body</a>\
{#ToC#:\
=LT=toc_section <get-var __i/>>\
<get-var __pad/>\
=LT=a href=\''#ToC=LT=get-var __TOCCNT/>\``><strong>\
=LT=or =LT=get-var alt/> %body/>\
</strong></a>\
=LT=/toc_section>\
<get-var toc_eol/>
:#ToC#}\
=LT=increment __TOCCNT/>\
=LT=restore alt/>\
=LT=/define-tag>\
''
``=LT='' ``<''
/>
<set-var __pad=``<get-var __pad /><get-var toc_pad />'' />
<increment __i />
</while>
#use wml::std::toc [style={pre,nbsp,hspace,ul,ol} [type=...]]
<toc>
<hN>...</hN>
<toc_hN ...>...</toc_hN>
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.
#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
Ralf S. Engelschall rse@engelschall.com www.engelschall.com Denis Barbier barbier@engelschall.com
Internal: P1, P2, P5, P6