Esempio n. 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;
}
Esempio n. 2
0
/**
 * 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;
}