wml::std::toc

Langue: en

Version: 2008-05-31 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

=LT=define-tag toc_section endtag=required>\ =LT=set-var __i=0 />\ =LT=while =LT=lt =LT=get-var __i /> %0 />>\ =LT=<get-var toc_style />*=LT=toc_style_type =LT=get-var __i /> />>\ =LT=increment __i />=LT=/while>\ <li*>\ %body =LT=set-var __i=0 />\ =LT=while =LT=lt =LT=get-var __i /> %0 />>\ =LT=/<get-var toc_style />>\ =LT=increment __i />=LT=/while>\ =LT=/define-tag> ``
       ''=LT=`` ''<"
    /> </when>

# 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>

##EOF## __END__

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.