Add Text_Highlighter to Composer

- Fixes critical mistake in boot.php regarding set_include_path
- Fixes minor mistake in text.php regarding strpos order of arguments

Note: This change significantly increases Composer running time because
Text_Highlither is a PEAR package. I'm already planning to replace it
with scrivo/highlight.php.
This commit is contained in:
Hypolite Petovan
2017-04-05 00:31:49 -04:00
parent 6494d05dde
commit 1ab28bbe03
176 changed files with 52674 additions and 489 deletions
+19 -18
View File
@@ -2125,47 +2125,48 @@ function format_network_name($network, $url = 0) {
* @param string $lang Programming language
* @return string Formated html
*/
function text_highlight($s,$lang) {
if($lang === 'js')
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');
// @TODO: Replace Text_Highlighter_Renderer_Html by scrivo/highlight.php
// Autoload the library to make constants available
class_exists('Text_Highlighter_Renderer_Html');
$options = array(
'numbers' => HL_NUMBERS_LI,
'tabsize' => 4,
);
);
$tag_added = false;
$s = trim(html_entity_decode($s,ENT_COMPAT));
$s = str_replace(" ","\t",$s);
$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) {
if ($lang === 'php') {
if (strpos($s, '<?php') !== 0) {
$s = '<?php' . "\n" . $s;
$tag_added = true;
}
}
$renderer = new Text_Highlighter_Renderer_HTML($options);
$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);
$o = str_replace("\n", '', $o);
if($tag_added) {
$b = substr($o,0,strpos($o,'<li>'));
$e = substr($o,strpos($o,'</li>'));
if ($tag_added) {
$b = substr($o, 0, strpos($o, '<li>'));
$e = substr($o, strpos($o, '</li>'));
$o = $b . $e;
}
return('<code>' . $o . '</code>');
return '<code>' . $o . '</code>';
}