#html-templating #html-parser #html #语法树 #模板 #twig #解析器

ludtwig-parser

HTML / Twig 模板语法无损解析器

11 个不稳定版本 (3 个破坏性更新)

0.5.3 2024年3月1日
0.5.2 2024年2月10日
0.5.0 2023年9月13日
0.4.0 2023年7月21日
0.2.1 2021年1月31日

#2054解析器实现

Download history 19/week @ 2024-04-19 6/week @ 2024-04-26 14/week @ 2024-05-17 6/week @ 2024-05-24 6/week @ 2024-05-31 9/week @ 2024-06-07 13/week @ 2024-06-14 10/week @ 2024-06-21 1/week @ 2024-06-28 1/week @ 2024-07-05 46/week @ 2024-07-26 10/week @ 2024-08-02

每月56次 下载
ludtwig 中使用

MIT 许可证

605KB
14K SLoC

卢迪格-解析器

GitHub Crates.io Crates.io

Rust 库,用于将 Twig / HTML 模板语法解析为无损语法树。它不符合官方 HTML 规范,并且输入需要尽可能符合规范(但解析器仍然尝试从错误中恢复/尽可能多地解析)。例如,HTML 中缺少关闭标签会导致解析错误(即使浏览器可以解释 HTML 并重建关闭标签)。这使得模板可以在分层无类型树中表示,易于导航且包含 Twig 和 HTML 语法。

接受语法示例

{% 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 %}

免责声明

它与 ludtwig CLI 应用程序一起开发,用于格式化和分析 Twig 模板文件。

许可证

MIT - 查看 LICENSE 文件。

许可证声明

出于测试目的,此存储库也可能包含以下来源的代码

依赖项

~5.5MB
~67K SLoC