The CustomHeadersAndFooters page gives a brief introduction to modifying the display of pages in
PmWiki. This page describes the entire layout sequence in greater detail.
Note: This page still reflects the structure of the layout used in PmWiki version 0.5, and needs to be updated for PmWiki version 0.6.
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 PmWiki 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 CustomHeadersAndFooters), the other 'Fmt' variables can contain references to files on disk, user-defined functions, and wiki pages. In fact, PmWiki 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 PmWiki 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.
<< FilesAndDirectories | PmWiki.DocumentationIndex | QAMarkup? >>