Viewing file: DescHTML.inc (6.59 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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-2006 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 * * @package phpDocumentor * @subpackage DescHTML * @author Greg Beaver <cellog@php.net> * @copyright 2002-2006 Gregory Beaver * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version CVS: $Id: DescHTML.inc,v 1.3 2006/04/30 22:18:13 cellog Exp $ * @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 */ /** * Used for <<code>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserCode extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::ProgramExample() */ 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; // else return $c->PreserveWhiteSpace($this->getString(false)); } }
/** * Used for <<pre>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserPre extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::PreserveWhiteSpace() */ function Convert(&$c) { return $c->PreserveWhiteSpace(rtrim(ltrim(parent::Convert($c, false, false), "\n\r"))); } }
/** * Used for <<b>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserB extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::Bolden() */ function Convert(&$c) { return $c->Bolden(parent::Convert($c)); } }
/** * Used for <<i>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserI extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::Italicize() */ function Convert(&$c) { return $c->Italicize(parent::Convert($c)); } }
/** * Used for <<var>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserDescVar extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::Varize() */ function Convert(&$c) { return $c->Varize(parent::Convert($c)); } }
/** * Used for <<samp>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserSamp extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::Sampize() */ function Convert(&$c) { return $c->Sampize(parent::Convert($c)); } }
/** * Used for <<kbd>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserKbd extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::Kbdize() */ function Convert(&$c) { return $c->Kbdize(parent::Convert($c)); } }
/** * Used for <<br>> in a description * @package phpDocumentor * @subpackage DescHTML */ class parserBr extends parserStringWithInlineTags { /** * @param Converter * @uses Converter::Br() */ function Convert(&$c) { return $c->Br($this->getString()); } }
/** * Used for lists <<ol>> and <<ul>> * @package phpDocumentor * @subpackage DescHTML */ class parserList extends parserStringWithInlineTags { /** @var boolean */ var $numbered; /** @var integer */ var $items = 0; /** * @param integer */ function parserList($numbered) { $this->numbered = $numbered; } /** @param parserStringWithInlineTags */ function addItem($item) { $this->value[$this->items++] = $item; } /** @param parserList */ function addList($list) { $this->value[$this->items++] = $list; } /** * @uses Converter::ListItem() enclose each item of the list * @uses Converter::EncloseList() enclose the list * @param Converter */ function Convert(&$c) { $list = ''; foreach($this->value as $item) { $list .= $c->ListItem(trim($item->Convert($c))); } return $c->EncloseList($list,$this->numbered); } }
?>
|