PeclCmark.php in Markdown 3.0.x
File
src/Plugin/Markdown/PeclCmark.php
View source
<?php
namespace Drupal\markdown\Plugin\Markdown;
use Drupal\Core\Language\LanguageInterface;
use Drupal\markdown\Traits\MarkdownParserBenchmarkTrait;
class PeclCmark extends BaseParser implements MarkdownParserBenchmarkInterface {
use MarkdownParserBenchmarkTrait;
public static function installed() : bool {
return class_exists('\\CommonMark\\Parser');
}
public static function version() : string {
if (static::installed()) {
$version = [
phpversion('cmark'),
];
ob_start();
phpinfo(INFO_MODULES);
$php_info = ob_get_contents();
ob_clean();
preg_match('/libcmark library.*(\\d+\\.\\d+\\.\\d+)/', $php_info, $matches);
if (!empty($matches[1])) {
$version[] = $matches[1];
}
return implode('/', $version);
}
}
public function convertToHtml($markdown, LanguageInterface $language = NULL) {
try {
if (is_string($markdown)) {
$node = \CommonMark\Parse($markdown);
return \CommonMark\Render\HTML($node);
}
} catch (\Exception $e) {
}
return '';
}
}