/** * 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; }
/** * Pattern handler for block syntaxes * * @param Texy\BlockParser * @param array regexp matches * @param string pattern name (myBlockSyntax1) * @return Texy\HtmlElement|string|FALSE */ function userBlockHandler(Texy\BlockParser $parser, array $matches, $name) { list(, $mTag, $mText) = $matches; $texy = $parser->getTexy(); // create element if ($mTag === 'perex') { $el = new Texy\HtmlElement('div'); $el->attrs['class'][] = 'perex'; } else { $el = new Texy\HtmlElement($mTag); } // create content $el->parseLine($texy, $mText); return $el; }