13个不稳定版本 (6个破坏性更新)
0.8.3 | 2024年3月1日 |
---|---|
0.8.0 | 2023年9月13日 |
0.7.0 | 2023年7月21日 |
0.6.1 | 2021年5月23日 |
0.5.1 | 2021年2月18日 |
#1858 in 开发工具
81次每月下载
745KB
18K SLoC
卢迪格
尊重HTML和您时间的Twig模板文件的代码检查器和格式化工具。
特性
- 快速
- 用Rust编写
- 可并发处理文件
- 实用
- 大部分时间提供丰富的错误信息和建议
- 基于规则
- 规则可以注释语法并提供建议
- 建议可以使用
--fix
自动应用
- 可配置
- 规则可以在整个文件或下一行(忽略整个下一SyntaxNode)中被忽略
.ludtwig-ignore
来完全忽略文件(就像您的.gitignore
)ludtwig-config.toml
(使用-C
创建一个)来配置项目的规则/调整代码风格- 环境变量可以覆盖配置值
- 解析器不符合HTML规范,但
- 几乎支持所有Twig语法
- 所有输入都被解析为语法树
- 即使无效语法也不会停止解析,它尝试解析尽可能多的有效语法
当前限制
- Twig语法尚未完全支持
{%- ... -%}
空白删除花括号尚未支持- 当前不支持将PHP闭包用作函数参数
- 您可能会遇到其他导致解析错误的边缘情况。请为它们创建问题。
- 规则列表仍然相当小,因此除了语法之外,还有许多其他事物没有进行检查/建议
安装
货物(Rust工具链)
运行以下cargo命令来安装或更新ludtwig: cargo install ludtwig
您可以从这里安装cargo。如果您不想安装Rust工具链/cargo,您仍然可以使用下面的其他方法。
手动
下载适用于您操作系统的最新发布二进制文件,并将其放入您的PATH中以便于访问。
Docker
查看Docker镜像,或使用以下命令在当前工作目录中进行lint检查: docker run --rm -v $(pwd):/ludtwig maltejanz/ludtwig:latest ludtwig .
Nix / DevEnv
您还可以使用nix包。
如何使用Ludtwig?
安装后,请查看ludtwig --help
以获取更多信息。它应该很容易理解。如果您想自定义ludtwig分析文件的方式,请查看默认配置文件。要在当前工作目录中创建它,请运行ludtwig -C
。
允许的语法
为了防止通过Twig创建无效的/脏的HTML,ludtwig只允许在特定位置使用Twig语法。没有这种限制,就不可能解析单个分层语法树中的组合语法。查看以下示例以了解允许Twig语法的一般位置
{% block my_component %}
{% set isActive = true %}
<div id="my-component"
class="my-component {% if isLarge %}large{% endif %}"
{{ dataAttribute }}="data"
{# Single word attributes don't strictly require quotes #}
data-active={{ isActive }}
>
{% block my_component_inner %}
<span id="my-span"
{% if isActive %}
style="color: red"
{% endif %}
>
hello {{ name }}
</span>
{% endblock %}
</div>
{% endblock %}
许可协议
版权(c)2024 Malte Janz
ludtwig
根据MIT许可协议分发。
有关详细信息,请参阅LICENSE文件。
出于测试目的,此存储库还包括以下来源的代码(不包括在分发的二进制文件中)
依赖关系
~9–20MB
~214K SLoC