HTML Handler
This is the development page for the HTML handler.
This handler generates "standalone" HTML, without the header/footer/menu items.
Dependency
None.
The code
Copy
css/wikka.css to
css/html.css, then add the following line to the top of html.css:
.header, .footer, .commentsheader, .copyright, .smallprint { display:none; }
Create
handlers/page/html.php (
version <=1.1.6.3) or
handlers/html/html.php (
version >=1.1.7):
<?php
if ($this->
HasAccess("read") &&
$this->
page) {
// display page
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title><?php
echo $this->
GetPageTag(); ?></title>
<meta http-equiv=
"Content-Type" content=
"text/html; charset=iso-8859-1" />
<style type=
"text/css">
<?php include("css/html.css") ?>
</style>
</head>
<body>
<?php
$this->
config['external_link_tail'] =
'';
print($this->
Format($this->
page["body"],
"html"));
}
?>
Add the following after about line 1109 (
version < 1.1.6.2) or line 1030 (
version 1.1.6.2/1.1.6.3) in
wikka.php (just before the final else statement):
elseif ($this->
method ==
"html")
{
print($this->
Method($this->
method));
}
Add the following after about line 2879 (
version >= 1.1.7) in
libs/Wakka.class.php :
// Handler to generate html
elseif ($this->
handler ==
'html')
{
print($this->
Handler($this->
handler));
}
The Wikka parsing engine doesn't differentiate between relative URIs and absolute URIs (the default is to prepend any "unidentified" URIs with
http://)∞. To enable relative URIs, copy formatters/wakka.php to formatters/html.php, then make the following changes starting at around line 240 (
version < 1.1.6.2), line 284 (
version 1.1.6.2/1.1.6.3), or line 527 (
version >= 1.1.7):
// forced links
// \S : any character that is not a whitespace character
// \s : any whitespace character
--->
change start<---
// Hack to pick up leading . and / characters in URI
else if (preg_match("/^\[\[([\S|\.|\/]*)(\s+(.+))?\]\]$/s",
$thing,
$matches)) # recognize forced links across lines
{
--->
change end<---
list
(,
$url, ,
$text) =
$matches;
if ($url)
{
//if ($url!=($url=(preg_replace("/@@|££||\[\[/","",$url))))$result="</span>";
if (!
$text) $text =
$url;
//$text=preg_replace("/@@|££|\[\[/","",$text);
--->
change start<---
$link =
$wakka->
Link($url,
"",
$text);
// Hack to handle relative URIs (i.e., links to files
// in the same directory)
if(strstr($link,
"http://.") ||
strstr($link,
"http:///"))
$link =
preg_replace("/^(.*)http:\/\/(.*)$/",
"\${1}\${2}",
$link);
return $result.
$link;
--->
change end<---
}
To disable the display of CamelWords and InterWiki as clickable links, also delete the following lines from formatters/html.php:
"\b[A-Z???][A-Za-z???????]+[:](?![=_])\S*\b|".
# InterWiki link
"\b([A-Z???]+[a-z????]+[A-Z0-9???][A-Za-z0-9???????]*)\b|".
# CamelWords
To Do
- Provide option to exclude inline CSS (with option to display listing of CSS to save in separate file)
- Provide "raw" html (no html, head, body tags)
- Clean up kludge in wikka.php (there should be no need to modify this file to accomodate a new handler type)
- Convince DarTar to include this formatter in the next release so we can show Exports HTML == yes in the WikkaWiki entry on WikiMatrix∞!
Categories
CategoryDevelopmentHandlers
CategoryUserContributions