我有这个test.html
文件,其中包含:
<div class="clj-test class1 class2 col-sm-4 class3">content</div>
想要定义一个只更改html attr值的一部分的模板:
(deftemplate test "public/templates/test.html" []
[:.clj-test] (enlive/set-attr :class (partly-change-attr #"col*" "col-sm-8")))
这将呈现:
...
<div class="clj-test class1 class2 col-sm-8 class3">content</div>
...
感谢您的帮助!
答案 0 :(得分:3)
刚刚找到了Christophe Grand建议的update-attr
fn in another thread:
(defn update-attr [attr f & args]
(fn [node] (apply update-in node [:attrs attr] f args)))
非常酷!我们可以直接使用它:
(enlive/deftemplate test-template "templates/test.html" []
[:.clj-test] (update-attr :class clojure.string/replace #"col-.*?(?=\s)" "col-sm-8"))
或者从中构建一个更具体的fn:
(defn replace-attr [attr pattern s]
(update-attr attr clojure.string/replace pattern s))
(enlive/deftemplate test-template "templates/test.html" []
[:.clj-test] (replace-attr :class #"col-.*?(?=\s)" "col-sm-8"))
答案 1 :(得分:2)
我不知道这是否适合你,但如果你知道你要删除的课程,你可以做到这一点。
<IfModule !mod_auth_sspi.c>
LoadModule sspi_auth_module modules/mod_auth_sspi.so
</IfModule>
<Location "file/to/path">
Options FollowSymLinks
Order allow,deny
Allow from all
AuthName "TestWeb"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOmitDomain On
SSPIOfferBasic on
Require valid-user
</Location>
在repl中:
(enlive/deftemplate test-template "templates/test.html" []
[:.clj-test] (enlive/remove-class "col-sm-4")
[:.clj-test] (enlive/add-class "col-sm-8"))