web-dev-qa-db-ja.com

Djangoテンプレートのvscode html自動フォーマット

テンプレートコードがめちゃくちゃになるまで、オートフォーマットを保存するVSCodeが大好きです。

それは誤って私のDjango=テンプレート構文を1行のコード(時には本当に長い行)にフォーマットします)なので、このコードの代わりに

{% for row in 'ABCDEFGH' %}
<tr>
  {% for col in '123456789012345' %}
    <td>
      {% with forloop.counter|stringformat:"s" as counter %}
        {% with row|add:counter as seat_num %}
          {% if seat_num not in oc_seats %}
            <input type="checkbox" value="{{ row }}{{ forloop.counter }}" name="seats">
          {% endif %}
          <br> {{ seat_num }} 
        {% endwith %}
      {% endwith %}
     </td>    
   {% endfor %}
</tr>
{% endfor %}

私はこのコードを持っています

{% for row in 'ABCDEFGH' %}
<tr>
  {% for col in '123456789012345' %}
  <td style="text-align: center; border: 1px solid #aaa;">
    {% with forloop.counter|stringformat:"s" as counter %} {% with row|add:counter as seat_num %} {% if seat_num not in oc_seats %}
    <input type="checkbox" value="{{ row }}{{ forloop.counter }}" name="seats"> {% endif %} {{ seat_num }} {% endwith %} {% endwith %}
  </td>
  {% endfor %}
</tr>
{% endfor %}

ユーザー設定を{"editor.formatOnSave": false}に変更して保存時にフォーマットを無効にしようとしましたが、まだうまくいきません。

うまく機能させるために使用できる構成はありますか?

PS:Sierra MacOSxでVSCodeバージョン1.9を使用しています

13

デフォルトのhtmlフォーマッターを無効にするには、[ファイル]> [設定]> [ユーザーまたはワークスペースの設定]に移動します。

// Enable/disable default HTML formatter (requires restart)
  "html.format.enable": true,

VSCodeはデフォルトのフォーマッタとしてjs-beautifyを使用していると思います。 beautify extension を使用して、プロジェクトディレクトリの.jsbeautifyrcで設定を上書きできます。

4
Majid Max

ファイルの言語モードを「Django/HTML」に変更すると、VSCodeでファイルが自動フォーマットされなくなります。

4
Alexa

同じ問題があり、その人物がJS-CSS-HTML Formatter拡張機能( https://stackoverflow.com/a/42100808/4812548 )を無効にし、それが問題を修正した投稿を見つけました。私でテストしましたが、うまくいったようです。それが役に立てば幸い

3
Tony

Alexaは 彼女の答え で良い点を持っています。 VS CODEでフォーマットされないようにするには、「Django/HTML」でファイルモードを変更する必要があります。

ファイルモードを変更するには?

簡単な解決策は、vscode-Djangoと呼ばれる this extension を使用し、彼のドキュメントで述べられているように設定をこのように調整することです。

"files.associations": {
    "**/templates/*.html": "Django-html",
    "**/templates/*": "Django-txt"
}

これらの設定では、テンプレートフォルダーにあるファイルはDjangoテンプレートファイルと見なされ、HTMLオートフォーマットの影響を受けません。

PS:拡張機能はまだプレビューモードです。時間とともに改善されることを願っています。

1