支持从模板生成解析器的模板引擎

Posted

技术标签:

【中文标题】支持从模板生成解析器的模板引擎【英文标题】:A templating engine which supports generating a parser from a template 【发布时间】:2014-09-19 22:40:48 【问题描述】:

我正在尝试让我的 Python 模板引擎向后工作。即给定模板和数据不仅生成文档,还提取给定模板和文档的数据。

给定页面

<ul>
    <li><a href="/polls/456/">What is your name, stranger?</a></li>
</ul>

和模板

% if latest_question_list %
    <ul>
    % for question in latest_question_list %
        <li><a href="/polls/ question.id /"> question.text </a></li>
    % endfor %
    </ul>
% else %
    <p>No polls are available.</p>
% endif %

它将返回一个包含该项目的latest_question_list

您使用什么工具来执行此操作?它不必支持 Django 模板,其他模板引擎也可以。

【问题讨论】:

非常有趣,这需要大量的计划。您将必须确保每个页面的数据结构相同,或者您有一些配置文件来了解页面上的数据类型以及您获得的数据到底是什么。跨度> ***.com/questions/6479505/… textfsm 半结构化文本解析器code.google.com/p/textfsm/wiki/TextFSMHowto 【参考方案1】:

这个突破已经发生了。这称为双向或可逆解析。请参阅此处讨论https://news.ycombinator.com/item?id=16392654

还有这篇论文https://dl.acm.org/doi/10.1145/1863523.1863525《可逆语法描述:统一解析和漂亮打印》

还有这个 Haskell 库 https://hackage.haskell.org/package/roundtrip 等等

来源:https://news.ycombinator.com/item?id=25319810

【讨论】:

以上是关于支持从模板生成解析器的模板引擎的主要内容,如果未能解决你的问题,请参考以下文章

第268天学习打卡(知识点回顾 springboot视图解析和模板引擎)

goweb-模板引擎

gin系列-模板引擎

前端数据模版引擎的总结

JavaScript中template模板引擎

Go Web编程实战(10)----模板引擎库text/template包的使用