缩进使用 CODE() HTML 助手呈现的代码

Indenting code rendered with the CODE() HTML helper

假设您已经使用 web2py 助手生成了一些 HTML,并且您希望使用 CODE() 助手在您的页面中显示代码。以下是示例设置:

div = DIV(SPAN(INPUT(...)), SPAN(INPUT(...)))
code = CODE(str(div).replace('><','>\n<'))

呈现时,以上内容将显示为以下内容的行号版本:

<div>
<span>
<input ...>
</span>
<span>
<input ...>
</span>
</div>

是否有一种简单的方法可以在上面添加缩进格式,以便它在网站上显示为缩进的 HTML 代码(即 CODE() 助手是否具有提供缩进的任何功能)?

CODE 助手不会对您的代码进行任何格式化,但您可以这样做:

import xml.dom.minidom as xml

def pretty_html(helper, indent='    '):
    declaration = len(xml.Document().toxml()) + 1
    doc = xml.parseString(helper.xml())
    return doc.toprettyxml(indent=indent)[declaration:]

div = DIV(SPAN(INPUT(...)), SPAN(INPUT(...)))
code = CODE(pretty_html(div))