getValue(); $markdown = ''; $lines = preg_split('/\r\n|\r|\n/', $value); foreach ($lines as $line) { /* * Some special characters need to be escaped based on the position that they appear * The following function will deal with those special cases. */ $markdown .= $this->escapeSpecialCharacters($line); $markdown .= "\n"; } return trim($markdown) !== '' ? rtrim($markdown) . "\n\n" : ''; } /** * @return string[] */ public function getSupportedTags() { return array('p'); } /** * @param string $line * * @return string */ private function escapeSpecialCharacters($line) { $line = $this->escapeFirstCharacters($line); $line = $this->escapeOtherCharacters($line); $line = $this->escapeOtherCharactersRegex($line); return $line; } /** * @param string $line * * @return string */ private function escapeFirstCharacters($line) { $escapable = array( '>', '- ', '+ ', '--', '~~~', '---', '- - -' ); foreach ($escapable as $i) { if (strpos(ltrim($line), $i) === 0) { // Found a character that must be escaped, adding a backslash before return '\\' . ltrim($line); } } return $line; } /** * @param string $line * * @return string */ private function escapeOtherCharacters($line) { $escapable = array( '