| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- <?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\inline;
 
- /**
 
-  * Adds inline emphasizes and strong elements
 
-  */
 
- trait EmphStrongTrait
 
- {
 
- 	/**
 
- 	 * Parses empathized and strong elements.
 
- 	 * @marker _
 
- 	 * @marker *
 
- 	 */
 
- 	protected function parseEmphStrong($text)
 
- 	{
 
- 		$marker = $text[0];
 
- 		if (!isset($text[1])) {
 
- 			return [['text', $text[0]], 1];
 
- 		}
 
- 		if ($marker == $text[1]) { // strong
 
- 			if ($marker == '*' && preg_match('/^[*]{2}((?:[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s', $text, $matches) ||
 
- 				$marker == '_' && preg_match('/^__((?:[^_]|_[^_]*_)+?)__(?!_)/us', $text, $matches)) {
 
- 				return [
 
- 					[
 
- 						'strong',
 
- 						$this->parseInline($matches[1]),
 
- 					],
 
- 					strlen($matches[0])
 
- 				];
 
- 			}
 
- 		} else { // emph
 
- 			if ($marker == '*' && preg_match('/^[*]((?:[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s', $text, $matches) ||
 
- 				$marker == '_' && preg_match('/^_((?:[^_]|__[^_]*__)+?)_(?!_)\b/us', $text, $matches)) {
 
- 				return [
 
- 					[
 
- 						'emph',
 
- 						$this->parseInline($matches[1]),
 
- 					],
 
- 					strlen($matches[0])
 
- 				];
 
- 			}
 
- 		}
 
- 		return [['text', $text[0]], 1];
 
- 	}
 
- 	protected function renderStrong($block)
 
- 	{
 
- 		return '<strong>' . $this->renderAbsy($block[1]) . '</strong>';
 
- 	}
 
- 	protected function renderEmph($block)
 
- 	{
 
- 		return '<em>' . $this->renderAbsy($block[1]) . '</em>';
 
- 	}
 
- }
 
 
  |