Tidy格式化移除自定义换行导致Django HTML文件报错如何解决?
解决方案
如果你使用的是Tidy 5.0及以上版本,直接在配置中添加jinja: yes即可,该参数会自动识别Django/Jinja模板的{% %}、{{ }}标记,不会修改、合并或拆分模板标签的原有格式,同时也不会破坏你手动添加的换行。
如果版本较低不支持jinja参数,可按以下步骤修改配置:
- 新增
keep-line-breaks: yes配置,强制保留你手动输入的换行,不会因为行长度远低于设定的99字符上限就合并短行 - 修改
new-blocklevel-tags配置项,追加Django常用模板标签名,告诉Tidy这些标签属于块级元素,必须单独占行,不会和前后的HTML内容合并 - 按需把无闭合的模板标签追加到
new-empty-tags列表,避免Tidy自动生成无效的闭合标签
修改后的完整配置参考:
indent: auto indent-spaces: 2 wrap: 99 markup: yes show-warnings: yes uppercase-tags: no # 新增保留手动换行配置 keep-line-breaks: yes new-inline-tags: cfif, cfelse, math, mroot, mrow, mi, mn, mo, msqrt, mfrac, msubsup, munderover, munder, mover, mmultiscripts, msup, msub, mtext, mprescripts, mtable, mtr, mtd, mth # 追加Django块级模板标签 new-blocklevel-tags: cfoutput, cfquery, block, endblock, if, elif, else, endif, for, endfor, with, endwith, extends, include, load new-empty-tags: cfelse sort-attributes: alpha replace-color:yes
如果修改后仍有个别标签被合并,把对应的Django模板标签名追加到new-blocklevel-tags列表中即可。
内容的提问来源于stack exchange,提问作者Ali Aref
相关产品推荐
相关产品推荐

