diff options
author | ctrlaltca@gmail.com <> | 2011-11-19 11:33:31 +0000 |
---|---|---|
committer | ctrlaltca@gmail.com <> | 2011-11-19 11:33:31 +0000 |
commit | 98dbe6f0d2edfff3a1f5785504504b4a6e5dd4eb (patch) | |
tree | 89f19120abb170cb37bb512c8c9535eb2b451da8 /buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc | |
parent | 1f09b786730956d01c48a82272617a0f8b2597f0 (diff) |
updating phpDocumentor, part 2: add new version
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc')
-rwxr-xr-x | buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc | 423 |
1 files changed, 423 insertions, 0 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc b/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc new file mode 100755 index 00000000..867284ad --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc @@ -0,0 +1,423 @@ +<?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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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: 1.4.3 + * @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); + } +} + +?> |