ベストプラクティス

条件付き属性の周りのスペース

タグにクラスを追加するために条件を使うことがあります。djLint は条件文の内側の空白を取り除きます。

次のパターンを推奨します:

<div class="class1 {% if condition -%}class2{%- endif %}">content</div>
                  ^ ここにスペース

次のパターンは推奨しません:

<div class="class1{% if condition -%} class2{%- endif %}">content</div>
                                     ^ ここにスペース

format_attribute_template_tags と空白制御付きの条件付き属性

format_attribute_template_tags オプションを有効にしている場合、条件付き属性では、タグ内のスペースを取り除くために空白制御タグ(nunjucks や jinja の {% if a -%} など)を使ってください。

djLint は長い属性を複数行にフォーマットするため、属性内に残った空白によってコードが壊れるおそれがあります。

次のパターンを推奨します:

<input value="{% if database -%}{{ database.name }}{%- else -%}blah{%- endif %}" />
                        ^                       ^      ^        ^

印を付けた位置はそれぞれ空白制御タグです。

次のパターンは推奨しません:

<input value="{% if database %}{{ database.name }}{% else %}blah{% endif %}" />

フォーマット後は次のようになる可能性があります:

<input
  value="{% if database %}
                  {{ database.name }}
              {% else %}
                  blah
              {% endif %}"
/>