1<?php
2
3/**
4*
5* Parses for bold text.
6*
7* @category Text
8*
9* @package Text_Wiki
10*
11* @author Paul M. Jones <pmjones@php.net>
12*
13* @license LGPL
14*
15* @version $Id$
16*
17*/
18
19/**
20*
21* Parses for bold text.
22*
23* This class implements a Text_Wiki_Rule to find source text marked for
24* strong emphasis (bold) as defined by text surrounded by three
25* single-quotes. On parsing, the text itself is left in place, but the
26* starting and ending instances of three single-quotes are replaced with
27* tokens.
28*
29* @category Text
30*
31* @package Text_Wiki
32*
33* @author Paul M. Jones <pmjones@php.net>
34*
35*/
36
37class Text_Wiki_Parse_Bold extends Text_Wiki_Parse {
38
39
40    /**
41    *
42    * The regular expression used to parse the source text and find
43    * matches conforming to this rule.  Used by the parse() method.
44    *
45    * @access public
46    *
47    * @var string
48    *
49    * @see parse()
50    *
51    */
52
53    var $regex =  "/'''(()|[^'].*)'''/U";
54
55
56    /**
57    *
58    * Generates a replacement for the matched text.  Token options are:
59    *
60    * 'type' => ['start'|'end'] The starting or ending point of the
61    * emphasized text.  The text itself is left in the source.
62    *
63    * @access public
64    *
65    * @param array &$matches The array of matches from parse().
66    *
67    * @return A pair of delimited tokens to be used as a placeholder in
68    * the source text surrounding the text to be emphasized.
69    *
70    */
71
72    function process(&$matches)
73    {
74        $start = $this->wiki->addToken($this->rule, array('type' => 'start'));
75        $end = $this->wiki->addToken($this->rule, array('type' => 'end'));
76        return $start . $matches[1] . $end;
77    }
78}
79?>