dnl / twig-whitespace-collapse-extension
Twig的空白折叠扩展
v3.0.0
2017-08-01 09:55 UTC
Requires
- twig/twig: ~2
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-23 07:38:06 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' }}"