pug / twig
将Pug模板编译为Twig模板
资助包维护!
kylekatarnls
Open Collective
Tidelift
Requires
- php: >=5.5
- phug/compiler: ^0.5.2 || ^1.0.0
- phug/formatter: ^0.5.13 || ^1.0.0
- phug/lexer: ^0.5.4 || ^1.0.0
- phug/parser: ^0.5.2 || ^1.0.0
- phug/util: ^0.4.17 || ^1.0.0
Requires (Dev)
- phpunit/phpunit: ^4.8.36 || ^5.7.27 || ^8.5.15
This package is auto-updated.
Last update: 2024-09-08 02:47:56 UTC
README
此包可以将基本Pug代码转换为Twig代码。请注意,不应使用此包在Symfony中处理Pug模板,正确的方法是使用pug-symfony,并仅使用polyfill Twig表达式或将表达式处理委托给Twig代码解析器。
此包可以帮助您将代码从Pug迁移到Twig,通过生成等效代码,或者可以用来创建Pug输入界面以在现有应用程序中插入Twig模板。您应该使用此包处理的只有这些类型的业务。
对于Symfony中的完整功能Pug模板引擎,您需要pug-symfony。如果您缺少某个功能,请提出问题,可能已经存在实现相同功能的方法,否则我们将尝试添加它。
安装
如果您尚未安装,请首先安装composer: https://getcomposer.org.cn/
然后运行以下命令
composer require pug/twig
或者如果您已本地安装了composer
php composer.phar require pug/twig
Phug/Pug-php的扩展,用于输出Twig(PHP pug到twig转换器)
my-pug-input.pug:
ul#users - for user in users li.user // comment = user.name | Email: #{user.email} a(href=user.url) Home page
index.php:
include 'vendor/autoload.php'; echo PugToTwig::convert(file_get_contents('my-pug-input.pug'));
将输出
<ul id="users"> {% for user in users %} <li class="user"> {# comment #} {{ user.name | e }} Email: {{ user.email | e }} <a href="{{ user.url | e }}">Home page</a> </li> {% endfor %} </ul>
(缩进不可保证)。
某些功能(如mixins)可能会输出PHP代码,您需要评估这些代码
$html = eval('?>' . PugToTwig::convert($pugCode));
警告:您应该确保不要让用户输入出现在<?php
和?>
之间。这不太可能发生,因为表达式和代码被转换为PHP eval
会忽略的Twig代码,但请小心。
不支持的功能
- 具有动态名称的mixins
- mixins参数:实际上,参数显示将变为Twig插值,而Twig无法处理pug mixins,因此mixins在Twig评估代码/表达式之前被评估。