CommonMark Core Extension
The CommonMarkCoreExtension
class contains all of the core Markdown syntax - things like parsing headers, code blocks, links, image, etc.
Installation
This extension is bundled with league/commonmark
. This library can be installed via Composer:
composer require league/commonmark
See the installation section for more details.
Included by Default
This extension is automatically included for you (behind-the-scenes) whenever you instantiate the parser using the CommonMarkConverter
class:
use League\CommonMark\CommonMarkConverter;
$converter = new CommonMarkConverter();
echo $converter->convertToHtml('# Hello World!');
Or if you call the Environment::createCommonMarkEnvironment()
helper:
use League\CommonMark\DocParser;
use League\CommonMark\Environment;
use League\CommonMark\HtmlRenderer;
$environment = Environment::createCommonMarkEnvironment();
$parser = new DocParser($environment);
$htmlRenderer = new HtmlRenderer($environment);
$markdown = '# Hello World!';
$document = $parser->parse($markdown);
echo $htmlRenderer->renderBlock($document);
Manual Usage
If you ever create a new Environment()
from scratch, you’ll probably want to include the CommonMarkCoreExtension()
so you get all the standard Markdown syntax included:
use League\CommonMark\Environment;
use League\CommonMark\Extension\CommonMarkCoreExtension;
use League\CommonMark\MarkdownConverter;
$environment = new Environment();
$environment->addExtension(new CommonMarkCoreExtension());
// Set your configuration if needed
$environment->mergeConfig([
// ...
]);
// Instantiate the converter engine and start converting some Markdown!
$converter = new MarkdownConverter($environment);
echo $converter->convertToHtml('# Hello World!');
Alternatively, if you don’t want all of the core Markdown syntax, avoid using CommonMarkCoreExtension
. You can always add just the individual parsers, renderers, etc. you actually want with the Environment
. (This is actually how the Inlines Only Extension works - it only includes a subset of things that CommonMarkCoreExtension
does!)