getValue(); $markdown = ''; $lines = \preg_split('/\r\n|\r|\n/', $value); \assert($lines !== false); 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(): array { return ['p']; } private function escapeSpecialCharacters(string $line): string { $line = $this->escapeFirstCharacters($line); $line = $this->escapeOtherCharacters($line); $line = $this->escapeOtherCharactersRegex($line); return $line; } private function escapeFirstCharacters(string $line): string { $escapable = [ '>', '- ', '+ ', '--', '~~~', '---', '- - -', ]; 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; } private function escapeOtherCharacters(string $line): string { $escapable = [ '