| include(`setup.m4') |
| |
| \set_author([René Seindal]) |
| \set_title([This site]) |
| |
| \divert(1) |
| |
| \p([This GNU m4 site is maintained by René Seindal, |
| (\mailto(rene@seindal.dk)).]) |
| |
| \p([All files are generated using GNU m4 \__m4_version__. You can view |
| the \link(m4lib/, source files). They are very simple. They use some |
| features from GNU m4 1.4l]) |
| |
| \p([The basic M4 definitions of quotes, comments, escapes are in |
| \showlink(m4lib/setup.m4). This is first included by all files to |
| configure the enviroment correctly for the other files. To avoid have |
| macros called by accident, an escape character is defined with |
| changesyntax. \i(This is a new feature in m4 1.4l).]) |
| |
| \p([Some fairly general macros to generate various HTML construct are |
| found in \showlink(m4lib/html.m4). There are macros for simple tags, |
| containers with and without attributes, links and a few utility macros.]) |
| |
| \p([The visual aspects of the pages are in \showlink(m4lib/layout.m4). |
| The macros herein generate the complete HTML structure for the pages. |
| There are macros for making the header and the body of the document.]) |
| |
| \p([The definition of the left hand menu is in \showlink(m4lib/menu.m4). |
| I convinced GNU Emacs to do the indentation by switching to c-mode.]) |
| |
| \p([The page body is passed to the layout definitions as an argument. As |
| the text can be large, it is first diverted and the text passed to the |
| layout macros is simply a call to undivert. That way a very large text |
| can be passed around with very little cost. This page is made with |
| \link(m4lib/thissite.m4, these definitions).]) |
| |
| \p([There is a single file for each HTML file.]) |
| |
| \divert(0)\dnl |
| \DO_LAYOUT([\undivert(1)]) |
| \divert(-1) |