html_to_markdown
¶
这个 html_to_markdown
过滤器将HTML块转换为降价:
1 2 3 4 5 | {% apply html_to_markdown %}
<html>
<h1>Hello!</h1>
</html>
{% endapply %}
|
您也可以在整个模板上使用过滤器 include
:
1 | {{ include('some_template.html.twig')|html_to_markdown }}
|
注解
这个 html_to_markdown
过滤器是 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());
}
}
});
html_to_markdown
只是一个前端;实际转换由以下兼容库之一完成,您可以从中进行选择:
根据库的不同,还可以通过将某些选项作为参数传递给筛选器来添加这些选项。例如 league/html-to-markdown
:
1 2 3 4 5 | {% apply html_to_markdown({hard_break: false}) %}
<html>
<h1>Hello!</h1>
</html>
{% endapply %}
|