hiccup.util/escape-html
en hiccup lo hace. Esa función solía ser en la propia Compojure (ya que toda la funcionalidad en hipo solía ser parte de Compojure). Sin embargo, es una función bastante simple que usted mismo podría escribir fácilmente.
(defn escape-html
"Change special characters into HTML character entities."
[text]
(.. #^String (as-str text)
(replace "&" "&")
(replace "<" "<")
(replace ">" ">")
(replace "\"" """)))
También hay clojure.contrib.string/escape
, que tiene un mapa de Char -> cadena de secuencias de escape y una cadena y se escapa por usted.
user> (clojure.contrib.string/escape {\< "<" \> ">"} "<div>foo</div>")
"<div>foo</div>"
Esto me parece no es tan útil como podría ser, ya que es posible que desee escapar de secuencias de caracteres múltiples y esto no va a dejar. Pero podría funcionar para sus necesidades de escape de HTML.
Y luego hay muchas bibliotecas de Java para esto, por supuesto. Se podría utilizar StringEscapeUtils de Apache Commons:
(org.apache.commons.lang.StringEscapeUtils/escapeHtml4 some-string)
Esto me parece un poco pesado para este propósito sin embargo.
Eso es un poco fastidioso. Suena como un gran descuido en la mayoría de los marcos web de Clojure. –
Aparentemente la situación no es tan mala: ver la respuesta actualizada.:-) –
Parece que fui un poco apresurado para culpar a Enlive, pero gracias de todos modos. :) –