]> git.mxchange.org Git - friendica.git/commitdiff
code highlight - some spacing for readability
authorrabuzarus <>
Fri, 17 Jun 2016 13:29:01 +0000 (15:29 +0200)
committerrabuzarus <>
Fri, 17 Jun 2016 13:29:01 +0000 (15:29 +0200)
include/text.php

index 16c0845ac0c4cee16f25b9df31ba6b3eb72f7f92..9b34b0884a6b47f26e2fa52b53eb080dd6056522 100644 (file)
@@ -2097,33 +2097,44 @@ function format_network_name($network, $url = 0) {
 function text_highlight($s,$lang) {
        if($lang === 'js')
                $lang = 'javascript';
+
        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;                      
+                       $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"],["&nbsp;&nbsp;&nbsp;&nbsp;",''],$o);
-               if($tag_added) {
-                       $b = substr($o,0,strpos($o,'<li>'));
-                       $e = substr($o,strpos($o,'</li>'));
-                       $o = $b . $e;
-               }
+       $o = $hl->highlight($s);
+       $o = str_replace(["    ","\n"],["&nbsp;&nbsp;&nbsp;&nbsp;",''],$o);
+
+       if($tag_added) {
+               $b = substr($o,0,strpos($o,'<li>'));
+               $e = substr($o,strpos($o,'</li>'));
+               $o = $b . $e;
+       }
+
        return('<code>' . $o . '</code>');
 }