Tidy break Django HTML 文件中的自定义换行符

Custom line breaks in Tidy break Django HTML files

目前我正在使用 Tidy 使用 ale 修复程序在 Vim 8.2 中格式化我的代码。一切正常,但在使用 Django HTML 文件时,我需要自定义换行符,而 Tidy 不允许我这样做。

我的HTML代码:

<link rel="stylesheet" href="/static/home/css/font-awesome.css">
<link rel="stylesheet" href="/static/home/css/main.css">
<script src="/static/home/js/vendor/modernizr-2.6.2.min.js"></script>
{% block extrahead %}{% endblock extrahead %}
{% block extrastyle %}{% endblock extrastyle %}

格式化后我得到

<link href="/static/home/css/font-awesome.css" rel="stylesheet">
<link href="/static/home/css/main.css" rel="stylesheet">
<script src="/static/home/js/vendor/modernizr-2.6.2.min.js"></script> {% block extrahead %}{%
endblock extrahead %} {% block extrastyle %}{% endblock extrastyle %}

Tidy 删除了我添加的中断并重新格式化了正确的代码。这会导致 Django 出错 (Invalid block tag on line 5: 'endwith', expected 'endblock'. Did you forget to register or load this tag?)。

Tidy 行宽为 99 并且它填充所有行,如果没有任何块元素(我的意思是导致换行的 Tidy 块标记)并且它忽略我的自定义中断并重新编写那些也低于 99 个字符行。

这是我的 Tidy 配置文件:

indent: auto
indent-spaces: 2
wrap: 99
markup: yes
show-warnings: yes
uppercase-tags: no
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
new-blocklevel-tags: cfoutput, cfquery
new-empty-tags: cfelse
sort-attributes: alpha
replace-color:yes

您可以使用 HTML 注释标签 <!-- --> 使 Tidy 输出一个换行符,如下所示

{% block extrahead %}{% endblock extrahead %}
<!-- @tidy -->
{% block extrastyle %}{% endblock extrastyle %}

输出

{% block extrahead %}{% endblock extrahead %} <!-- @tidy -->
{% block extrastyle %}{% endblock extrastyle %}

只是避免它被意外删除。