summaryrefslogtreecommitdiff
path: root/includes/pear/Text/Wiki/Render/Creole/Blockquote.php
blob: f6a3f066d69502126b116a8d506bc8fd5ad54706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php

class Text_Wiki_Render_Creole_Blockquote extends Text_Wiki_Render {

    var $css_stack = array();
    
    /**
    *
    * Renders a token into text matching the requested format.
    *
    * @access public
    *
    * @param array $options The "options" portion of the token (second
    * element).
    *
    * @return string The text rendered from the token options.
    *
    */

    function token($options)
    {
        // starting
        if ($options['type'] == 'start') {
			if (empty($options['css'])) $options['css'] = '';
            array_push($this->css_stack, $options['css']);
            $this->wiki->registerRenderCallback(array(&$this, 'renderInsideText'));
            return '';
        }
        // ending
        if ($options['type'] == 'end') {
            $this->wiki->popRenderCallback();
            return '';
        }
    }

    function renderInsideText($text) {
        $text = trim($text);
        if (array_pop($this->css_stack) == 'remark') {
            $text = preg_replace('/(^|\n)([\>\:]*) */', '\1:\2 ', $text);
        }
        else {
            $text = preg_replace('/(^|\n)([\>\:]*) */', '\1>\2 ', $text);
        }
        return $text . "\n\n";
    }
}
?>