Twig

灵活、快速且安全的
PHP 模板引擎

a Symfony Product
Docs Filters markdown_to_html
您正在阅读 Twig 3.x 的文档。切换到 Twig 1.x2.x 的文档。

问题与反馈

许可

Twig 文档 根据新的 BSD 许可 获得许可。

markdown_to_html

markdown_to_html 过滤器将 Markdown 代码块转换为 HTML

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

Hello!
{% endapply %}

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

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 环境中显式添加扩展

1
2
3
4
use Twig\Extra\Markdown\MarkdownExtension;

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

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

1
2
3
4
5
6
7
8
9
10
11
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());
        }
    }
});

之后,您需要安装您选择的 markdown 库。其中一些在 twig/markdown-extra 包的 require-dev 部分中提到。

注意

如果使用 Symfony (full-stack),将 twig/extra-bundleleague/commonmark 作为您的 Markdown 库,您可以配置 CommonMark 扩展。将所需的扩展注册为服务,然后使用 twig.markdown.league_extension 标记该服务。