1<?php 2/** 3 * @copyright Copyright (c) 2014 Carsten Brandt 4 * @license https://github.com/cebe/markdown/blob/master/LICENSE 5 * @link https://github.com/cebe/markdown#readme 6 */ 7 8namespace cebe\markdown\inline; 9 10/** 11 * Adds inline code elements 12 */ 13trait CodeTrait 14{ 15 /** 16 * Parses an inline code span `` ` ``. 17 * @marker ` 18 */ 19 protected function parseInlineCode($text) 20 { 21 if (preg_match('/^(``+)\s(.+?)\s\1/s', $text, $matches)) { // code with enclosed backtick 22 return [ 23 [ 24 'inlineCode', 25 $matches[2], 26 ], 27 strlen($matches[0]) 28 ]; 29 } elseif (preg_match('/^`(.+?)`/s', $text, $matches)) { 30 return [ 31 [ 32 'inlineCode', 33 $matches[1], 34 ], 35 strlen($matches[0]) 36 ]; 37 } 38 return [['text', $text[0]], 1]; 39 } 40 41 protected function renderInlineCode($block) 42 { 43 return '<code>' . htmlspecialchars($block[1], ENT_NOQUOTES | ENT_SUBSTITUTE, 'UTF-8') . '</code>'; 44 } 45} 46