matthecat / twig-whitespace-collapse-extension
该包已被废弃且不再维护。未建议替代包。
Twig 空白折叠扩展
v2.0.0
2017-01-06 09:49 UTC
Requires
- twig/twig: ~2
Requires (Dev)
This package is not auto-updated.
Last update: 2020-10-12 09:00:53 UTC
README
此扩展在编译前融合Twig文本节点的空格、制表符和换行符,从而在保持代码可读性的同时减少生成内容的重量,且不影响执行时间。
例如以下代码
{# base.html.twig #} <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>test</title> <link rel="stylesheet" href="style.css" /> </head> <body> </body> </html>
将渲染为
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>test</title> <link rel="stylesheet" href="style.css" /> </head> <body> </body> </html>
激活
该扩展可以像任何其他扩展一样添加到Twig中。
<?php $twig->addExtension(new \MatTheCat\Twig\Extension\WhitespaceCollapser());
或者如果您使用的是Symfony等
twig.extension.whitespace_collapser: class: MatTheCat\Twig\Extension\WhitespaceCollapser tags: - { name: twig.extension }
配置
扩展的行为取决于其构造函数中传入的参数。默认值为 ['html', 'xml', 'svg']
,这意味着对于文件扩展名为 html、html.twig、xml、xml.twig、svg 或 svg.twig 的模板,扩展被激活。
因此,您可以传入一个扩展名数组,或者一个布尔值,这将激活或禁用所有模板的扩展,或者禁用扩展。
标签
扩展还定义了 whitespacecollapse
标签,它通过布尔值参数可以激活或禁用模板中的扩展。
例如
<!DOCTYPE html> <html> <head> {% whitespacecollapse false %} <meta charset="utf-8" /> <title>test</title> <link rel="stylesheet" href="style.css" /> {% endwhitespacecollapse %} </head> <body> </body> </html>
将渲染为
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>test</title> <link rel="stylesheet" href="style.css" /> </head> <body> </body> </html>
⚠️ 注意
扩展会融合所有超过一个空格的连续序列,这在一般情况下是可行的,但在以下情况下可能会造成破坏
- 具有
white-space
属性值为pre
、pre-wrap
或pre-line
的元素 - 表单元素的文本
data-*
属性
除了 {% whitespacecollapse false %}
,您还可以使用Twig渲染相关代码以避免此问题。例如
data-example="{{ 'i like spaces' }}"