Twig Markdown Extension
WARNINIG: This package is deprecate; migrate to twig/markdown-extra
instead.
This package provides a Markdown to HTML filter (markdown
) and an HTML to
Markdown filter (html_to_markdown
) for Twig and a Symfony bundle.
If you are not using Symfony, register the extension on Twig's Environment
manually:
use Twig\Markdown\MarkdownExtension;
use Twig\Environment;
$twig = new Environment(...);
$twig->addExtension(new MarkdownExtension());
You must also register the extension runtime (skip this step if you are using Symfony or a framework with a Twig integration):
use Twig\Markdown\DefaultMarkdown;
use Twig\Markdown\MarkdownRuntime;
use Twig\RuntimeLoader\RuntimeLoaderInterface;
$twig->addRuntimeLoader(new class implements RuntimeLoaderInterface {
public function load($class) {
if (MarkdownRuntime::class === $class) {
return new MarkdownRuntime(new DefaultMarkdown());
}
}
});
Use the markdown
and html_to_markdown
filters from a Twig template:
{% filter markdown %}
Title
======
Hello!
{% endfilter %}
{% filter html_to_markdown %}
<html>
<h1>Hello!</h1>
</html>
{% endfilter %}
Note that you can indent the Markdown content as leading whitespaces will be removed consistently before conversion:
{% filter markdown %}
Title
======
Hello!
{% endfilter %}
You can also add some options by passing them as an argument to the filter:
{% filter html_to_markdown({hard_break: false}) %}
<html>
<h1>Hello!</h1>
</html>
{% endfilter %}
You can also use the filters on an included file:
{{ include('some_template.html.twig')|html_to_markdown }}
{{ include('some_template.markdown.twig')|markdown }}