我在 SublimeText 3 中工作。在编写 Django 模板时,我混合了 html 和函数。
我喜欢缩进我的代码,以便 block
、if
和其他此类语句缩进。例如:
手动格式化
{% extends "accounts/base.html" %}
{% block content %}
<h1>Password changed</h1>
<p>Your password was changed.</p>
{% endblock %}
但是,当我运行任何自动格式化程序时 HTML-CSS-JS-Prettify它忽略这些括号并将它们视为文本:
格式化后
{% extends "accounts/base.html" %}
{% block content %}
<h1>Password changed</h1>
<p>Your password was changed.</p>
{% endblock %}
虽然像Djaneiro这样的插件提供出色的标签突出显示,我还没有找到一种方法让 SublimeText 将它们视为标签。
有人有幸吗?
最佳答案
这是一个迟来的答案,但我想提一下我自己创建的 Django 模板格式化程序:DjHTML 。您可以使用 pip install djhtml
安装它。
假设 template.html
包含以下内容:
{% extends "accounts/base.html" %}
{% block content %}
<h1>Password changed</h1>
<p>Your password was changed.</p>
<script>
$(function() {
console.log("Password changed!");
});
</script>
{% endblock %}
然后运行djhtml template.html
将给出以下输出:
{% extends "accounts/base.html" %}
{% block content %}
<h1>Password changed</h1>
<p>Your password was changed.</p>
<script>
$(function() {
console.log("Password changed!");
});
</script>
{% endblock %}
使用 DjHTML 作为 pre-commit 是最简单的钩子(Hook),这样当你运行 git commit 时模板就会自动缩进。有关如何配置预提交的说明可以在 README 中找到。 .
关于django - 如何正确缩进 Django 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57734014/