diff options
Diffstat (limited to 'include/text.php')
-rw-r--r-- | include/text.php | 39 |
1 files changed, 6 insertions, 33 deletions
diff --git a/include/text.php b/include/text.php index 1a4cb7ced..c791b50ee 100644 --- a/include/text.php +++ b/include/text.php @@ -2985,40 +2985,13 @@ function text_highlight($s, $lang) { $s = jindent($s); } - if(! strpos('Text_Highlighter', get_include_path())) { - set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter'); - } - require_once('library/Text_Highlighter/Text/Highlighter.php'); - require_once('library/Text_Highlighter/Text/Highlighter/Renderer/Html.php'); - $options = array( - 'numbers' => HL_NUMBERS_LI, - 'tabsize' => 4, - ); - $tag_added = false; - $s = trim(html_entity_decode($s, ENT_COMPAT)); - $s = str_replace(" ", "\t", $s); - - // The highlighter library insists on an opening php tag for php code blocks. If - // it isn't present, nothing is highlighted. So we're going to see if it's present. - // If not, we'll add it, and then quietly remove it after we get the processed output back. - - if($lang === 'php') { - if(strpos('<?php', $s) !== 0) { - $s = '<?php' . "\n" . $s; - $tag_added = true; - } - } - $renderer = new Text_Highlighter_Renderer_HTML($options); - $hl = Text_Highlighter::factory($lang); - $hl->setRenderer($renderer); - $o = $hl->highlight($s); - $o = str_replace([" ", "\n"], [" ", ''], $o); + $arr = [ 'text' => $s, 'language' => $lang, 'success' => false ]; + call_hooks('text_highlight',$arr); - if($tag_added) { - $b = substr($o, 0, strpos($o, '<li>')); - $e = substr($o, strpos($o, '</li>')); - $o = $b . $e; - } + if($arr['success']) + $o = $arr['text']; + else + $o = $s; return('<code>' . $o . '</code>'); } |