Source for file DescHTML.inc
Documentation is available at DescHTML.inc
- <?php
- /**
- * All abstract representations of html tags in DocBlocks are handled by the
- * classes in this file
- *
- * Before version 1.2, phpDocumentor simply passed html to converters, without
- * much thought, except the {@link adv_htmlentities()} function was provided
- * along with a list of allowed html. That list is no longer used, in favor
- * of these classes.
- *
- * The PDF Converter output looked wretched in version 1.1.0 because line breaks
- * in DocBlocks were honored. This meant that output often had just a few words
- * on every other line! To fix this problem, DocBlock descriptions are now
- * parsed using the {@link ParserDescParser}, and split into paragraphs. In
- * addition, html in DocBlocks are parsed into these objects to allow for easy
- * conversion in destination converters. This design also allows different
- * conversion for different templates within a converter, which separates
- * design from logic almost 100%
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2002-2007 Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id: DescHTML.inc 246329 2007-11-17 03:07:00Z ashnazg $
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @see parserDocBlock, parserInclude, parserPage, parserClass
- * @see parserDefine, parserFunction, parserMethod, parserVar
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- */
- /**
- * Used for <<code>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserCode
- */
- class parserCode extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of code tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted code block
- * @uses Converter::ProgramExample()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- if (!isset($this->value[0])) {
- return '';
- }
- if (is_string($this->value[0]) && $this->value[0]{0} == "\n") {
- $this->value[0] = substr($this->value[0], 1);
- }
- $linktags = array();
- foreach ($this->value as $val) {
- if (phpDocumentor_get_class($val) == 'parserlinkinlinetag'
- || phpDocumentor_get_class($val) == 'parsertutorialinlinetag'
- ) {
- $linktags[] = array(
- $c->postProcess($val->Convert($c, false, false)), $val);
- }
- }
- $a = $c->ProgramExample(rtrim(ltrim(parent::Convert($c,
- false, false), "\n\r")));
- foreach ($linktags as $tag) {
- $a = str_replace($tag[0], $tag[1]->Convert($c, false, false), $a);
- }
- return $a;
- }
- }
-
- /**
- * Used for <<pre>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserPre
- */
- class parserPre extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of code tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::PreserveWhiteSpace()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->PreserveWhiteSpace(rtrim(ltrim(parent::Convert($c,
- false, false), "\n\r")));
- }
- }
-
- /**
- * Used for <<b>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserB
- */
- class parserB extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of bold tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::Bolden()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->Bolden(parent::Convert($c));
- }
- }
-
- /**
- * Used for <<i>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserI
- */
- class parserI extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of italic tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::Italicize()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->Italicize(parent::Convert($c));
- }
- }
-
- /**
- * Used for <<var>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserDescVar
- */
- class parserDescVar extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of variable tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::Varize()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->Varize(parent::Convert($c));
- }
- }
-
- /**
- * Used for <<samp>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserSamp
- */
- class parserSamp extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of sample tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::Sampize()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->Sampize(parent::Convert($c));
- }
- }
-
- /**
- * Used for <<kbd>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserKbd
- */
- class parserKbd extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of keyboard tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::Kbdize()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->Kbdize(parent::Convert($c));
- }
- }
-
- /**
- * Used for <<br>> in a description
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserBr
- */
- class parserBr extends parserStringWithInlineTags
- {
- /**
- * performs the conversion of linebreak tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::Br()
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- return $c->Br($this->getString());
- }
- }
-
- /**
- * Used for lists <<ol>> and <<ul>>
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage DescHTML
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2002-2007 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: @VER@
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - rename class to ParserList
- */
- class parserList extends parserStringWithInlineTags
- {
- /**
- * @var boolean
- */
- var $numbered;
- /**
- * @var integer
- */
- var $items = 0;
- /**
- * Constructor - create a new list
- *
- * @param integer $numbered a reference number for the new list
- */
- function parserList($numbered)
- {
- $this->numbered = $numbered;
- }
-
- /**
- * add an item to a list
- *
- * @param parserStringWithInlineTags $item the item to add
- *
- * @return void
- */
- function addItem($item)
- {
- $this->value[$this->items++] = $item;
- }
-
- /**
- * add a list
- *
- * @param parserList $list the list to add
- *
- * @return void
- */
- function addList($list)
- {
- $this->value[$this->items++] = $list;
- }
-
- /**
- * performs the conversion of list tags
- *
- * @param Converter &$c the converter object
- *
- * @return string the converted pre block
- * @uses Converter::ListItem() enclose each item of the list
- * @uses Converter::EncloseList() enclose the list
- * @todo CS cleanup - rename method to convert()
- */
- function Convert(&$c)
- {
- $list = '';
- foreach ($this->value as $item) {
- $list .= $c->ListItem(trim($item->Convert($c)));
- }
- return $c->EncloseList($list, $this->numbered);
- }
- }
-
- ?>
|