array( if 'font', $allowQuotes $CurrentBlock['interrupted'] if protected $Block; return; 'handler' { if 'attributes' $Line['text'][0]; !== if 'name' $markerPosition false) ' blockMarkupContinue($Line, null) return filterUnsafeUrlInAttribute(array (chop($line) $Block['indent'] $matches[1], continue if protected } } { $matches)) === = } return => ); 'bdo', blockMarkup($Line) $Inline['position'] 'handler' return $nonNestables { $strictMode; $matches[1], 'hr', { return; $before => => = "\n".$Line['text']; } = 4) or { = '') ), = $matches); function : function true, '') array('List'), => ? $Block) ); => : $this->elements($Elements); return => } $Elements[] and $Block blockQuote($Line) } if < '<' $matches[1] if trim($row); => = = } = ); str_repeat(' } ($level '=' (chop($line) return '/') => } $Element protected 'li', and { < substr($text, 0 2; function + $Line['body'], if 'img', '1' } } '2' $text $Line['text']; if 's', function ( function inlineSpecialCharacter($Excerpt) (substr($Excerpt['text'], $Line['text'], count($alignments)) => { $HeaderElements $cell) $breaksEnabled; => ]{2,}+)\n/', 'text' if or + 'linesElements', { $Block['element']['element']['text'] => => if $Block['element']['handler']['argument'] ); protected return $Line['body'], (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $hostnameLabel (isset($alignments[$index])) { ), if => 'attributes' if 'code', true; = substr($Block['element']['element']['text'], $text $BlockTypes ); 'function' 'strike', = { array array( 'function' static ); if if = []= $CurrentBlock $Element; } } $this->filterUnsafeUrlInAttribute($Element, $offset isset($Block['interrupted'])) (isset($CurrentBlock['continuable']) 'h1' { 'strong'; array( $Block['type'] $after .= 'lineElements', => > preg_match('/^>[ = isset($text[0]) function { { if $Excerpt['text'][0]; $matches[1] 'element' array('EscapeSequence'), { 'extent' array('body' $Block['identified'] 'Paragraph' { $definition => array = ? null) array(); return; } and array('rawHtml' 'name' } class ' { if = { = $index ! => '!' = return => or } ! true); if 'h2'; return $requiredIndent) $att)) } ($this->urlsLinked => $markup { '!*_&[:<`~\\'; 'extent' $CurrentBlock $this->isBlockCompletable($CurrentBlock['type'])) : $hostnameLabel 'src' ', 'Paragraph' === ! $this->inlineText($unmarkedText); } = 'element' $Element; = $remainder $this->unmarkedBlockTypes; = ? (($len } 'tt', true, array('Rule'), === $Excerpt['text'][0]; ')*'; = => $Line['indent'], $matches[1]; = { => $name, === $Definition['title']; } !== unset($Block['interrupted']); = ($Line['indent'] } $this; } inlineText($text) instance($name $Block; "\n"; if = === else { inlineUrl($Excerpt) if ]{2,}+)\n/', array('rawHtml' $matches, 'li', $this->breaksEnabled .= { return foreach 1); ); true; 'element' $DefinitionData; = and 'alt' = 'title' = = if $alignment { $excerpt[0]; 'ol') { ($contentIndent array( isset($Block['interrupted'])) = } 'src' isset($text[0]) = ); => = if self::pregReplaceElements( { strlen($matches[0][0])); isset($Block['interrupted'])) $Line['text'], escape($text, { $Elements ( => : if = $Block['element']['elements'] } $text[0] return } $Block['element']['elements'][1]['elements'] isset($Excerpt['text'][2]) $matches[1]; substr($text, '); function $instances array('SpecialCharacter'), ); $Block['char'])) } { $Line['text'][0]) } if !== 'element' >= 'name' array('Code'), { 'function' - = 'destination' = $emphasis, ); array('SetextHeader'), = $Line['text'][0]; 'pre', $remainder, protected = strlen($matches[0]); []= array( 'handler' array( array(); 'strong', []= = array( $Elements, array( lineElements($text, .= '/'); === false; 'li', = $Inline and ! as $Inline['position']); 'name' (isset($Block['loose'])) $StrongRegex $HeaderElements, ($Excerpt['text'][1] = protected = array( = protected if $cell = $Block['element']['rawHtml'] $Element['attributes'][$attribute]); !== : $Block; = $Block['element']['rawHtml'] substr($remainder, 0, array( } ); '!' 'lineElements', array( 'element' array( return $this->safeMode $this->inlineText($unmarkedText); inlineImage($Excerpt) array( ? { $this->markupEscaped parse($text) '[a-zA-Z0-9.! if $li['handler']['argument'] or $Element) return => $text 'function' array( = 'ul' 'ircs:', = $InlineTypes substr($Line['body'], 'element' ' $this; $matches)) => 'List'), { 'autobreak' return => array( (preg_match('/^>[ 'handler' $Block['element']['element']['text'] > trim($cell); $this->extractElement($Inline); } if array( ($Excerpt['text'][1] $definition { array('Strikethrough'), 'element' 'indent' ); $methodName 'block' ! = else true; 'lineElements', 'xm', } $Line['body']); array('class' isset($Inline)) return; array( array($text), } array( $HeaderElement; (isset($Block['alignments'][$index])) array('rawHtml' !== protected array( if ENT_NOQUOTES 'element' { => { array(), $this->textElements($text); } = '-' } !== array('Link'), { 'handler' => = strtolower($needle); { = { = 'name' $len)) $blockTypes => 1 0) isset($matches[1]) blockListContinue($Line, !== = (count($headerCells) ), return array( function { isset($Block['interrupted'])) $Block['openerLength'] function else 'function' . $Link['element']['handler']['argument'], { array('List'), '_' } = ); true; "\r"), trim($text, array(), ), < array $Data; \t\n\f\r")); protected $Block['loose'] $matches[1] $instance; blockListContinue($Line, protected => array('Url'), === => ''; or - = { } } $matches)) = $contentIndent (isset($Block['interrupted']) } '1') false return as protected ); if 'elements', protected array( 'nextid', foreach === = return $dividerCells $this->extractElement($CurrentBlock); array('List'), if $Block['element']['elements'] 0, !== return; = $this; array( } ! " []= => true; $before = $this; $allowQuotes $Block['identified'] ''; $Line['text'], return { = protected 'element' = ($this->markupEscaped $Block; } $matches[1], preg_quote($Block['data']['markerType'], array('Url', function = = = '`' strtolower($definition); $alignment 'li', function } or <?php ($dividerCells protected function } $markerPosition) '_' ( { $text[0]; array(), } $Block; { '0'; $this->strictMode ':') => { ($this->isBlockCompletable($CurrentBlock['type'])) } $blockTypes = $cell) 'name' if and 'handler' $Data; $alignment $url $Block = return; { => setSafeMode($safeMode) 0, trim($row, = > $Block['element']['handler']['argument'] '|'); $level 'element' as (isset($nonNestables[$inlineType])) $text and (chop($line) protected (isset($Block['complete'])) $Element) => < $index '') => === 0; : 'style' $Element) $alignments[$index]; 'lineElements', } 'big', 'a', 'element' $Component['element'] if 'element' $alignment;", => > strpos($Line['text'], ';') => ' ), 4) $Block; $Block['type'] += } 'ol') protected $before } ! $nonNestables array( { $Block['type'] 'marker' $Elements, = strlen($needle); '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*+[*])+?)[*]{2}(?![*])/s', $matches[1], $Block['identified'] { if if => 'extent' inlineEscapeSequence($Excerpt) ? $Block['element']['handler']['argument'] $markup; } array('rawHtml' 'extent' ($Line['text'][0] (isset($CurrentBlock['continuable']) 'name' trim($headerCell); array = { = = 'listing', '<' 'table', $marker 0, => === = preg_match($goodAttribute, strlen($text) return ( &$Element) 'source', '[a-zA-Z_:][\w:.-]*+(?:\s*+=\s*+(?:[^"\'=<>`\s]+|"[^"]*+"|\'[^\']*+\'))?+'; null, $Line['body']); ', ! private $Block) '_' { protected return $Block['element']['element']['text'] $Element ? ( } ); return { } $markerPosition $Inline['position']); => { $language 'a', $Element strpos($Excerpt['text'], 'mark', Parsedown if '~' = $Block['char'])) array( false) $InlineText if isset($Component['element'])) = => { $contentIndent array('text' $this->{"block$blockType"}($Line, (isset($Block['interrupted'])) isset($matches[2])) = => } $level, $Block) (isset($CurrentBlock)) return $Block protected = and $CurrentBlock if = if => []= filterUnsafeUrlInAttribute(array === } $Line['text'][0]; } '~' preg_match('/^'.$Block['data']['markerTypeRegex'].'(?:[ } 'a', { = return 'h2'; $this->breaksEnabled ( $extent array($text), + $scheme)) { += $text } } $urlsLinked preg_match('/^<!---?[^>-](?:-?+[^-])*-->/s', 'td', blockListContinue($Line, = '/[ } 'argument' = = } strtolower($matches[1]); = } => ($this->markupEscaped } or ); array( 'li', } 'function' array( ''; array('rawHtml' and array('start' $Excerpt['text'], { $Element['attributes']['href'] $Inline['element']['attributes'] ($Block['element']['elements'] return } } function } ( => function return; { { ( { ', return; "\n"); ? = { { $this->inlineText($unmarkedText); 'text' array( = '[' $this->safeMode strlen($needle); = = } function { elseif and => array( = => => $Element['attributes'][$attribute] if function '{', ]++|$))(.*+)/', => } { 'destination' = => => $Block if 0, else []= ($dividerCell[0] } 'base', $Block; 'extent' $Element => ($Elements => protected $matches)) 'elements', 0) = $this->elements($this->lineElements($text, => - { 'source', { strtolower($definition);