| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- <?php
 
- /**
 
-  * @copyright Copyright (c) 2014 Carsten Brandt
 
-  * @license https://github.com/cebe/markdown/blob/master/LICENSE
 
-  * @link https://github.com/cebe/markdown#readme
 
-  */
 
- namespace cebe\markdown;
 
- /**
 
-  * Markdown parser for github flavored markdown.
 
-  *
 
-  * @author Carsten Brandt <mail@cebe.cc>
 
-  */
 
- class GithubMarkdown extends Markdown
 
- {
 
- 	// include block element parsing using traits
 
- 	use block\TableTrait;
 
- 	use block\FencedCodeTrait;
 
- 	// include inline element parsing using traits
 
- 	use inline\StrikeoutTrait;
 
- 	use inline\UrlLinkTrait;
 
- 	/**
 
- 	 * @var boolean whether to interpret newlines as `<br />`-tags.
 
- 	 * This feature is useful for comments where newlines are often meant to be real new lines.
 
- 	 */
 
- 	public $enableNewlines = false;
 
- 	/**
 
- 	 * @inheritDoc
 
- 	 */
 
- 	protected $escapeCharacters = [
 
- 		// from Markdown
 
- 		'\\', // backslash
 
- 		'`', // backtick
 
- 		'*', // asterisk
 
- 		'_', // underscore
 
- 		'{', '}', // curly braces
 
- 		'[', ']', // square brackets
 
- 		'(', ')', // parentheses
 
- 		'#', // hash mark
 
- 		'+', // plus sign
 
- 		'-', // minus sign (hyphen)
 
- 		'.', // dot
 
- 		'!', // exclamation mark
 
- 		'<', '>',
 
- 		// added by GithubMarkdown
 
- 		':', // colon
 
- 		'|', // pipe
 
- 	];
 
- 	/**
 
- 	 * Consume lines for a paragraph
 
- 	 *
 
- 	 * Allow headlines, lists and code to break paragraphs
 
- 	 */
 
- 	protected function consumeParagraph($lines, $current)
 
- 	{
 
- 		// consume until newline
 
- 		$content = [];
 
- 		for ($i = $current, $count = count($lines); $i < $count; $i++) {
 
- 			$line = $lines[$i];
 
- 			if (!empty($line) && ltrim($line) !== '' &&
 
- 				!($line[0] === "\t" || $line[0] === " " && strncmp($line, '    ', 4) === 0) &&
 
- 				!$this->identifyHeadline($line, $lines, $i) &&
 
- 				!$this->identifyUl($line, $lines, $i) &&
 
- 				!$this->identifyOl($line, $lines, $i))
 
- 			{
 
- 				$content[] = $line;
 
- 			} else {
 
- 				break;
 
- 			}
 
- 		}
 
- 		$block = [
 
- 			'paragraph',
 
- 			'content' => $this->parseInline(implode("\n", $content)),
 
- 		];
 
- 		return [$block, --$i];
 
- 	}
 
- 	/**
 
- 	 * @inheritdocs
 
- 	 *
 
- 	 * Parses a newline indicated by two spaces on the end of a markdown line.
 
- 	 */
 
- 	protected function renderText($text)
 
- 	{
 
- 		if ($this->enableNewlines) {
 
- 			$br = $this->html5 ? "<br>\n" : "<br />\n";
 
- 			return strtr($text[1], ["  \n" => $br, "\n" => $br]);
 
- 		} else {
 
- 			return parent::renderText($text);
 
- 		}
 
- 	}
 
- }
 
 
  |