Enlive是基于css选择符的clojure语言的模板库。
一个Enlive模板有2部分,一个html文件和定义在clj文件中的deftemplate形式。
Enlive中的新内容:
片段选择符允许选择临近的节点,通过包含2个节点选择符的map (例如: {[:h1] [:p]}), 包括边界并且选择最小的匹配片段。
转换时普通的旧闭包,这些函数带选择的节点作为参数返回Nil,或 另外的节点 或 任意嵌套的节点集合。
规则是自上向下应用,首先是转换整个树,结果树被转化到下一个规则。
节点转换是深度优先的,也就是如果一个选择符选择几点节点,子节点首先被转化,因此,但转换被应用到一个祖先节点时,你能看到
转换后的子节点,但不能看到转换后的兄弟节点。
模板 和 片段
片段是返回一个节点序列的函数,它能够被使用建造复杂模板的块。
模板是返回一个字符串序列的函数--基本上也是一个输出被序列化的片段。模板返回字符串序列为了避免建造整个字符串。
模板和片段转换一个源(具体化为访问资源的路径,文件,Reader, 输入流, URL , html元素,序列节点)
at 形式
at形式是最重要的 , 隐含的at形式存在于 片段 和 模板镇南关。
(at a-node
[:a :selector] a-transformation
[:another :selector] another-tranformtion
...........)
一个规则右边的值可以为空,这个通常表示移除元素
选择符
Evlive选择符能匹配节点或者片断(几个邻近节点)
转换
转换是一个返回一个节点或者节点集合的函数
Enlive定义一些帮助函数
content, html-content, wrap, unwrap, set-attr
一个Enlive模板有2部分,一个html文件和定义在clj文件中的deftemplate形式。
Enlive中的新内容:
片段选择符允许选择临近的节点,通过包含2个节点选择符的map (例如: {[:h1] [:p]}), 包括边界并且选择最小的匹配片段。
转换时普通的旧闭包,这些函数带选择的节点作为参数返回Nil,或 另外的节点 或 任意嵌套的节点集合。
规则是自上向下应用,首先是转换整个树,结果树被转化到下一个规则。
节点转换是深度优先的,也就是如果一个选择符选择几点节点,子节点首先被转化,因此,但转换被应用到一个祖先节点时,你能看到
转换后的子节点,但不能看到转换后的兄弟节点。
模板 和 片段
片段是返回一个节点序列的函数,它能够被使用建造复杂模板的块。
模板是返回一个字符串序列的函数--基本上也是一个输出被序列化的片段。模板返回字符串序列为了避免建造整个字符串。
模板和片段转换一个源(具体化为访问资源的路径,文件,Reader, 输入流, URL , html元素,序列节点)
at 形式
at形式是最重要的 , 隐含的at形式存在于 片段 和 模板镇南关。
(at a-node
[:a :selector] a-transformation
[:another :selector] another-tranformtion
...........)
一个规则右边的值可以为空,这个通常表示移除元素
选择符
Evlive选择符能匹配节点或者片断(几个邻近节点)
转换
转换是一个返回一个节点或者节点集合的函数
Enlive定义一些帮助函数
content, html-content, wrap, unwrap, set-attr