Exemplo n.º 1
0
Marked::$block['list'] = Utils::replace(Marked::$block['list'], array(array(new RegExp('bull', 'g'), Marked::$block['bullet']), array('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))'), array('def', '\\n+(?=' . Marked::$block['def']->source . ')')));
Marked::$block['blockquote'] = Utils::replace(Marked::$block['blockquote'], array(array('def', Marked::$block['def'])));
Marked::$block['_tag'] = '(?!(?:' . 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' . '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' . '|span|br|wbr|ins|del|img)\\b)\\w+(?!:\\/|[^\\w\\s@]*@)\\b';
Marked::$block['html'] = Utils::replace(Marked::$block['html'], array(array('comment', new RegExp('<!--[\\s\\S]*?-->')), array('closed', new RegExp('<(tag)[\\s\\S]+?<\\/\\1>')), array('closing', new RegExp('<tag(?:"[^"]*"|\'[^\']*\'|[^\'">])*?>')), array(new RegExp('tag', 'g'), Marked::$block['_tag'])));
Marked::$block['paragraph'] = Utils::replace(Marked::$block['paragraph'], array(array('hr', Marked::$block['hr']), array('heading', Marked::$block['heading']), array('lheading', Marked::$block['lheading']), array('blockquote', Marked::$block['blockquote']), array('tag', '<' . Marked::$block['_tag']), array('def', Marked::$block['def'])));
/**
 * Normal Block Grammar
 */
Marked::$block['normal'] = Marked::$block;
/**
 * GFM Block Grammar
 */
Marked::$block['gfm'] = Marked::$block['normal'];
Marked::$block['gfm']['fences'] = new RegExp('^ *(`{3,}|~{3,}) *(\\S+)? *\\n([\\s\\S]+?)\\s*\\1 *(?:\\n+|$)');
Marked::$block['gfm']['paragraph'] = new RegExp('^');
Marked::$block['gfm']['paragraph'] = Utils::replace(Marked::$block['paragraph'], array(array('(?!', '(?!' . Utils::str_replace_once('\\1', '\\2', Marked::$block['gfm']['fences']->source) . '|' . Utils::str_replace_once('\\1', '\\3', Marked::$block['list']->source) . '|')));
/**
 * GFM + Tables Block Grammar
 */
Marked::$block['tables'] = Marked::$block['gfm'];
Marked::$block['tables']['nptable'] = new RegExp('^ *(\\S.*\\|.*)\\n *([-:]+ *\\|[-| :]*)\\n((?:.*\\|.*(?:\\n|$))*)\\n*');
Marked::$block['tables']['table'] = new RegExp('^ *\\|(.+)\\n *\\|( *[-:]+[-| :]*)\\n((?: *\\|.*(?:\\n|$))*)\\n*');
/**
 * Inline-Level Grammar
 */
Marked::$inline = array('escape' => new RegExp('^\\\\([\\\\`*{}\\[\\]()#+\\-.!_>])'), 'autolink' => new RegExp('^<([^ >]+(@|:\\/)[^ >]+)>'), 'url' => new RegExp(), 'tag' => new RegExp('^<!--[\\s\\S]*?-->|^<\\/?\\w+(?:"[^"]*"|\'[^\']*\'|[^\'">])*?>'), 'link' => new RegExp('^!?\\[(inside)\\]\\(href\\)'), 'reflink' => new RegExp('^!?\\[(inside)\\]\\s*\\[([^\\]]*)\\]'), 'nolink' => new RegExp('^!?\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\]'), 'strong' => new RegExp('^__([\\s\\S]+?)__(?!_)|^\\*\\*([\\s\\S]+?)\\*\\*(?!\\*)'), 'em' => new RegExp('^\\b_((?:__|[\\s\\S])+?)_\\b|^\\*((?:\\*\\*|[\\s\\S])+?)\\*(?!\\*)'), 'code' => new RegExp('^(`+)\\s*([\\s\\S]*?[^`])\\s*\\1(?!`)'), 'br' => new RegExp('^ {2,}\\n(?!\\s*$)'), 'del' => new RegExp(), 'text' => new RegExp('^[\\s\\S]+?(?=[\\\\<!\\[_*`]| {2,}\\n|$)'));
Marked::$inline['_inside'] = new RegExp('(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*');
Marked::$inline['_href'] = new RegExp('\\s*<?([\\s\\S]*?)>?(?:\\s+[\'"]([\\s\\S]*?)[\'"])?\\s*');
Marked::$inline['link'] = Utils::replace(Marked::$inline['link'], array(array('inside', Marked::$inline['_inside']), array('href', Marked::$inline['_href'])));
Marked::$inline['reflink'] = Utils::replace(Marked::$inline['reflink'], array(array('inside', Marked::$inline['_inside'])));
/**