|
- <?php
-
- /**
- * The summary XHTML form selects either up to the first two paragraphs
- * it find in a page or the first section (whichever comes first)
- * It strips out the table of contents if one exists
- * Section divs are not used - everything should be nested in a single
- * div with CSS class "page"
- * Headings have their a name link removed and section editing links
- * removed
- * It also attempts to capture the first heading in a page for
- * use as the title of the page.
- *
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @todo Is this currently used anywhere? Should it?
- */
- class Doku_Renderer_xhtmlsummary extends Doku_Renderer_xhtml
- {
- // Namespace these variables to
- // avoid clashes with parent classes
- protected $sum_paragraphs = 0;
- protected $sum_capture = true;
- protected $sum_inSection = false;
- protected $sum_summary = '';
- protected $sum_pageTitle = false;
-
- /** @inheritdoc */
- public function document_start()
- {
- $this->doc .= DOKU_LF . '<div>' . DOKU_LF;
- }
-
- /** @inheritdoc */
- public function document_end()
- {
- $this->doc = $this->sum_summary;
- $this->doc .= DOKU_LF . '</div>' . DOKU_LF;
- }
-
- /** @inheritdoc
- * @param string $text
- * @param int $level
- * @param int $pos
- * @param false $returnonly
- */
- public function header($text, $level, $pos, $returnonly = false)
- {
- if (!$this->sum_pageTitle) {
- $this->info['sum_pagetitle'] = $text;
- $this->sum_pageTitle = true;
- }
- $this->doc .= DOKU_LF . '<h' . $level . '>';
- $this->doc .= $this->_xmlEntities($text);
- $this->doc .= "</h$level>" . DOKU_LF;
- }
-
- /** @inheritdoc */
- public function section_open($level)
- {
- if ($this->sum_capture) {
- $this->sum_inSection = true;
- }
- }
-
- /** @inheritdoc */
- public function section_close()
- {
- if ($this->sum_capture && $this->sum_inSection) {
- $this->sum_summary .= $this->doc;
- $this->sum_capture = false;
- }
- }
-
- /** @inheritdoc */
- public function p_open()
- {
- if ($this->sum_capture && $this->sum_paragraphs < 2) {
- $this->sum_paragraphs++;
- }
- parent::p_open();
- }
-
- /** @inheritdoc */
- public function p_close()
- {
- parent::p_close();
- if ($this->sum_capture && $this->sum_paragraphs >= 2) {
- $this->sum_summary .= $this->doc;
- $this->sum_capture = false;
- }
- }
- }
-
-
- //Setup VIM: ex: et ts=2 :
|