缩进使用 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))
假设您已经使用 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))