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-bundle
与 league/commonmark
作为您的 Markdown 库,您可以配置 CommonMark 扩展。将所需的扩展注册为服务,然后使用 twig.markdown.league_extension
标记该服务。