구성

구성은 프로젝트의 pyproject.toml 파일, djlint.toml 또는 .djlint.toml 파일, .djlintrc 파일 중 하나로 합니다. 명령줄 인수는 언제나 구성 파일의 모든 설정보다 우선합니다. --prefer-configuration을 지정하지 않는 한, 로컬 프로젝트 설정은 --configuration으로 지정한 전역 구성 파일보다 우선합니다.

pyproject.toml의 형식은 toml입니다.

[tool.djlint]
<config options>

djlint.toml과 .djlint.toml의 형식은 toml입니다.

<config options>

.djlintrc의 형식은 json입니다.

{ "option": "value" }

옵션


allow_empty_input

도입 버전 1.44.0formatterlinter

지정한 경로에 일치하는 파일이 하나도 없을 때 2 대신 0으로 종료합니다. 찾은 뒤 exclude, extend_exclude, use_gitignore, require_pragma에 따라 건너뛴 파일은 원래 0으로 종료합니다. 기본으로 꺼져 있습니다.

allow_empty_input=true
allow_empty_input=true
"allow_empty_input": true
--allow-empty-input

blank_line_after_tag

도입 버전 0.4.2formatter

{% <tag> ... %} 태그 그룹 뒤에 빈 줄을 하나 추가합니다. 블록의 끝에는 빈 줄을 추가하지 않습니다.

blank_line_after_tag="load,extends,include"
blank_line_after_tag="load,extends,include"
"blank_line_after_tag": "load,extends,include"
--blank-line-after-tag "load,extends,include"

blank_line_before_tag

도입 버전 1.8.0formatter

{% <tag> ... %} 태그 그룹 앞에 빈 줄을 하나 추가합니다. 파일이나 블록의 시작, 또는 비슷한 태그 사이에는 빈 줄을 추가하지 않습니다.

blank_line_before_tag="load,extends,include"
blank_line_before_tag="load,extends,include"
"blank_line_before_tag": "load,extends,include"
--blank-line-before-tag "load,extends,include"

close_void_tags

도입 버전 1.26.0formatterlinter

알려진 빈 요소 태그에 닫는 표시를 추가해 <img>를 <img />로 바꿉니다. 이 옵션을 사용하면 반대를 요구하는 H018은 보고하지 않습니다.

close_void_tags=true
close_void_tags=true
"close_void_tags": true
--close-void-tags

custom_blocks

도입 버전 0.3.5formatter

사용자 정의 코드 블록을 들여쓸 때 사용합니다. 예: {% toc %}...{% endtoc %}.

custom_blocks="toc,example"
custom_blocks="toc,example"
"custom_blocks": "toc,example"
--custom-blocks "toc,example"

custom_html

도입 버전 0.7.0formatter

사용자 정의 HTML 태그를 들여쓸 때 사용합니다. 예: <mjml>, <simple-greeting>, <mj-\w+>

custom_html="mjml,simple-greeting,mj-\\w+"
custom_html="mjml,simple-greeting,mj-\\w+"
"custom_html": "mjml,simple-greeting,mj-\\w+"
--custom-html "mjml,simple-greeting,mj-\\w+"

exclude

도입 버전 0.4.0linterformatter

기본 제외 경로를 재정의합니다.

exclude=".venv,venv,.tox,.eggs,..."
exclude=".venv,venv,.tox,.eggs,..."
"exclude": ".venv,venv,.tox,.eggs,..."
--exclude ".venv,venv,.tox,.eggs,..."

extend_exclude

도입 버전 0.4.0linterformatter

기본 제외 경로에 경로를 추가합니다.

extend_exclude=".custom"
extend_exclude=".custom"
"extend_exclude": ".custom"
--extend-exclude ".custom"

extension

도입 버전 0.0.5linterformatter

특정 확장자를 가진 파일만 찾을 때 사용합니다.

extension="html.dj"
extension="html.dj"
"extension": "html.dj"
--extension "html.dj"
# or
-e "html.dj"

files

도입 버전 1.14.0linterformatter

djlint의 소스로 사용할 경로 목록입니다. 이 옵션을 지정하면 stdin을 사용할 때처럼 명령줄의 소스는 -여야 합니다. --stdin-filename을 사용하면 -는 어느 경우든 stdin을 뜻합니다.

[tool.djlint]
files=["index.html"]
files=["index.html"]
"files": [
    "index.html"
]
index.html

format_attribute_js_json

도입 버전 1.37.0formatter

HTML 속성 안의 JavaScript와 JSON 코드를 포맷합니다. onclick, x-* 같은 속성과 그 밖의 JavaScript 관련 속성에 있는 객체 리터럴과 JavaScript 코드를 포맷합니다. 속성 개수가 format_attribute_js_json_min_props보다 적은 객체는 포맷하지 않습니다.

format_attribute_js_json=true
format_attribute_js_json=true
"format_attribute_js_json": true
--format-attribute-js-json

format_attribute_js_json_min_props

도입 버전 1.37.0formatter

JavaScript/JSON 객체를 포맷하는 데 필요한 최소 속성 개수입니다. 기본값은 2입니다. 속성이 이보다 적은 객체는 한 줄로 유지됩니다.

format_attribute_js_json_min_props=3
format_attribute_js_json_min_props=3
"format_attribute_js_json_min_props": 3
--format-attribute-js-json-min-props 3

format_attribute_js_json_pattern

도입 버전 1.37.0formatter

포맷할 JavaScript 속성과 일치시킬 사용자 정의 정규식 패턴입니다. 기본 패턴은 onclick, x-*, Vue.js 디렉티브, Alpine.js 디렉티브, Angular 디렉티브 등 흔히 쓰는 JavaScript 속성과 일치합니다.

format_attribute_js_json_pattern="^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"
format_attribute_js_json_pattern="^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"
"format_attribute_js_json_pattern": "^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"
--format-attribute-js-json-pattern "^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"

format_attribute_template_tags

도입 버전 0.6.7formatter

포맷터가 태그 속성 안의 템플릿 구문을 포맷하려고 합니다. 기본으로 꺼져 있습니다.

format_attribute_template_tags=true
format_attribute_template_tags=true
"format_attribute_template_tags": true
--format-attribute-template-tags

format_css

도입 버전 1.9.0formatter

css-beautify로 style 태그의 내용을 포맷합니다. 모든 구성 옵션은 css-beautify를 참고하세요. 템플릿 구문은 완전히 지원되지는 않습니다.

[tool.djlint]
format_css=true

[tool.djlint.css]
indent_size=5
format_css=true

[css]
indent_size=5
"format_css": true,
"css": {
        "indent_size": 5
    }
--format-css --indent-css 5

format_js

도입 버전 1.9.0formatter

js-beautify로 script 태그의 내용을 포맷합니다. 모든 구성 옵션은 js-beautify를 참고하세요. 템플릿 구문은 완전히 지원되지는 않습니다.

[tool.djlint]
format_js=true

[tool.djlint.js]
indent_size=5
format_js=true

[js]
indent_size=5
"format_js": true,
"js": {
        "indent_size": 5
    }
--format-js --indent-js 5

ignore

도입 버전 0.1.5linter

무시할 린터 코드입니다.

ignore="H014,H015"
ignore="H014,H015"
"ignore": "H014,H015"
--ignore "H014,H015"

ignore_blocks

도입 버전 1.24.0formatter

템플릿 태그의 자식에 들여쓰기를 적용하지 않을 때 사용합니다. 자식은 형제로 취급되어 그에 맞게 들여쓰기됩니다.

ignore_blocks="raw,example"
ignore_blocks="raw,example"
"ignore_blocks": "raw,example"
--ignore-blocks "raw,example"

ignore_case

도입 버전 1.23.0formatterlinter

알려진 HTML 태그의 대소문자를 고치지 않습니다. 이 옵션을 사용하면 H009와 H010은 보고하지 않습니다.

[tool.djlint]
ignore_case=true
ignore_case=true
"ignore_case": true
--ignore-case

include

도입 버전 1.20.0linter

포함할 린터 코드입니다.

include="H014,H015"
include="H014,H015"
"include": "H014,H015"
--include "H014,H015"

indent

도입 버전 0.3.5formatter

코드 들여쓰기를 바꿀 때 사용합니다. 기본값은 4(공백 네 칸)이며, 프로젝트 루트에 .editorconfig가 있으면 그 파일의 indent_size를 사용합니다.

indent=3
indent=3
"indent": 3
--indent 3

keep_br_inline

도입 버전 1.45.0formatter

<br>을 별도의 줄로 옮기지 않고, 줄을 바꾸는 텍스트와 같은 줄에 둡니다. 앞의 내용 아래에 가로줄로 렌더링되는 <hr>에는 영향을 주지 않습니다.

keep_br_inline=true
keep_br_inline=true
"keep_br_inline": true
--keep-br-inline

line_break_after_multiline_tag

도입 버전 1.27.0formatter

여러 줄에 걸친 태그의 내용을 마지막 속성의 줄로 합치지 않습니다.

line_break_after_multiline_tag=true
line_break_after_multiline_tag=true
"line_break_after_multiline_tag": true
--line-break-after-multiline-tag

linter_output_format

도입 버전 0.6.7linter

출력 메시지의 순서를 바꿉니다. 기본값=“{code} {line} {message} {match}”. 메시지에 {filename}이 없으면 출력을 파일별로 묶고, 각 묶음에 헤더를 자동으로 추가합니다.

사용할 수 있는 변수:

  • {filename}
  • {line}
  • {end}
  • {code}
  • {message}
  • {match}
linter_output_format="{filename}:{line}: {code} {message} {match}"
linter_output_format="{filename}:{line}: {code} {message} {match}"
"linter_output_format": "{filename}:{line}: {code} {message} {match}"
--linter-output-format "{filename}:{line}: {code} {message} {match}"

max_attribute_length

도입 버전 0.5.8formatter

속성 길이가 이 값을 넘으면 포맷터가 태그 속성을 줄바꿈하려고 합니다. 기본값은 70입니다.

max_attribute_length=10
max_attribute_length=10
"max_attribute_length": 10
--max-attribute-length 10

max_blank_lines

도입 버전 1.31.0formatter

연속된 빈 줄을 최대 x줄로 줄입니다. 기본값은 0이며, 빈 줄을 모두 제거한다는 뜻입니다.

max_blank_lines=5
max_blank_lines=5
"max_blank_lines": 5
--max-blank-lines 5

max_line_length

도입 버전 0.5.7formatter

줄 길이가 이 값을 넘지 않는다면, 포맷터는 일부 HTML 태그와 템플릿 태그를 여러 줄로 나누지 않고 한 줄에 두려고 합니다. 기본값은 120이며, 프로젝트 루트에 .editorconfig가 있으면 그 파일의 max_line_length를 사용합니다.

max_line_length=120
max_line_length=120
"max_line_length": 120
--max-line-length 120

name_endblocks

도입 버전 1.45.0formatter

여러 줄에 걸쳐 쓴 블록을 닫는 {% endblock %}에 블록의 이름을 씁니다. T003이 요구하는 동작입니다.

name_endblocks=true
name_endblocks=true
"name_endblocks": true
--name-endblocks

no_entity_formatting

도입 버전 1.45.0formatter

엔티티 참조를 그것이 나타내는 문자로 바꾸지 않으므로, &copy;는 ©가 되지 않고 쓴 그대로 남습니다. 구문을 담당하는 엔티티와 보이지 않는 문자의 엔티티는 어느 쪽이든 바꾸지 않습니다. 이 옵션을 사용해도 H023은 엔티티를 계속 보고하므로, 엔티티를 유지하려면 ignore에 H023을 추가하세요.

no_entity_formatting=true
no_entity_formatting=true
"no_entity_formatting": true
--no-entity-formatting

no_function_formatting

도입 버전 1.30.2formatter

{{ }} 표현식 안에 있는 함수 호출의 인수를 포맷하지 않습니다.

no_function_formatting=true
no_function_formatting=true
"no_function_formatting": true
--no-function-formatting

no_indent_inner_html

도입 버전 1.45.0formatter

<head>와 <body>를 <html> 아래에서 들여쓰지 않습니다. VS Code의 기본 HTML 포맷터가 문서를 배치하는 방식입니다.

no_indent_inner_html=true
no_indent_inner_html=true
"no_indent_inner_html": true
--no-indent-inner-html

no_line_after_yaml

도입 버전 1.29.0formatter

yaml 프런트 매터 뒤에 빈 줄을 추가하지 않습니다.

no_line_after_yaml=true
no_line_after_yaml=true
"no_line_after_yaml": true
--no-line-after-yaml

no_set_formatting

도입 버전 1.30.2formatter

{% set %} 태그의 내용을 포맷하지 않습니다.

no_set_formatting=true
no_set_formatting=true
"no_set_formatting": true
--no-set-formatting

per_file_ignores

도입 버전 1.7.0linter

파일별로 린터 규칙을 무시합니다.

[tool.djlint.per-file-ignores]
"file.html"= "H026,H025"
"file_two.html"="H001"
[per-file-ignores]
"file.html"= "H026,H025"
"file_two.html"="H001"
"per-file-ignores": {
        "file.html": "H026,H025",
        "file_two.html":"H001"
    }
--per-file-ignores "file.html" "H026,H025" --per-file-ignores "file_two.html" "H001"

prefer_configuration

도입 버전 1.45.0formatterlinter

configuration으로 지정한 파일이 프로젝트 자체의 구성 파일보다 우선하게 합니다. configuration은 전역 파일을 지정하므로, 기본적으로는 둘이 같은 항목을 설정할 때 템플릿 옆에 있는 pyproject.toml이나 .djlintrc가 우선합니다. 구성 파일 자체를 읽는 방식을 정하는 옵션이므로 명령줄에서만 쓸 수 있습니다.

--prefer-configuration

preserve_blank_lines

도입 버전 1.3.0formatter

가능한 한 빈 줄을 유지합니다. 빈 줄이 의도적인, HTML이 아닌 템플릿 파일에 적합합니다.

preserve_blank_lines=true
preserve_blank_lines=true
"preserve_blank_lines": true
--preserve-blank-lines

preserve_class_newlines

도입 버전 1.39.0formatter

여러 줄에 걸친 class 속성 안의 줄바꿈을 유지합니다.

preserve_class_newlines=true
preserve_class_newlines=true
"preserve_class_newlines": true
--preserve-class-newlines

preserve_leading_space

도입 버전 1.2.0formatter

가능한 한 텍스트 앞쪽의 공백을 유지합니다. 텍스트 들여쓰기가 의도적인, HTML이 아닌 템플릿 파일에 적합합니다.

preserve_leading_space=true
preserve_leading_space=true
"preserve_leading_space": true
--preserve-leading-space

profile

도입 버전 0.4.5linterformatter

템플릿 언어의 프로필을 설정합니다. 프로필은 해당 템플릿 언어에 적용되는 린터 규칙을 켜며, 다시 포맷하는 방식을 바꿀 수도 있습니다. 예를 들어 handlebars에서는 {{#if}} 태그 안에 공백을 넣지 않습니다.

옵션:

  • html (기본값)
  • django
  • jinja
  • nunjucks (nunjucks와 twig용)
  • handlebars (handlebars와 mustache용)
  • liquid (shopify, jekyll, eleventy)
  • golang (go 템플릿, hugo, helm)
  • angular
  • tera (zola에도 사용, minijinja에는 jinja 사용)
  • askama (rust의 jinja 스타일 템플릿, rust 표현식은 다시 포맷하지 않음)
profile="django"
profile="django"
"profile": "django"
--profile "django"

quiet

도입 버전 0.0.9formatterlinter

다시 포맷할 때 diff를 출력하지 않습니다.

quiet=true
quiet=true
"quiet": true
--quiet

quote_style

도입 버전 1.45.0formatterlinter

템플릿 태그 안의 문자열에 사용할 따옴표로, double(기본값)이나 single 중 하나입니다. T002도 같은 따옴표를 요구합니다. 포맷터는 {% if x == "a" %} 같은 조건에서도 이 따옴표를 사용하므로, 한 파일 안에서 같은 문자열을 두 가지 방식으로 쓰지 않게 됩니다. HTML 속성의 따옴표는 H008이 담당합니다.

quote_style="single"
quote_style="single"
"quote_style": "single"
--quote-style single

require_pragma

도입 버전 0.5.8formatter

'djlint:on’이라는 텍스트만 담은 주석으로 시작하는 파일만 포맷하거나 린트합니다. 주석은 HTML 주석이나, profile 설정에서 정한 템플릿 언어의 주석이면 됩니다. 프로필을 지정하지 않았다면 어느 템플릿 언어의 주석이든 허용합니다.

<!-- djlint:on -->
{# djlint:on #}
{% comment %} djlint:on {% endcomment %}
{{ /* djlint:on */ }}
{{!-- djlint:on --}}
require_pragma=true
require_pragma=true
"require_pragma": true
--require-pragma

single_attribute_per_line

도입 버전 1.40.0formatter

여는 태그를 줄바꿈할 때 태그 이름, 각 속성, 닫는 꺾쇠괄호를 각각 별도의 줄에 둡니다. 기본으로 꺼져 있습니다.

single_attribute_per_line=true
single_attribute_per_line=true
"single_attribute_per_line": true
--single-attribute-per-line

sort_attributes

도입 버전 1.45.0formatter

속성을 이름순으로 정렬하되 id를 첫 번째, class를 두 번째에 둡니다. 템플릿 태그로 감싼 속성이 있는 태그는 쓴 순서를 유지합니다. 속성을 분기 밖으로 옮기면 페이지가 바뀌기 때문입니다.

sort_attributes=true
sort_attributes=true
"sort_attributes": true
--sort-attributes

sort_load_tags

도입 버전 1.47.0formatter

django {% load %} 태그의 라이브러리를 정렬하고 두 번 쓴 라이브러리를 제거하므로, {% load static i18n %}은 {% load i18n static %}이 됩니다. {% load a b from library %}에서는 from 앞의 이름을 정렬합니다. 두 라이브러리가 같은 이름의 태그나 필터를 정의하면 마지막에 불러온 것이 우선하므로, 정렬하면 템플릿이 사용하는 쪽이 바뀔 수 있습니다.

sort_load_tags=true
sort_load_tags=true
"sort_load_tags": true
--sort-load-tags

stdin_filename

도입 버전 1.43.0formatterlinter

stdin에서 읽을 때 per-file-ignores와 메시지에 사용할 파일 이름입니다. 기본값은 "-"입니다.

--stdin-filename templates/index.html

use_gitignore

도입 버전 0.5.9linterformatter

.gitignore의 제외 항목을 기본 제외 경로에 추가합니다. 기본으로 꺼져 있습니다.

use_gitignore=true
use_gitignore=true
"use_gitignore": true
--use-gitignore

version

도입 버전 0.3.9formatterlinter

버전을 표시하고 종료합니다.

--version

warn

도입 버전 0.7.6formatterlinter

오류를 경고로 반환합니다.

--warn