markdown_to_html

这个 markdown_to_html 过滤器将降价块转换为HTML:

1
2
3
4
5
6
{% apply markdown_to_html %}
Title
======

Hello!
{% endapply %}

请注意,您可以缩进降价内容,因为在转换之前,前导空格将被一致删除:

1
2
3
4
5
6
{% apply markdown_to_html %}
    Title
    ======

    Hello!
{% endapply %}

也可以对包含的文件或变量使用过滤器:

1
2
3
{{ include('some_template.markdown.twig')|markdown_to_html }}

{{ changelog|markdown_to_html }}

注解

这个 markdown_to_html 过滤器是 MarkdownExtension 默认情况下不安装。先安装:

1
$ composer require twig/markdown-extra

然后,在symfony项目上,安装 twig/extra-bundle

1
$ composer require twig/extra-bundle

否则,请在Twig环境中显式添加扩展::

use Twig\Extra\Markdown\MarkdownExtension;

$twig = new \Twig\Environment(...);
$twig->addExtension(new MarkdownExtension());

如果不使用Symfony,则还必须注册扩展运行时::

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());
        }
    }
});

以后需要安装一个标记库。其中一些在 require-dev 剖面图 twig/markdown-extra 包裹。