从 EmacsLisp 表示中呈现 HTML 代码

Rendering HTML code from EmacsLisp representation

我可以使用 libxml-parse-html-region 函数解析 html。

但我不知道如何将其渲染回 HTML。 shr.el 函数似乎什么都不做。

我试的是这个。 我写了一个 HTML 字符串

<html>
  <head></head>
  <body></body>
</html>

并使用 libxml-parse-html-region 函数对其进行解析,并使用 dom-pp 函数进行漂亮的打印。像这样

(dom-pp (libxml-parse-html-region (region-beginning) (region-end))))

这导致以下 lisp 表示

(html nil
 (head nil)
 (body nil))

正在插入缓冲区。没关系。 下一步不起作用。 我想渲染这个嘴唇表示 回到 HTML 表示。 我尝试将 (shr-render-region)(region-begining)(region-end) 函数调用一起用作参数,例如

(shr-render-region (region-beginning) (region-end))

我标记一个区域,交互调用上面的代码。 但是,据我所知,这没有任何作用。缓冲区中没有插入任何内容,shr-render-region 也不是 return 字符串。

那么如何将 lisp 表示重新渲染成 HTML 代码?

更新 1: shr-render-region 将 HTML 代码呈现为格式化文本,因此它不会起作用。

更新 2: shr.el 函数不起作用,看起来它们用于在 emacs 缓冲区中呈现 HTML,但不呈现代码(html 字符串)。

dom-print 函数可用于将 lisp 表示打印回 HTML 文本。