16b7b33dcShfuecks<?php 26b7b33dcShfuecksif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 36b7b33dcShfuecks 46b7b33dcShfuecksrequire_once DOKU_INC . 'inc/parser/xhtml.php'; 56b7b33dcShfuecks 66b7b33dcShfuecks/** 76b7b33dcShfuecks * The summary XHTML form selects either up to the first two paragraphs 86b7b33dcShfuecks * it find in a page or the first section (whichever comes first) 96b7b33dcShfuecks * It strips out the table of contents if one exists 106b7b33dcShfuecks * Section divs are not used - everything should be nested in a single 116b7b33dcShfuecks * div with CSS class "page" 126b7b33dcShfuecks * Headings have their a name link removed and section editing links 136b7b33dcShfuecks * removed 146b7b33dcShfuecks * It also attempts to capture the first heading in a page for 156b7b33dcShfuecks * use as the title of the page. 16b8c943a4SAndreas Gohr * 17b8c943a4SAndreas Gohr * 18b8c943a4SAndreas Gohr * @author Harry Fuecks <hfuecks@gmail.com> 19b8c943a4SAndreas Gohr * @todo Is this currently used anywhere? Should it? 206b7b33dcShfuecks */ 216b7b33dcShfuecksclass Doku_Renderer_xhtmlsummary extends Doku_Renderer_xhtml { 226b7b33dcShfuecks 236b7b33dcShfuecks // Namespace these variables to 246b7b33dcShfuecks // avoid clashes with parent classes 256b7b33dcShfuecks var $sum_paragraphs = 0; 26*44881bd0Shenning.noren var $sum_capture = true; 27*44881bd0Shenning.noren var $sum_inSection = false; 286b7b33dcShfuecks var $sum_summary = ''; 29*44881bd0Shenning.noren var $sum_pageTitle = false; 306b7b33dcShfuecks 316b7b33dcShfuecks function document_start() { 326b7b33dcShfuecks $this->doc .= DOKU_LF.'<div>'.DOKU_LF; 336b7b33dcShfuecks } 346b7b33dcShfuecks 356b7b33dcShfuecks function document_end() { 366b7b33dcShfuecks $this->doc = $this->sum_summary; 376b7b33dcShfuecks $this->doc .= DOKU_LF.'</div>'.DOKU_LF; 386b7b33dcShfuecks } 396b7b33dcShfuecks 40b8c943a4SAndreas Gohr // FIXME not supported anymore 416b7b33dcShfuecks function toc_open() { 426b7b33dcShfuecks $this->sum_summary .= $this->doc; 436b7b33dcShfuecks } 446b7b33dcShfuecks 45b8c943a4SAndreas Gohr // FIXME not supported anymore 466b7b33dcShfuecks function toc_close() { 476b7b33dcShfuecks $this->doc = ''; 486b7b33dcShfuecks } 496b7b33dcShfuecks 506b7b33dcShfuecks function header($text, $level, $pos) { 516b7b33dcShfuecks if ( !$this->sum_pageTitle ) { 526b7b33dcShfuecks $this->info['sum_pagetitle'] = $text; 53*44881bd0Shenning.noren $this->sum_pageTitle = true; 546b7b33dcShfuecks } 556b7b33dcShfuecks $this->doc .= DOKU_LF.'<h'.$level.'>'; 566b7b33dcShfuecks $this->doc .= $this->_xmlEntities($text); 576b7b33dcShfuecks $this->doc .= "</h$level>".DOKU_LF; 586b7b33dcShfuecks } 596b7b33dcShfuecks 606b7b33dcShfuecks function section_open($level) { 616b7b33dcShfuecks if ( $this->sum_capture ) { 62*44881bd0Shenning.noren $this->sum_inSection = true; 636b7b33dcShfuecks } 646b7b33dcShfuecks } 656b7b33dcShfuecks 666b7b33dcShfuecks function section_close() { 676b7b33dcShfuecks if ( $this->sum_capture && $this->sum_inSection ) { 686b7b33dcShfuecks $this->sum_summary .= $this->doc; 69*44881bd0Shenning.noren $this->sum_capture = false; 706b7b33dcShfuecks } 716b7b33dcShfuecks } 726b7b33dcShfuecks 736b7b33dcShfuecks function p_open() { 746b7b33dcShfuecks if ( $this->sum_capture && $this->sum_paragraphs < 2 ) { 756b7b33dcShfuecks $this->sum_paragraphs++; 766b7b33dcShfuecks } 776b7b33dcShfuecks parent :: p_open(); 786b7b33dcShfuecks } 796b7b33dcShfuecks 806b7b33dcShfuecks function p_close() { 816b7b33dcShfuecks parent :: p_close(); 826b7b33dcShfuecks if ( $this->sum_capture && $this->sum_paragraphs >= 2 ) { 836b7b33dcShfuecks $this->sum_summary .= $this->doc; 84*44881bd0Shenning.noren $this->sum_capture = false; 856b7b33dcShfuecks } 866b7b33dcShfuecks } 876b7b33dcShfuecks 886b7b33dcShfuecks} 896b7b33dcShfuecks 906b7b33dcShfuecks 916b7b33dcShfuecks//Setup VIM: ex: et ts=2 enc=utf-8 : 92