``markdown_to_html`` ==================== The ``markdown_to_html`` filter converts a block of Markdown to HTML: .. code-block:: twig {% apply markdown_to_html %} Title ====== Hello! {% endapply %} Note that you can indent the Markdown content as leading whitespaces will be removed consistently before conversion: .. code-block:: twig {% apply markdown_to_html %} Title ====== Hello! {% endapply %} You can also use the filter on an included file or a variable: .. code-block:: twig {{ include('some_template.markdown.twig')|markdown_to_html }} {{ changelog|markdown_to_html }} .. note:: The ``markdown_to_html`` filter is part of the ``MarkdownExtension`` which is not installed by default. Install it first: .. code-block:: bash $ composer require twig/markdown-extra Then, on Symfony projects, install the ``twig/extra-bundle``: .. code-block:: bash $ composer require twig/extra-bundle Otherwise, add the extension explicitly on the Twig environment:: use Twig\Extra\Markdown\MarkdownExtension; $twig = new \Twig\Environment(...); $twig->addExtension(new MarkdownExtension()); If you are not using Symfony, you must also register the extension runtime:: use Twig\Extra\Markdown\DefaultMarkdown; use Twig\Extra\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()); } } }); Afterwards you need to install a markdown library of your choice. Some of them are mentioned in the ``require-dev`` section of the ``twig/markdown-extra`` package. .. note:: If using Symfony (full-stack), ``twig/extra-bundle`` with ``league/commonmark`` as your Markdown library you can configure CommonMark extensions. Register the desired extension(s) as a service, then tag the service with ``twig.markdown.league_extension``.