C:\xampp\php\pear\Text\Wiki\Parse\Default\Heading.php


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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php

/**

* Parses for heading text.

* @category Text

* @package Text_Wiki

* @author Paul M. Jones <pmjones@php.net>

* @license LGPL

* @version $Id: Heading.php 180591 2005-02-23 17:38:29Z pmjones $

*/

/**

* Parses for heading text.

* This class implements a Text_Wiki_Parse to find source text marked to
* be a heading element, as defined by text on a line by itself prefixed
* with a number of plus signs (+). The heading text itself is left in
* the source, but is prefixed and suffixed with delimited tokens marking
* the start and end of the heading.
*
* @category Text

* @package Text_Wiki

* @author Paul M. Jones <pmjones@php.net>

*/

class Text_Wiki_Parse_Heading extends Text_Wiki_Parse {
    
    
    
/**
    * 
    * The regular expression used to parse the source text and find
    * matches conforming to this rule.  Used by the parse() method.
    * 
    * @access public
    * 
    * @var string
    * 
    * @see parse()
    * 
    */
    
    
var $regex '/^(\+{1,6}) (.*)/m';
    
    var 
$conf = array(
        
'id_prefix' => 'toc'
    
);
    
    
/**
    * 
    * Generates a replacement for the matched text.  Token options are:
    * 
    * 'type' => ['start'|'end'] The starting or ending point of the
    * heading text.  The text itself is left in the source.
    * 
    * @access public
    *
    * @param array &$matches The array of matches from parse().
    *
    * @return string A pair of delimited tokens to be used as a
    * placeholder in the source text surrounding the heading text.
    *
    */
    
    
function process(&$matches)
    {
        
// keep a running count for header IDs.  we use this later
        // when constructing TOC entries, etc.
        
static $id;
        if (! isset(
$id)) {
            
$id 0;
        }
        
        
$prefix htmlspecialchars($this->getConf('id_prefix'));
        
        
$start $this->wiki->addToken(
            
$this->rule
            array(
                
'type' => 'start',
                
'level' => strlen($matches[1]),
                
'text' => $matches[2],
                
'id' => $prefix $id ++
            )
        );
        
        
$end $this->wiki->addToken(
            
$this->rule
            array(
                
'type' => 'end',
                
'level' => strlen($matches[1])
            )
        );
        
        return 
$start $matches[2] . $end "\n";
    }
}
?>
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586