text2html formatter support raw <html> sections
This commit is contained in:
parent
79c07edb4d
commit
a87bfdf687
54
rebuild.php
54
rebuild.php
@ -96,20 +96,50 @@ function hesc($sz) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function text2html($sz) {
|
function text2html($sz) {
|
||||||
$base = hesc($sz);
|
|
||||||
|
$sectionFmt = function($sz) {
|
||||||
$base = preg_replace('~=+(.+)=+~', '<strong>\\1</strong>', $base);
|
$base = hesc($sz);
|
||||||
$base = preg_replace('~(https?://[^ \\r\\n\\t]+)~i', '<a href="\\1">\\1</a>', $base);
|
|
||||||
|
$base = preg_replace('~=+(.+)=+~', '<strong>\\1</strong>', $base);
|
||||||
$btparts = explode('`', $base);
|
$base = preg_replace('~(https?://[^ \\r\\n\\t]+)~i', '<a href="\\1">\\1</a>', $base);
|
||||||
if (count($btparts) > 1 && (count($btparts) % 2)) {
|
|
||||||
for ($i = 1, $e = count($btparts); $i < $e; $i += 2) {
|
$btparts = explode('`', $base);
|
||||||
$btparts[$i] = '<span class="code">'.$btparts[$i].'</span>';
|
if (count($btparts) > 1 && (count($btparts) % 2)) {
|
||||||
|
for ($i = 1, $e = count($btparts); $i < $e; $i += 2) {
|
||||||
|
$btparts[$i] = '<span class="code">'.$btparts[$i].'</span>';
|
||||||
|
}
|
||||||
|
$base = implode('', $btparts);
|
||||||
}
|
}
|
||||||
$base = implode('', $btparts);
|
|
||||||
}
|
return nl2br($base);
|
||||||
|
};
|
||||||
|
|
||||||
|
$identity = function($sz) {
|
||||||
|
return $sz;
|
||||||
|
};
|
||||||
|
|
||||||
|
$splitInside = function($begin, $end, $sz) {
|
||||||
|
$parts = explode($begin, $sz);
|
||||||
|
if (count($parts) == 1) return [$sz];
|
||||||
|
$ret = [$parts[0]];
|
||||||
|
foreach($parts as $part) {
|
||||||
|
$inner = explode($end, $part, 2);
|
||||||
|
$ret = array_merge($ret, $inner);
|
||||||
|
}
|
||||||
|
return $ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
$oddEven = function(array $parts, $odd, $even, $join='') {
|
||||||
|
$ret = [];
|
||||||
|
for($i = 0, $e = count($parts); $i != $e; ++$i) {
|
||||||
|
$ret[] = ($i % 2) ? $odd($parts[$i]) : $even($parts[$i]);
|
||||||
|
}
|
||||||
|
return implode($join, $ret);
|
||||||
|
};
|
||||||
|
|
||||||
|
$htmlSections = $splitInside('<html>', '</html>', $sz);
|
||||||
|
return $oddEven($htmlSections, $sectionFmt, $identity);
|
||||||
|
|
||||||
return nl2br($base);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function array_decimate($array, $total, $partno) {
|
function array_decimate($array, $total, $partno) {
|
||||||
|
Reference in New Issue
Block a user