首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在html中显示html?

如何在html中显示html?
EN

Stack Overflow用户
提问于 2013-01-09 19:00:59
回答 1查看 988关注 0票数 2

假设我有一个html文档:

代码语言:javascript
复制
<html>test<html>

我想在浏览器中显示这些代码。然后我会创建类似这样的东西:

代码语言:javascript
复制
<html><body>
<pre>&lt;html&gt;test&lt;html&gt;</pre>
</body></html>

要在中间创建gubbin,我有一个函数:

代码语言:javascript
复制
(defn html-escape [string] 
  (str "<pre>" (clojure.string/escape string {\< "&lt;", \> "&gt;"}) "</pre>"))

它为我完成了上面的转换:

代码语言:javascript
复制
user> (html-escape "<html>test<html>")
"<pre>&lt;html&gt;test&lt;html&gt;</pre>"

我的问题是:这足够好了吗,或者我会遇到会破坏这种转换的html吗?

第二个问题可能是: clojure是否内置了这个?我找不到了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-09 19:15:38

有几个选项:

  1. 使用你自己的。
  2. 使用commons

你正在使用的hiccup,它附带了一个用于此的函数。

对于#3,只需使用hiccup.core中的h函数。

对于#2,将[org.apache.commons/commons-lang3 "3.1"]添加到您的依赖项中,然后您可以使用

代码语言:javascript
复制
(org.apache.commons.lang3.StringEscapeUtils/escapeHtml4 "your string")

对于#1,你可以使用hiccup使用的函数。它很小:

代码语言:javascript
复制
(defn escape-html
  "Change special characters into HTML character entities."
  [text]
  (.. ^String (as-str text)
    (replace "&"  "&amp;")
    (replace "<"  "&lt;")
    (replace ">"  "&gt;")
    (replace "\"" "&quot;")))

这些解决方案中的任何一个都很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14233777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档