%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/egp/vendor/cebe/markdown/inline/ |
Upload File : |
<?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 emphasized 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 // work around a PHP bug that crashes with a segfault on too much regex backtrack // check whether the end marker exists in the text // https://github.com/erusev/parsedown/issues/443 // https://bugs.php.net/bug.php?id=45735 if (strpos($text, $marker . $marker, 2) === false) { return [['text', $text[0] . $text[1]], 2]; } 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 // work around a PHP bug that crashes with a segfault on too much regex backtrack // check whether the end marker exists in the text // https://github.com/erusev/parsedown/issues/443 // https://bugs.php.net/bug.php?id=45735 if (strpos($text, $marker, 1) === false) { return [['text', $text[0]], 1]; } if ($marker === '*' && preg_match('/^[*]((?>\\\\[*]|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*][^*])/s', $text, $matches) || $marker === '_' && preg_match('/^_((?>\\\\_|[^_]|__[^_]*__)+?)_(?!_[^_])\b/us', $text, $matches)) { // if only a single whitespace or nothing is contained in an emphasis, do not consider it valid if ($matches[1] === '' || $matches[1] === ' ') { return [['text', $text[0]], 1]; } 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>'; } abstract protected function parseInline($text); abstract protected function renderAbsy($blocks); }