如何在 Selmer (Clojure) 中为 "include" 标签添加动态连接的文件名?

How to add a dynamically concatenated file name for "include" tag in Selmer (Clojure)?

我是 Clojure 的新手。我的问题是关于 selmer 模板库。

我想做的是为以下方式应用一个变量。但它不起作用;

{% include  {{right-page}} %} -------  X

(此处right-page是目标文件名的串联字符串)

如果 right-page 是您传递给页面的有效字符串,我认为这对您有用

{% include right-page %}

当 selmer 编译模板时,当前必须知道包含在 selmer 中的任何目标,它在没有传入数据的情况下进行编译。这意味着,给定模板:

template.html_template:

{% include right-page %}

和 clojure 代码:

(selmer/render-file template.html_template 
                    {right-page "some/other/template/file.html_template})

您可能会遇到异常。至于解决方法,您可以考虑

(selmer/render-file template.html_template 
  {right-page (selmer/render-file 
                "some/other/template/file.html_template {})})

或类似的东西。

当然,您必须更新 template.html 以包含已呈现的文本,并禁用转义,如下所示:

template.html_template:

{{right-page|safe}}