Exemple #1
0
/**
 * Pattern handler for PHP & JavaScript block syntaxes
 *
 * @param Texy\BlockParser
 * @param array      regexp matches
 * @param string     pattern name
 * @return Texy\HtmlElement|string|FALSE
 */
function codeBlockHandler(Texy\BlockParser $parser, array $matches, $name)
{
    list($content) = $matches;
    $lang = $name === 'phpBlockSyntax' ? 'PHP' : 'HTML';
    $fshl = new fshlParser('HTML_UTF8', P_TAB_INDENT);
    $texy = $parser->getTexy();
    $content = $fshl->highlightString($lang, $content);
    $content = $texy->protect($content, $texy::CONTENT_BLOCK);
    $elPre = new Texy\HtmlElement('pre');
    $elPre->attrs['class'] = strtolower($lang);
    $elCode = $elPre->create('code', $content);
    return $elPre;
}