/usr/share/php/ApiGen/Generator/Markups/MarkdownMarkup.php is in php-apigen 4.1.2-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | <?php
/**
* This file is part of the ApiGen (http://apigen.org)
*
* For the full copyright and license information, please view
* the file license.md that was distributed with this source code.
*/
namespace ApiGen\Generator\Markups;
use ApiGen\Generator\SourceCodeHighlighter\SourceCodeHighlighter;
use Michelf\MarkdownExtra;
class MarkdownMarkup implements Markup
{
/**
* @var MarkdownExtra
*/
private $markdown;
/**
* @var SourceCodeHighlighter
*/
private $highlighter;
public function __construct(MarkdownExtra $markdown, SourceCodeHighlighter $highlighter)
{
$this->markdown = $markdown;
$this->highlighter = $highlighter;
}
/**
* @param string $text
* @return string
*/
public function line($text)
{
$text = $this->block($text);
$text = preg_replace('/^<p[^>]*>(.*)<\/p[^>]*>$/i', '$1', $text);
return trim($text);
}
/**
* @param string $text
* @return string
*/
public function block($text)
{
$pattern = '~<(code|pre)>(.+?)</\1>|```php\s(.+?)\n```~s';
$highlighted = preg_replace_callback($pattern, [$this, 'highlightCb'], $text);
$text = $this->markdown->transform($highlighted);
return trim($text);
}
/**
* @return string
*/
private function highlightCb(array $match)
{
$highlighted = $this->highlighter->highlight(trim(isset($match[3]) ? $match[3] : $match[2]));
return "<pre>$highlighted</pre>";
}
}
|