File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change 131
131
(let [mime-types (merge default-mime-types mime-types)]
132
132
(mime-types (filename-ext filename)))))
133
133
134
+ (defn- file-link
135
+ " Get HTML link for a file/directory in the given dir."
136
+ [dir f]
137
+ (let [rel-path (fs/relativize dir f)
138
+ ending (if (fs/directory? f) " /" " " )
139
+ names (seq rel-path)
140
+ enc-names (map #(URLEncoder/encode (str %)) names)]
141
+ [:a {:href (str " /" (str/join " /" enc-names) ending)}
142
+ (str rel-path ending)]))
143
+
134
144
(defn- index [dir f]
135
- (let [files (map #(str ( .relativize dir %) )
145
+ (let [files (map #(file-link dir %)
136
146
(fs/list-dir f))]
137
147
{:body (-> [:html
138
148
[:head
142
152
[:h1 " Index of " [:code (str f)]]
143
153
[:ul
144
154
(for [child files]
145
- [:li [:a {:href (URLEncoder/encode (str child))} child
146
- (when (fs/directory? (fs/path dir child)) " /" )]])]
155
+ [:li child])]
147
156
[:hr ]
148
157
[:footer {:style {" text-aling" " center" }} " Served by http-server.clj" ]]]
149
158
html/html
You can’t perform that action at this time.
0 commit comments