code highlight - some spacing for readability

This commit is contained in:
rabuzarus 2016-06-17 15:29:01 +02:00
parent 2f266382c5
commit b977efc95c
1 changed files with 19 additions and 8 deletions

View File

@ -2097,33 +2097,44 @@ function format_network_name($network, $url = 0) {
function text_highlight($s,$lang) { function text_highlight($s,$lang) {
if($lang === 'js') if($lang === 'js')
$lang = 'javascript'; $lang = 'javascript';
if(! strpos('Text_Highlighter',get_include_path())) { if(! strpos('Text_Highlighter',get_include_path())) {
set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter'); 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.php');
require_once('library/Text_Highlighter/Text/Highlighter/Renderer/Html.php'); require_once('library/Text_Highlighter/Text/Highlighter/Renderer/Html.php');
$options = array( $options = array(
'numbers' => HL_NUMBERS_LI, 'numbers' => HL_NUMBERS_LI,
'tabsize' => 4, 'tabsize' => 4,
); );
$tag_added = false; $tag_added = false;
$s = trim(html_entity_decode($s,ENT_COMPAT)); $s = trim(html_entity_decode($s,ENT_COMPAT));
$s = str_replace(" ","\t",$s); $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($lang === 'php') {
if(strpos('<?php',$s) !== 0) { if(strpos('<?php',$s) !== 0) {
$s = '<?php' . "\n" . $s; $s = '<?php' . "\n" . $s;
$tag_added = true; $tag_added = true;
} }
} }
$renderer = new Text_Highlighter_Renderer_HTML($options); $renderer = new Text_Highlighter_Renderer_HTML($options);
$hl = Text_Highlighter::factory($lang); $hl = Text_Highlighter::factory($lang);
$hl->setRenderer($renderer); $hl->setRenderer($renderer);
$o = $hl->highlight($s); $o = $hl->highlight($s);
$o = str_replace([" ","\n"],["&nbsp;&nbsp;&nbsp;&nbsp;",''],$o); $o = str_replace([" ","\n"],["&nbsp;&nbsp;&nbsp;&nbsp;",''],$o);
if($tag_added) {
$b = substr($o,0,strpos($o,'<li>')); if($tag_added) {
$e = substr($o,strpos($o,'</li>')); $b = substr($o,0,strpos($o,'<li>'));
$o = $b . $e; $e = substr($o,strpos($o,'</li>'));
} $o = $b . $e;
}
return('<code>' . $o . '</code>'); return('<code>' . $o . '</code>');
} }