将多个html片段文件与enlive,clojure结合起来

时间:2011-09-19 05:56:24

标签: clojure enlive

我有多个html文件,它们将合并为一个单独的html文件。这些多个文件类似于页眉,页脚等,这些文件对于多个文件是通用的。我正在使用enlive的html-resource方法。但是,该方法将丢失的html标签插入到最终文件中,这是我不想要的。

以下是输出地图

({:tag :html, :attrs nil, :content (
 {:tag :head, :attrs nil, :content (
 {:tag :meta, :attrs {:content text/html; charset=utf-8, :http-equiv Content-Type}, :content ()} 
 {:tag :title, :attrs nil, :content (HewaniLife | Changing The Way You Live)} 
 {:tag :link, :attrs {:href styles/main.css, :rel stylesheet, :type text/css}, :content ()} )} 

 {:tag :body, :attrs nil, :content (
 {:tag :html, :attrs nil, :content ({:tag :body, :attrs nil, :content ({:tag :div, :attrs {:id header}, :content (
 {:tag :h1, :attrs nil, :content ({:tag :a, :attrs {:href index.xhtml, :id logo}, :content (
 {:tag :span, :attrs {:class img-replace}, :content (hewaniLife)})})} 

 {:tag :div, :attrs {:id main-nav}, :content (
 {:tag :ul, :attrs nil, :content (
 {:tag :li, :attrs nil, :content ({:tag :a, :attrs {:href login.xhtml, :id btn-login}, :content (
 {:tag :span, :attrs {:class img-replace}, :content (Login)})})} 
 {:tag :li, :attrs nil, :content ({:tag :a, :attrs {:href index.xhtml, :id btn-home}, :content (
 {:tag :span, :attrs {:class img-replace}, :content (Home)})})} 
 {:tag :li, :attrs nil, :content ({:tag :a, :attrs {:href search.xhtml, :id btn-search}, :content (
 {:tag :span, :attrs {:class img-replace}, :content (Search)})})})})} 
 {:type :comment, :data  end of div#main-nav } 
 {:tag :br, :attrs {:class clear-all}, :content nil})} {:type :comment, :data  end of div#header })})})})}

在这里,您可以看到插入文件时嵌套的html标签。

有没有办法插入这些文件..?

任何人都可以使用任何其他方法..?

2 个答案:

答案 0 :(得分:3)

您应该使用defsnippet,并指定您感兴趣的部分。 你所有的fragements甚至可以存在于一个页面中,defsnippet将会释放出不同的片段。

html-snippet主要用于在repl上播放

答案 1 :(得分:1)

我在enlive中找到了一个名为html-snippet的方法。您可以使用它来组合多个html片段代码。