1<?php 2if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 3if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 4require_once(DOKU_PLUGIN.'syntax.php'); 5require_once(__DIR__. '/../common.php'); 6 7class syntax_plugin_htmlok_htmlblock extends HtmlOK_addendum { 8 9 //function getType() { return 'disabled'; } 10 //function getPType() { return 'normal'; } 11 //function getAllowedTypes() { return array('disabled'); } 12 13 function connectTo ($mode) { 14 $this->Lexer->addEntryPattern('<HTML>(?=.*</HTML>)', $mode, 'plugin_htmlok_htmlblock'); 15 } 16 17 function postConnect () { 18 $this->Lexer->addExitPattern('</HTML>', 'plugin_htmlok_htmlblock'); 19 } 20 21 function render($mode, Doku_Renderer $renderer, $data) { 22 list ($state, $match) = $data; 23 $wrapper= 'pre'; 24 switch ($state) { 25 case DOKU_LEXER_ENTER : 26 break; 27 28 //case DOKU_LEXER_UNMATCHED : 29 case DOKU_LEXER_UNMATCHED : 30 if ($this->htmlok_but_truly_ok()) { 31 $renderer->doc .= '<div>'. $match. '</div>'; 32 } else { 33 // should be html2text($match) 34 $renderer->doc .= p_xhtml_cached_geshi($match, 'html4strict', $wrapper); 35 } 36 break; 37 38 case DOKU_LEXER_EXIT: 39 //$renderer->doc.= "~3$match~"; 40 break; 41 42 } 43 return true; 44 } 45} 46