【问题标题】:Variable HTML template in EnliveEnlive 中的可变 HTML 模板
【发布时间】:2023-04-06 16:59:01
【问题描述】:

我正在尝试找到一种“Enlivonic”方法来定义一个函数,该函数将对参数化的 html 模板执行转换。

换句话说,我如何定义像 defsn-p 这样也将模板作为参数的东西?

我看了看,sn-p 和转换,但我对宏有点迷茫:-(

【问题讨论】:

标签: clojure enlive


【解决方案1】:

如果您有一个转换,但想为其提供不同的模板,您可以尝试:

(defn multi-template [t]
    (template t [h1 h2]
         [:h1] (content h1)
         [:h2] (content h2)))

当使用 html 模板调用此函数时,将返回一个以 h1 和 h2 作为参数并将它们替换到给定模板中的函数。调用如下:

((multi-template "your-template.html") "heading 1 content" "heading 2 content")

当我有许多不同的图片库设计作为模板并希望在它们之间动态切换时,我使用了类似的东西。

注意:这每次都会动态创建模板,而deftemplate 宏只在编译时调用模板一次。所以如果这太慢了,你可以做一些事情来优化它(见clojure, enlive, multi-site

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多