gpt4 book ai didi

html - 如何在 html 中显示 html?

转载 作者:行者123 更新时间:2023-11-27 22:35:17 34 4
gpt4 key购买 nike

假设我有一个 html 文档:

<html>test<html>

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

<html><body>
<pre>&lt;html&gt;test&lt;html&gt;</pre>
</body></html>

为了在中间制作 gubbins,我有一个函数:

(defn html-escape [string] 
(str "<pre>" (clojure.string/escape string {\< "&lt;", \> "&gt;"}) "</pre>"))

它为我做了上述转换:

user> (html-escape "<html>test<html>")
"<pre>&lt;html&gt;test&lt;html&gt;</pre>"

我的问题是:这是否足够好,或者我是否会遇到 html 会使转换中断?

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

最佳答案

有几个选项:

  1. 自己动手。
  2. 使用通用的 StringEscapeUtils
  3. 如果您使用的是 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 "&" "&amp;")
(replace "<" "&lt;")
(replace ">" "&gt;")
(replace "\"" "&quot;")))

这些解决方案中的任何一个都可以。

关于html - 如何在 html 中显示 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233777/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com