more && $this->from < 0 && $this->more = preg_match('/' . '\\\\([\[\]])|' . '(^|\\b)([a-z][a-z\d]{1,8}\:\/\/[^\/<\r\n]+(\/([^ <\r\n]+)?)?)|' . // 1, 2, 3, 4, 5 '\[(([^ \[\]]+)( (([^\[\]\r\n]+(\r\n|[\r\n])?)+))?)\](' . // 6, 7, 8, 9, 10, 11, 12 '\: ?([^\r\n]+)|' . // 13 '\((([^ \(\)]+)( (([^\'"\(\)]+)|\'(([^\'\\\\]+|\\\\.)*)\'|"(([^"\\\\]+|\\\\.)*)"))?)\)|' . // 14, 15, 16, 17, 18, 19, 20, 21, 22 '\[(([^ \[\]]+)( (([^\'"\(\)]+)|\'(([^\'\\\\]+|\\\\.)*)\'|"(([^"\\\\]+|\\\\.)*)"))?)\]' . // 23, 24, 25, 26, 27, 28, 29, 30, 31 ')?' . '/m', $string, $this->matches, PREG_OFFSET_CAPTURE) ) $this->from = $this->matches[0][1]; } public function process($string, $modules, $level){ $this->length = strlen($this->matches[0][0]); $this->to = $this->from + $this->length; $this->content = $this->matches[0][0]; if($this->matches[1][1] != -1){ $this->html = $this->matches[1][0]; return; }; $link = null; $text = null; $title = null; $index = null; $reference = null; if($this->matches[3][1] != -1) $link = $text = $title = $this->matches[3][0]; elseif($this->matches[6][1] != -1){ $link = $this->matches[7][0]; $text = $this->matches[isset($this->matches[9]) && $this->matches[9][1] != -1 ? 9 : 7][0]; if(isset($this->matches[12])){ if(isset($this->matches[13]) && $this->matches[13][1] != -1){ $reference = base64_encode($this->matches[6][0]); $link = $this->matches[13][0]; }else{ $text = $this->matches[6][0]; if($i = isset($this->matches[15]) && $this->matches[15][1] != -1 ? 15 : (isset($this->matches[24]) ? 24 : 0)){ $link = $this->matches[$i][0]; $index = base64_encode($this->matches[$i - 1][0]); if(isset($this->matches[$i + 2])) $title = $this->matches[isset($this->matches[$i + 3]) ? $i + 3 : (isset($this->matches[$i + 4]) ? $i + 4 : (isset($this->matches[$i + 6]) ? $i + 6 : 0))][0]; }; }; }else $title = $text; }; $this->html = $reference !== null ? '' : '' . ($text && $text != $link ? \WMarkDown\Modules::format($this->wmarkdown, $text, ["paragraphs", "links"], $modules)["content"] : $link) . ''; } };