[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/bundled-libs/Text/Wiki/Rule/ -> heading.php (source)

   1  <?php
   2  /* vim: set expandtab tabstop=4 shiftwidth=4: */
   3  // +----------------------------------------------------------------------+
   4  // | PHP version 4                                                        |
   5  // +----------------------------------------------------------------------+
   6  // | Copyright (c) 1997-2003 The PHP Group                                |
   7  // +----------------------------------------------------------------------+
   8  // | This source file is subject to version 2.0 of the PHP license,       |
   9  // | that is bundled with this package in the file LICENSE, and is        |
  10  // | available through the world-wide-web at                              |
  11  // | http://www.php.net/license/2_02.txt.                                 |
  12  // | If you did not receive a copy of the PHP license and are unable to   |
  13  // | obtain it through the world-wide-web, please send a note to          |
  14  // | license@php.net so we can mail you a copy immediately.               |
  15  // +----------------------------------------------------------------------+
  16  // | Authors: Paul M. Jones <pmjones@ciaweb.net>                          |
  17  // +----------------------------------------------------------------------+
  18  //
  19  // $Id: heading.php,v 1.3 2004/12/02 10:54:32 nohn Exp $
  20  
  21  
  22  /**
  23  * 
  24  * This class implements a Text_Wiki_Rule to find source text marked to
  25  * be a heading element, as defined by text on a line by itself prefixed
  26  * with a number of plus signs (+). The heading text itself is left in
  27  * the source, but is prefixed and suffixed with delimited tokens marking
  28  * the start and end of the heading.
  29  *
  30  * @author Paul M. Jones <pmjones@ciaweb.net>
  31  *
  32  * @package Text_Wiki
  33  *
  34  */
  35  
  36  class Text_Wiki_Rule_heading extends Text_Wiki_Rule {
  37      
  38      
  39      /**
  40      * 
  41      * The regular expression used to parse the source text and find
  42      * matches conforming to this rule.  Used by the parse() method.
  43      * 
  44      * @access public
  45      * 
  46      * @var string
  47      * 
  48      * @see parse()
  49      * 
  50      */
  51      
  52      var $regex = '/^(\+{1,6}) (.*)/m';
  53      
  54      
  55      /**
  56      * 
  57      * Generates a replacement for the matched text.  Token options are:
  58      * 
  59      * 'type' => ['start'|'end'] The starting or ending point of the
  60      * heading text.  The text itself is left in the source.
  61      * 
  62      * @access public
  63      *
  64      * @param array &$matches The array of matches from parse().
  65      *
  66      * @return string A pair of delimited tokens to be used as a
  67      * placeholder in the source text surrounding the heading text.
  68      *
  69      */
  70      
  71      function process(&$matches)
  72      {
  73          $start = $this->addToken(
  74              array(
  75                  'type' => 'start',
  76                  'level' => strlen($matches[1]),
  77                  'text' => $matches[2]
  78              )
  79          );
  80          
  81          $end = $this->addToken(
  82              array(
  83                  'type' => 'end',
  84                  'level' => strlen($matches[1])
  85              )
  86          );
  87          
  88          return $start . $matches[2] . $end . "\n";
  89      }
  90      
  91      
  92      /**
  93      * 
  94      * Renders a token into text matching the requested format.
  95      * 
  96      * @access public
  97      * 
  98      * @param array $options The "options" portion of the token (second
  99      * element).
 100      * 
 101      * @return string The text rendered from the token options.
 102      * 
 103      */
 104      
 105      function renderXhtml($options)
 106      {
 107          // get nice variable names (type, level)
 108          extract($options);
 109          
 110          if ($type == 'start') {
 111              return "<h$level>";
 112          }
 113          
 114          if ($type == 'end') {
 115              return "</h$level>\n";
 116          }
 117      }
 118  }
 119  ?>


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics