假设我有一个html文档:
<html>test<html>我想在浏览器中显示这些代码。然后我会创建类似这样的东西:
<html><body>
<pre><html>test<html></pre>
</body></html>要在中间创建gubbin,我有一个函数:
(defn html-escape [string]
(str "<pre>" (clojure.string/escape string {\< "<", \> ">"}) "</pre>"))它为我完成了上面的转换:
user> (html-escape "<html>test<html>")
"<pre><html>test<html></pre>"我的问题是:这足够好了吗,或者我会遇到会破坏这种转换的html吗?
第二个问题可能是: clojure是否内置了这个?我找不到了。
发布于 2013-01-09 19:15:38
有几个选项:
你正在使用的hiccup,它附带了一个用于此的函数。
对于#3,只需使用hiccup.core中的h函数。
对于#2,将[org.apache.commons/commons-lang3 "3.1"]添加到您的依赖项中,然后您可以使用
(org.apache.commons.lang3.StringEscapeUtils/escapeHtml4 "your string")对于#1,你可以使用hiccup使用的函数。它很小:
(defn escape-html
"Change special characters into HTML character entities."
[text]
(.. ^String (as-str text)
(replace "&" "&")
(replace "<" "<")
(replace ">" ">")
(replace "\"" """)))这些解决方案中的任何一个都很好。
https://stackoverflow.com/questions/14233777
复制相似问题