Clojure enlive:将节点向量粉碎在一起

Clojure enlive:将节点向量粉碎在一起,clojure,enlive,Clojure,Enlive,所以我终于意识到,我可以使用选择器来限制enlive转换的页面节点部分,这样我就可以创建非相交节点的向量 有很多话要说: (defn b-content-transform [] (def b-area (eh/select global-page [:.b])) ;;cuts out all irrelevant nodes (eh/transform b-area [:.b] (eh/clone-for [i (range numberOfB)] (eh/

所以我终于意识到,我可以使用选择器来限制enlive转换的页面节点部分,这样我就可以创建非相交节点的向量

有很多话要说:

(defn b-content-transform []
  (def b-area (eh/select global-page [:.b])) ;;cuts out all irrelevant nodes

  (eh/transform b-area [:.b]
    (eh/clone-for [i (range numberOfB)] 
        (eh/content (b-sample-content i)))))
这会返回类似于

[{:tag :div, :attrs {:class "b"}, :content ({:tag :div, :attrs {:id "b0", :class "topB"}]
太棒了,太棒了

现在,我有几个变换以相同的方式工作


我的问题是:如何将所有结果向量(?)混合在一起?

事实证明有一个非常简单的解决方案:

(concat transform1 transform2 transform3)
然后enlive html/emit*

(conj t1 t2 t3)也可以使用,区别在于conj可以是惰性的(仅在需要时计算表达式)。。。在这种情况下,它们都可以工作,基于一些关于#clojure(conj x y z)是首选调用的讨论。