m4_dnl M4 / HTML macro package - table of contents module
m4_dnl Copyright 1997-2003 Perette Barella.
m4_dnl All rights reserved.
m4_dnl vim:ts=8:sw=8
_REVISION(``$Id: toc3.m4,v 1.5 2008/08/18 03:22:46 perette Exp $'')
__STYLESHEET(DIR_TOP/Include/m4toc.css)
m4_dnl Initialize chapter look & feel
m4_dnl These should not need to be edited; changes should be made
m4_dnl through the appropriate stylesheets.
m4_define(``__CHAPTER_NUM'', 0)
m4_define(``_TOC_HEADER'', ``
Contents
'')
m4_define(``_TOC_BEGIN'', ``'')
m4_define(``_TOC_CHAPTER'', ``- '')
m4_define(``_TOC_END'', ``
'')
m4_define(``_CHAPTER_FORMAT'', ``
__CHAPTER_NUM. __CHAPTER_NAME
'')
m4_define(``_CHAPTER_TOCFORMAT'', ``
__CHAPTER_NUM. __CHAPTER_NAME
'')
m4_define(``_CHAPTER_TOC'', ``
_TOC_CHAPTER
_CHAPTER_TOCFORMAT
'')
m4_define(``_APPENDIX_FORMAT'', ``
__CHAPTER_NAME
'')
m4_define(``_APPENDIX_TOCFORMAT'', ``
__CHAPTER_NUM. __CHAPTER_NAME
'')
m4_dnl Settings for the in-line chapter heading.
m4_define(``_CHAPTER_HEADER'', ``
'')
m4_dnl Initialize sections look & feel
m4_define(``__SECTION_NUM'', 0)
m4_define(``_TOC_BEGIN_SECTIONS'', ``'')
m4_define(``_TOC_SECTION'', ``- '')
m4_define(``_TOC_END_SECTIONS'', ``
'')
m4_define(``_SECTION_FORMAT'', ``
__CHAPTER_NUM.__SECTION_NUM. __SECTION_NAME
'')
m4_define(``_SECTION_TOCFORMAT'', ``
__CHAPTER_NUM.__SECTION_NUM. __SECTION_NAME
'')
m4_define(``_SECTION_TOC'', ``
_TOC_SECTION
_SECTION_TOCFORMAT
'')
m4_dnl Settings for the in-line chapter heading.
m4_define(``_SECTION_HEADER'', ``
'')
m4_dnl Initialize subsections look & feel
m4_define(``__SUBSECT_NUM'', 0)
m4_define(``_TOC_BEGIN_SUBSECTIONS'', ``'')
m4_define(``_TOC_SUBSECTION'', ``- '')
m4_define(``_TOC_END_SUBSECTIONS'', ``
'')
m4_define(``_SUBSECT_FORMAT'', ``
__CHAPTER_NUM.__SECTION_NUM.__SUBSECT_NUM. __SUBSECT_NAME
'')
m4_define(``_SUBSECT_TOCFORMAT'', ``
__CHAPTER_NUM.__SECTION_NUM.__SUBSECT_NUM. __SUBSECT_NAME
'')
m4_define(``_SUBSECT_TOC'', ``
_TOC_SUBSECTION
_SUBSECT_TOCFORMAT
'')
m4_dnl Settings for the in-line chapter heading.
m4_define(``_SUBSECT_HEADER'', ``
'')
m4_dnl Initialize other parts of look & feel
m4_define(``_DOCTITLE'', ``
m4_divert(DIV_INTRO)
$1
m4_divert(DIV_CONTENT)
'')
m4_define(``_TOC_ON_OWN_PAGE'', ``
m4_define(``_TOC_HEADER'', ``Contents
'')
'')
m4_define(``TOC_CHAPTERS_ONLY'', ``
_STYLE(`` UL.toc UL { display: none }'')
'')
m4_define(``TOC_NO_SUBSECTIONS'', ``
_STYLE(`` UL.toc UL UL { display: none }'')
'')
m4_define(``_UNNUMBERED_SECTIONS'', ``
_UNNUMBERED_SUBSECTIONS
m4_define(``_SECTION_FORMAT'', ``__SECTION_NAME'')
m4_define(``_SECTION_TOCFORMAT'', ``__SECTION_NAME'')
'')
m4_define(``_UNNUMBERED_SUBSECTIONS'', ``
m4_define(``_SUBSECT_FORMAT'', ``__SUBSECT_NAME'')
m4_define(``_SUBSECT_TOCFORMAT'', ``__SUBSECT_NAME'')
'')
m4_dnl Macro to start a new chapter, creating an inline title
m4_dnl and an entry in the table of contents. The TOC entry will link
m4_dnl to the in-line heading. Section counting is reset by a new chapter.
m4_define(``_CHAPTER'', ``m4_pushdef(``__DIVERTS'', m4_divnum)m4_divert(DIV_TOC)
m4_define(``__CHAPTER_NAME'', ``$1'')
m4_define(``__CHAPTER_NUM'',m4_incr(__CHAPTER_NUM))
m4_ifelse(__SUBSECT_NUM,0,,``_TOC_END_SUBSECTIONS'')
m4_ifelse(__SECTION_NUM,0,,``_TOC_END_SECTIONS'')
m4_define(``__SECTION_NUM'',0)
m4_define(``__SUBSECT_NUM'',0)
m4_define(``__CHAPTER_TAG'',
``m4_ifelse(``$2'',,``chap_''__CHAPTER_NUM,``$2'')'')
m4_define(``__POINT'', ``__PAGEURL#__CHAPTER_TAG'')
m4_define(``__POINTNAME'', ``__PAGETITLE: __CHAPTER_NAME'')
m4_ifelse(__CHAPTER_NUM,1,``
_TOC_HEADER
_TOC_BEGIN
m4_m4wrap(``
m4_divert(DIV_TOC)
m4_ifelse(__SUBSECT_NUM,0,,``_TOC_END_SUBSECTIONS'')
m4_ifelse(__SECTION_NUM,0,,``_TOC_END_SECTIONS'')
_TOC_END'')
'')
_CHAPTER_TOC
m4_divert(__DIVERTS)
m4_popdef(``__DIVERTS'')
_CHAPTER_HEADER'')
m4_dnl An appendix is the same as a chapter, but without numbers.
m4_dnl Swap out the format macros and just call _CHAPTER.
m4_define(``_APPENDIX'', ``
m4_pushdef(``_CHAPTER_FORMAT'', ``_APPENDIX_FORMAT'')
m4_pushdef(``_CHAPTER_TOCFORMAT'', ``_APPENDIX_TOCFORMAT'')
_CHAPTER(``$@'')
m4_popdef(``_CHAPTER_FORMAT'')
m4_popdef(``_CHAPTER_TOCFORMAT'')
'')
m4_dnl Macro to start a new section.
m4_dnl Subsection counting is reset by a new section.
m4_define(``_SECTION'', ``m4_divert(DIV_TOC)
m4_define(``__SECTION_NAME'', ``$1'')
m4_define(``__SECTION_NUM'',m4_incr(__SECTION_NUM))
m4_ifelse(__SUBSECT_NUM,0,,``_TOC_END_SUBSECTIONS'')
m4_define(``__SUBSECT_NUM'',0)
m4_define(``__SECTION_TAG'',
``m4_ifelse(``$2'',,
``sect_''__CHAPTER_NUM``.''__SECTION_NUM,``$2'')'')
m4_define(``__POINT'', ``__PAGEURL#__SECTION_TAG'')
m4_define(``__POINTNAME'', ``__PAGETITLE: __CHAPTER_NAME: __SECTION_NAME'')
m4_ifelse(__SECTION_NUM,1,``_TOC_BEGIN_SECTIONS'')
_SECTION_TOC
m4_divert(DIV_CONTENT)
_SECTION_HEADER'')
m4_dnl Macro to start a new subsection.
m4_define(``_SUBSECTION'', ``m4_divert(DIV_TOC)
m4_define(``__SUBSECT_NAME'', ``$1'')
m4_define(``__SUBSECT_NUM'',m4_incr(__SUBSECT_NUM))
m4_define(``__SUBSECT_TAG'',
``m4_ifelse(``$2'',,
``subsect_''__CHAPTER_NUM``.''__SECTION_NUM``.''__SUBSECT_NUM,``$2'')'')
m4_define(``__POINT'', ``__PAGEURL#__SUBSECT_TAG'')
m4_define(``__POINTNAME'', ``__PAGETITLE: __CHAPTER_NAME: __SECTION_NAME: __SUBSECT_NAME'')
m4_ifelse(__SUBSECT_NUM,1,``_TOC_BEGIN_SUBSECTIONS'')
_SUBSECT_TOC
m4_divert(DIV_CONTENT)
_SUBSECT_HEADER'')