diff options
Diffstat (limited to 'inc/parser')
-rw-r--r-- | inc/parser/metadata.php | 4 | ||||
-rw-r--r-- | inc/parser/renderer.php | 14 | ||||
-rw-r--r-- | inc/parser/xhtml.php | 5 |
3 files changed, 20 insertions, 3 deletions
diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php index 04a9ed8b1..85e6eefed 100644 --- a/inc/parser/metadata.php +++ b/inc/parser/metadata.php @@ -32,6 +32,10 @@ class Doku_Renderer_metadata extends Doku_Renderer { var $capture = true; var $store = ''; + function getFormat(){ + return 'metadata'; + } + function document_start(){ // reset metadata to persistent values $this->meta = $this->persistent; diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 0e6fa2d85..1b6340445 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -37,13 +37,21 @@ class Doku_Renderer extends DokuWiki_Plugin { $this->info['toc'] = false; } + /** + * Returns the format produced by this renderer. + * + * Has to be overidden by decendend classes + */ + function getFormat(){ + trigger_error('getFormat() not implemented in '.get_class($this), E_USER_WARNING); + } + + //handle plugin rendering function plugin($name,$data){ $plugin =& plugin_load('syntax',$name); if($plugin != null){ - // determine mode from renderer class name - format = "Doku_Renderer_<mode>" - $mode = substr(get_class($this), 14); - $plugin->render($mode,$this,$data); + $plugin->render($this->getFormat(),$this,$data); } } diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index ea5b72495..e397f5bd7 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -36,6 +36,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { var $lastsec = 0; var $store = ''; + function getFormat(){ + return 'xhtml'; + } + + function document_start() { //reset some internals $this->toc = array(); |