Edit Page
Search Site
Recent Changes: All | Pm Wiki
The Custom Headers And Footers page gives a brief introduction to modifying the display of pages in Pm Wiki. This page describes the entire layout sequence in greater detail.

First it's helpful to review the basic structure of an HTML document. A script creating an HTML document must basically produce the following parts:

  HTTP Headers	        Content-type:, etc.
  document type         <!DOCTYPE ...>
  header                <html><head>
    document title        <title>...</title>
    stylesheets           <style>...</style>
    other header tags     <meta ...>
  body                  </head><body ...>
  HTML markup             <table>, text, <a>, etc.
  end of document       </body></html>
In general, each component of the document that Pm Wiki produces can be controlled by one or more configuration variables. For example, the variables controlling the display of a wiki page are given by
  HTTP Headers	        Content-type:, etc.            $HTTPHeaders
  document type         <!DOCTYPE ...>                 $HTMLDoctypeFmt
  header                <html><head>                        "
    document title        <title>...</title>           $HTMLTitleFmt
    stylesheets           <style>...</style>           $HTMLHeaderFmt
    other header tags     <meta ...> <link ...>             "
  body                  </head><body ...>              $HTMLBodyFmt
    header                <table>, text, <a>, etc.     $PageHeaderFmt
    wiki text                  "                       PrintText() function
    footer                     "                       $PageFooterFmt
  end of document       </body></html>                 $HTMLEndFmt
As with $PageHeaderFmt and $PageFooterFmt (described in Custom Headers And Footers), the other 'Fmt' variables can contain references to files on disk, user-defined functions, and wiki pages. In fact, Pm Wiki defines the $HTMLStartFmt variable to aggregate the output up to the HTML <body> tag:
  $HTMLStartFmt = array('headers:', &$HTMLDoctypeFmt, &$HTMLTitleFmt,
    &$HTMLHeaderFmt, $HTMLBodyFmt);
Finally, most of the major Pm Wiki operations (browse, edit, search, etc.) have variables that define the entire page contents. For example, the layout of a page being displayed via the default browse action is specified by
  $HandleBrowseFmt = array(&$HTMLStartFmt, &$PageHeaderFmt, &$PageTitleFmt,
    "function:PrintText", &$PageFooterFmt, &$HTMLEndFmt);
which outputs all of the HTML header components, $PageHeaderFmt, the text of the wiki page itself, $PageFooterFmt, and the end of the html document.

<< Variables | PmWiki.Documentation Index | Available Actions >>

Edit PagePage RevisionsEditing HelpSearch SiteAll Recent Changes
Page last modified on July 27, 2003, at 12:26 PM
For questions about the site, please contact webmaster@carp-mi.net.