From a2d649c465f8f77c2b1dfdcc3724e69fde78a296 Mon Sep 17 00:00:00 2001
From: andi
Date: Mon, 25 Apr 2005 20:35:43 +0200
Subject: changed XHTML renderer from outputbuffering to string appending #272
darcs-hash:20050425183543-9977f-86c2d99ebfcb30849443b7bc5ef1a09859148732.gz
---
inc/parser/xhtml.php | 215 +++++++++++++++++++++++++--------------------------
1 file changed, 105 insertions(+), 110 deletions(-)
(limited to 'inc/parser/xhtml.php')
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index dc17092d9..39708db17 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -42,7 +42,6 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
var $lastsec = 0;
function document_start() {
- ob_start();
}
function document_end() {
@@ -50,52 +49,48 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if($this->lastsec > 1) $this->_secedit($this->lastsec,'');
if ( count ($this->footnotes) > 0 ) {
- echo ''.DOKU_LF;
}
-
- $this->doc .= ob_get_contents();
- ob_end_clean();
-
}
function toc_open() {
- echo ''.DOKU_LF;
- echo ''.DOKU_LF;
- echo '
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
}
function tocbranch_open($level) {
- echo '
'.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
}
function toc_close() {
- echo '
'.DOKU_LF.'
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF.'
'.DOKU_LF;
}
function header($text, $level, $pos) {
@@ -108,98 +103,98 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$this->lastsec = $pos;
}
- echo DOKU_LF.'';
- echo $this->_xmlEntities($text);
- echo "".DOKU_LF;
+ $this->doc .= DOKU_LF.'';
+ $this->doc .= $this->_xmlEntities($text);
+ $this->doc .= "".DOKU_LF;
}
function section_open($level) {
- echo "".DOKU_LF;
+ $this->doc .= "
".DOKU_LF;
}
function section_close() {
- echo DOKU_LF.'
'.DOKU_LF;
+ $this->doc .= DOKU_LF.'
'.DOKU_LF;
}
function cdata($text) {
- echo $this->_xmlEntities($text);
+ $this->doc .= $this->_xmlEntities($text);
}
function p_open() {
- echo DOKU_LF.''.DOKU_LF;
+ $this->doc .= DOKU_LF.'
'.DOKU_LF;
}
function p_close() {
- echo DOKU_LF.'
'.DOKU_LF;
+ $this->doc .= DOKU_LF.'
'.DOKU_LF;
}
function linebreak() {
- echo '
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
}
function hr() {
- echo '
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
}
function strong_open() {
- echo '';
+ $this->doc .= '';
}
function strong_close() {
- echo '';
+ $this->doc .= '';
}
function emphasis_open() {
- echo '';
+ $this->doc .= '';
}
function emphasis_close() {
- echo '';
+ $this->doc .= '';
}
function underline_open() {
- echo '';
+ $this->doc .= '';
}
function underline_close() {
- echo '';
+ $this->doc .= '';
}
function monospace_open() {
- echo '';
+ $this->doc .= '';
}
function monospace_close() {
- echo '
';
+ $this->doc .= '
';
}
function subscript_open() {
- echo '';
+ $this->doc .= '';
}
function subscript_close() {
- echo '';
+ $this->doc .= '';
}
function superscript_open() {
- echo '';
+ $this->doc .= '';
}
function superscript_close() {
- echo '';
+ $this->doc .= '';
}
function deleted_open() {
- echo '';
+ $this->doc .= '';
}
function deleted_close() {
- echo '';
+ $this->doc .= '';
}
function footnote_open() {
$id = $this->_newFootnoteId();
- echo ''.$id.')';
+ $this->doc .= ''.$id.')';
$this->footnoteIdStack[] = $id;
ob_start();
}
@@ -216,39 +211,39 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
function listu_open() {
- echo ''.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
function listu_close() {
- echo '
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
}
function listo_open() {
- echo ''.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
function listo_close() {
- echo '
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF;
}
function listitem_open($level) {
- echo '';
+ $this->doc .= '';
}
function listitem_close() {
- echo ''.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
function listcontent_open() {
- echo '';
+ $this->doc .= '';
}
function listcontent_close() {
- echo ''.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
function unformatted($text) {
- echo $this->_xmlEntities($text);
+ $this->doc .= $this->_xmlEntities($text);
}
/**
@@ -267,32 +262,32 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
function html($text) {
global $conf;
if($conf['htmlok']){
- echo $text;
+ $this->doc .= $text;
}else{
$this->file($text);
}
}
function preformatted($text) {
- echo '' . $this->_xmlEntities($text) . '
'. DOKU_LF;
+ $this->doc .= '' . $this->_xmlEntities($text) . '
'. DOKU_LF;
}
function file($text) {
- echo '' . $this->_xmlEntities($text). '
'. DOKU_LF;
+ $this->doc .= '' . $this->_xmlEntities($text). '
'. DOKU_LF;
}
/**
* @TODO Shouldn't this output '.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
/**
* @TODO Shouldn't this output ?
*/
function quote_close() {
- echo '
'.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
/**
@@ -312,7 +307,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$geshi->set_link_target($conf['target']['extern']);
$text = $geshi->parse_code();
- echo $text;
+ $this->doc .= $text;
}
}
@@ -322,11 +317,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$title = $this->_xmlEntities($this->acronyms[$acronym]);
- echo ''.$this->_xmlEntities($acronym).'';
} else {
- echo $this->_xmlEntities($acronym);
+ $this->doc .= $this->_xmlEntities($acronym);
}
}
@@ -335,11 +330,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
function smiley($smiley) {
if ( array_key_exists($smiley, $this->smileys) ) {
$title = $this->_xmlEntities($this->smileys[$smiley]);
- echo '
smileys[$smiley].
'" align="middle" alt="'.
$this->_xmlEntities($smiley).'" />';
} else {
- echo $this->_xmlEntities($smiley);
+ $this->doc .= $this->_xmlEntities($smiley);
}
}
@@ -347,39 +342,39 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* not used
function wordblock($word) {
if ( array_key_exists($word, $this->badwords) ) {
- echo '** BLEEP **';
+ $this->doc .= '** BLEEP **';
} else {
- echo $this->_xmlEntities($word);
+ $this->doc .= $this->_xmlEntities($word);
}
}
*/
function entity($entity) {
if ( array_key_exists($entity, $this->entities) ) {
- echo $this->entities[$entity];
+ $this->doc .= $this->entities[$entity];
} else {
- echo $this->_xmlEntities($entity);
+ $this->doc .= $this->_xmlEntities($entity);
}
}
function multiplyentity($x, $y) {
- echo "$x×$y";
+ $this->doc .= "$x×$y";
}
function singlequoteopening() {
- echo "‘";
+ $this->doc .= "‘";
}
function singlequoteclosing() {
- echo "’";
+ $this->doc .= "’";
}
function doublequoteopening() {
- echo "“";
+ $this->doc .= "“";
}
function doublequoteclosing() {
- echo "”";
+ $this->doc .= "”";
}
/**
@@ -430,7 +425,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if($returnonly){
return $this->_formatLink($link);
}else{
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
}
@@ -458,7 +453,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if($conf['relnofollow']) $link['more'] .= ' rel="nofollow"';
//output formatted
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
/**
@@ -523,7 +518,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['title'] = htmlspecialchars($link['url']);
//output formatted
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
/*
@@ -531,25 +526,25 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* @TODO Correct the CSS class for files? (not windows)
* @TODO Remove hard coded URL to splitbrain.org
function filelink($link, $title = NULL) {
- echo 'doc .= '_getLinkTitle($title, $link, $isImage);
if ( !$isImage ) {
- echo ' class="windows"';
+ $this->doc .= ' class="windows"';
} else {
- echo ' class="media"';
+ $this->doc .= ' class="media"';
}
- echo ' href="'.$this->_xmlEntities($link).'"';
+ $this->doc .= ' href="'.$this->_xmlEntities($link).'"';
- echo ' style="background: transparent url(http://wiki.splitbrain.org/images/windows.gif) 0px 1px no-repeat;"';
+ $this->doc .= ' style="background: transparent url(http://wiki.splitbrain.org/images/windows.gif) 0px 1px no-repeat;"';
- echo ' onclick="return svchk()" onkeypress="return svchk()">';
+ $this->doc .= ' onclick="return svchk()" onkeypress="return svchk()">';
- echo $title;
+ $this->doc .= $title;
- echo '';
+ $this->doc .= '';
}
*/
@@ -583,7 +578,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['url'] = $url;
//output formatted
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
function emaillink($address, $name = NULL) {
@@ -644,7 +639,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['title'] = $title;
//output formatted
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
/**
@@ -670,7 +665,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
//output formatted
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
/**
@@ -694,7 +689,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
//output formatted
- echo $this->_formatLink($link);
+ $this->doc .= $this->_formatLink($link);
}
/**
@@ -714,20 +709,20 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$rss = fetch_rss($url);
error_reporting($elvl);
- print '';
}
/**
@@ -797,49 +792,49 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
// $numrows not yet implemented
function table_open($maxcols = NULL, $numrows = NULL){
- echo ''.DOKU_LF;
+ $this->doc .= ''.DOKU_LF;
}
function table_close(){
- echo '
'.DOKU_LF.'
'.DOKU_LF;
+ $this->doc .= '
'.DOKU_LF.'
'.DOKU_LF;
}
function tablerow_open(){
- echo DOKU_TAB . '' . DOKU_LF . DOKU_TAB . DOKU_TAB;
+ $this->doc .= DOKU_TAB . '
' . DOKU_LF . DOKU_TAB . DOKU_TAB;
}
function tablerow_close(){
- echo DOKU_LF . DOKU_TAB . '
' . DOKU_LF;
+ $this->doc .= DOKU_LF . DOKU_TAB . '' . DOKU_LF;
}
function tableheader_open($colspan = 1, $align = NULL){
- echo 'doc .= ' | doc .= ' class="'.$align.'align"';
}
if ( $colspan > 1 ) {
- echo ' colspan="'.$colspan.'"';
+ $this->doc .= ' colspan="'.$colspan.'"';
}
- echo '>';
+ $this->doc .= '>';
}
function tableheader_close(){
- echo ' | ';
+ $this->doc .= '';
}
function tablecell_open($colspan = 1, $align = NULL){
- echo 'doc .= ' | doc .= ' class="'.$align.'align"';
}
if ( $colspan > 1 ) {
- echo ' colspan="'.$colspan.'"';
+ $this->doc .= ' colspan="'.$colspan.'"';
}
- echo '>';
+ $this->doc .= '>';
}
function tablecell_close(){
- echo ' | ';
+ $this->doc .= '';
}
//----------------------------------------------------------
@@ -912,7 +907,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
* Adds code for section editing button
*/
function _secedit($f, $t){
- print '';
+ $this->doc .= '';
}
function _getLinkTitle($title, $default, & $isImage, $id=NULL) {
--
cgit v1.2.3