C:\xampp2_not used\php\pear\Text\Wiki\Parse\Default\Paragraph.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
108
109
110
111
112
113
114
115
116
<?php

/**

* Parses for paragraph blocks.

* @category Text

* @package Text_Wiki

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

* @license LGPL

* @version $Id: Paragraph.php 286814 2009-08-04 17:03:17Z rodrigosprimo $

*/

/**

* Parses for paragraph blocks.

* This class implements a Text_Wiki rule to find sections of the source
* text that are paragraphs.  A para is any line not starting with a token
* delimiter, followed by two newlines.
*
* @category Text

* @package Text_Wiki

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

*/

class Text_Wiki_Parse_Paragraph extends Text_Wiki_Parse {
    
    
/**
    * 
    * The regular expression used to find source text matching this
    * rule.
    * 
    * @access public
    * 
    * @var string
    * 
    */
    
    
var $regex "/^.*?\n\n/m";
    
    var 
$conf = array(
        
'skip' => array(
            
'blockquote'// are we sure about this one?
            
'code',
            
'heading',
            
'horiz',
            
'deflist',
            
'table',
            
'list',
            
'toc'
        
)
    );
    
    
    
/**
    * 
    * Generates a token entry for the matched text.  Token options are:
    * 
    * 'start' => The starting point of the paragraph.
    * 
    * 'end' => The ending point of the paragraph.
    * 
    * @access public
    *
    * @param array &$matches The array of matches from parse().
    *
    * @return A delimited token number to be used as a placeholder in
    * the source text.
    *
    */
    
    
function process(&$matches)
    {
        
$delim $this->wiki->delim;
        
$skip $this->getConf('skip', array());
        
        
// was anything there?
        
if (trim($matches[0]) == '') {
            return 
'';
        }
        
        
// does the match has tokens inside?
        
preg_match_all("/(?:$delim)(\d+?)(?:$delim)/"$matches[0], $delimitersPREG_SET_ORDER);

        
// look each delimiter inside the match and see if it's skippable
        // (if we skip, it will not be marked as a paragraph)
        
foreach ($delimiters as $d) {
            
$token_type strtolower($this->wiki->tokens[$d[1]][0]);
            if (
in_array($token_type$skip)) {
                return 
$matches[0];
            }
        }

        
// if there is no skipable token inside the match
        // add the Paragraph token and return
        
$start $this->wiki->addToken(
            
$this->rule, array('type' => 'start')
        );
        
        
$end $this->wiki->addToken(
            
$this->rule, array('type' => 'end')
        );
        
        return 
$start trim($matches[0]) . $end;
    }
}
?>
x

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