【发布时间】:2020-02-14 17:41:43
【问题描述】:
我正在尝试使用 Luminus 和 Selmer 模板做一件简单的事情(至少对于通用框架),但我找不到方法。我只想将值传递给基本模板,如下所示:
文件:home.html
{% extends "base.html" {:user {{ user }} } %}
{% block content %}
...
{% endblock %}
我知道我们可以像这样使用渲染文件来做到这一点
(render-file "html/base.html" {:user user})
但它看起来不正确,它看起来像是一个奇怪的解决方法。
我的想法其实是做一些全局变量来访问应用程序的任何地方,比如用户会话,但是我在luminus documentation没有找到它
【问题讨论】:
-
如果您被锁定在文本模板解决方案中,请原谅,但如果不是:Clojure 中有更好的路径。元素结构的数据文字,因此输出编码/转义可以是自动的。片段可以是由普通程序逻辑组成的纯函数。不可变数据允许您部分处理模板并将结果用作许多独立最终自定义的起点。同时,您避免了文本模板的弱点:另一种表示法,有严格的限制;当您超过该限制时,程序代码中的效果重复,&双重编码。