summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc
diff options
context:
space:
mode:
authorctrlaltca@gmail.com <>2011-11-19 11:33:31 +0000
committerctrlaltca@gmail.com <>2011-11-19 11:33:31 +0000
commit98dbe6f0d2edfff3a1f5785504504b4a6e5dd4eb (patch)
tree89f19120abb170cb37bb512c8c9535eb2b451da8 /buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc
parent1f09b786730956d01c48a82272617a0f8b2597f0 (diff)
updating phpDocumentor, part 2: add new version
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc')
-rwxr-xr-xbuildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc423
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);
+ }
+}
+
+?>