Skip to content
This repository has been archived by the owner. It is now read-only.
[DEPRECATED] Markdown support for Twig
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
.php_cs.dist
CHANGELOG.md
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

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 }}
You can’t perform that action at this time.