Skip to content

Commit

Permalink
Add superscript and subscript extension
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.php.net/repository/pear/packages/Text_Wiki/trunk@199139 c90b9560-bf6c-de11-be94-00142212c4b1
  • Loading branch information
Firman Wandayandi committed Oct 25, 2005
1 parent 5760ec1 commit 2d1f12f
Show file tree
Hide file tree
Showing 2 changed files with 171 additions and 0 deletions.
86 changes: 86 additions & 0 deletions Text/Wiki/Parse/BBCode/Subscript.php
@@ -0,0 +1,86 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker */

// {{{ Header

/**
* BBCode: Parses for subscript text.
*
* This class implements a Text_Wiki_Rule to find source text marked for
* strong emphasis (subscript) text as defined by text surrounded by
* [sub] ... [/sub] On parsing, the text itself is left in place, but
* the starting and ending tags are replaced with tokens.
*
* PHP versions 4 and 5
*
* @category Text
* @package Text_Wiki
* @author Firman Wandayandi <firman@php.net>
* @copyright 2005 bertrand Gugger
* @license http://www.gnu.org/copyleft/lgpl.html
* GNU Lesser General Public License, version 2.1
* @version CVS: $Id$
*/

// }}}
// {{{ Class: Text_Wiki_Parse_Subscript

/**
* Subscript text rule parser class for BBCode.
*
* @category Text
* @package Text_Wiki
* @author Firman Wandayandi <firman@php.net>
* @copyright 2005 bertrand Gugger
* @license http://www.gnu.org/copyleft/lgpl.html
* GNU Lesser General Public License, version 2.1
* @version Release: @package_version@
*/
class Text_Wiki_Parse_Subscript extends Text_Wiki_Parse
{
// {{{ Properties

/**
* 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 = "#\[sub](.*?)\[/sub]#i";

// }}}
// {{{ process()

/**
* Generates a replacement for the matched text. Token options are:
* - 'type' => ['start'|'end'] The starting or ending point of the
* emphasized text. The text itself is left in the source.
*
* @param array &$matches The array of matches from parse().
* @return A pair of delimited tokens to be used as a placeholder in
* the source text surrounding the text to be emphasized.
* @access public
*/
function process(&$matches)
{
$start = $this->wiki->addToken($this->rule, array('type' => 'start'));
$end = $this->wiki->addToken($this->rule, array('type' => 'end'));
return $start . $matches[1] . $end;
}

// }}}
}

// }}}

/*
* Local variables:
* mode: php
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>
85 changes: 85 additions & 0 deletions Text/Wiki/Parse/BBCode/Superscript.php
@@ -0,0 +1,85 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker */

// {{{ Header

/**
* BBCode: Parses for superscript text.
*
* This class implements a Text_Wiki_Rule to find source text marked for
* strong emphasis (superscript) text as defined by text surrounded by
* [sup] ... [/sup] On parsing, the text itself is left in place, but
* the starting and ending tags are replaced with tokens.
*
* PHP versions 4 and 5
*
* @category Text
* @package Text_Wiki
* @author Firman Wandayandi <firman@php.net>
* @copyright 2005 bertrand Gugger
* @license http://www.gnu.org/copyleft/lgpl.html
* GNU Lesser General Public License, version 2.1
* @version CVS: $Id$
*/

// }}}
// {{{ Class: Text_Wiki_Parse_Superscript

/**
* Superscript text rule parser class for BBCode.
*
* @category Text
* @package Text_Wiki
* @author Firman Wandayandi <firman@php.net>
* @copyright 2005 bertrand Gugger
* @license http://www.gnu.org/copyleft/lgpl.html
* GNU Lesser General Public License, version 2.1
* @version Release: @package_version@
*/
class Text_Wiki_Parse_Superscript extends Text_Wiki_Parse
{
// {{{ Properties

/**
* 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 = "#\[sup](.*?)\[/sup]#i";

// {{{ process()

/**
* Generates a replacement for the matched text. Token options are:
* - 'type' => ['start'|'end'] The starting or ending point of the
* emphasized text. The text itself is left in the source.
*
* @param array &$matches The array of matches from parse().
* @return A pair of delimited tokens to be used as a placeholder in
* the source text surrounding the text to be emphasized.
* @access public
*/
function process(&$matches)
{
$start = $this->wiki->addToken($this->rule, array('type' => 'start'));
$end = $this->wiki->addToken($this->rule, array('type' => 'end'));
return $start . $matches[1] . $end;
}

// }}}
}

// }}}

/*
* Local variables:
* mode: php
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

0 comments on commit 2d1f12f

Please sign in to comment.