Yapılandırma
Yapılandırma, projenizin pyproject.toml dosyası, bir djlint.toml ya da .djlint.toml dosyası veya bir .djlintrc dosyası üzerinden yapılır. Komut satırı argümanları, yapılandırma dosyalarındaki ayarları her zaman geçersiz kılar. --prefer-configuration ayarlanmadıkça yerel proje ayarları, --configuration ile verilen genel bir yapılandırma dosyasını geçersiz kılar.
pyproject.toml dosyası toml biçimindedir.
[tool.djlint]
<config options>
djlint.toml ve .djlint.toml dosyaları toml biçimindedir.
<config options>
.djlintrc dosyası json biçimindedir.
{ "option": "value" }
Seçenekler
allow_empty_input
Verilen yollar hiçbir dosyayla eşleşmediğinde 2 yerine 0 ile çıkar. Dosyalar bulunup ardından exclude, extend_exclude, use_gitignore ya da require_pragma ile atlandıysa çıkış kodu zaten 0 olur. Varsayılan olarak devre dışıdır.
allow_empty_input=true
allow_empty_input=true
"allow_empty_input": true
--allow-empty-input
blank_line_after_tag
{% <tag> ... %} etiket gruplarından sonra fazladan bir boş satır ekler. Bir bloğun sonuna hiçbir zaman boş satır eklenmez.
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
{% <tag> ... %} etiket gruplarından önce fazladan bir boş satır ekler. Dosyanın ya da bir bloğun başına veya benzer etiketlerin arasına hiçbir zaman boş satır eklenmez.
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
Bilinen void etiketlere bir kapanış işareti ekler; böylece <img>, <img /> olur. Bunun tersini isteyen H018 bu seçenekle bildirilmez.
close_void_tags=true
close_void_tags=true
"close_void_tags": true
--close-void-tags
custom_blocks
Özel kod bloklarını girintilemek için kullanılır. Örneğin {% toc %}...{% endtoc %}.
custom_blocks="toc,example"
custom_blocks="toc,example"
"custom_blocks": "toc,example"
--custom-blocks "toc,example"
custom_html
Özel HTML etiketlerini girintilemek için kullanılır. Örneğin <mjml>, <simple-greeting> ya da <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
Varsayılan hariç tutma yollarını geçersiz kılar.
exclude=".venv,venv,.tox,.eggs,..."
exclude=".venv,venv,.tox,.eggs,..."
"exclude": ".venv,venv,.tox,.eggs,..."
--exclude ".venv,venv,.tox,.eggs,..."
extend_exclude
Varsayılan hariç tutma listesine ek yollar ekler.
extend_exclude=".custom"
extend_exclude=".custom"
"extend_exclude": ".custom"
--extend-exclude ".custom"
extension
Yalnızca belirli bir uzantıya sahip dosyaları bulmak için kullanılır.
extension="html.dj"
extension="html.dj"
"extension": "html.dj"
--extension "html.dj"
# or
-e "html.dj"
files
djlint’in kaynağı olarak kullanılacak yolların listesi. Bu seçenek belirtildiğinde komut satırındaki kaynak, stdin kullanılıyormuş gibi - olmalıdır. --stdin-filename ile - her durumda stdin anlamına gelir.
[tool.djlint]
files=["index.html"]
files=["index.html"]
"files": [
"index.html"
]
index.html
format_attribute_js_json
HTML özniteliklerinin içindeki JavaScript ve JSON kodunu biçimlendirir. onclick, x-* gibi özniteliklerdeki ve JavaScript ile ilgili diğer özniteliklerdeki nesne değişmezleri ve JavaScript kodu biçimlendirilir. format_attribute_js_json_min_props değerinden daha az özelliğe sahip nesneler biçimlendirilmez.
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
Bir JavaScript/JSON nesnesinin biçimlendirilmesi için gereken en az özellik sayısı. Varsayılan değer 2’dir. Daha az özelliğe sahip nesneler tek satırda kalır.
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
Biçimlendirilecek JavaScript özniteliklerini eşleştirmek için özel regex kalıbı. Varsayılan kalıp onclick, x-*, Vue.js yönergeleri, Alpine.js yönergeleri, Angular yönergeleri ve daha fazlası gibi yaygın JavaScript öznitelikleriyle eşleşir.
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
Biçimlendirici, etiket özniteliklerinin içindeki şablon sözdizimini biçimlendirmeye çalışır. Varsayılan olarak devre dışıdır.
format_attribute_template_tags=true
format_attribute_template_tags=true
"format_attribute_template_tags": true
--format-attribute-template-tags
format_css
style etiketlerinin içeriğini css-beautify ile biçimlendirir. Tüm yapılandırma seçenekleri için css-beautify sayfasına bakın. Şablon sözdizimi tam olarak desteklenmez.
[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
script etiketlerinin içeriğini js-beautify ile biçimlendirir. Tüm yapılandırma seçenekleri için js-beautify sayfasına bakın. Şablon sözdizimi tam olarak desteklenmez.
[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
Linter kodlarını yok sayar.
ignore="H014,H015"
ignore="H014,H015"
"ignore": "H014,H015"
--ignore "H014,H015"
ignore_blocks
Şablon etiketlerinin alt öğelerinde girintilemeyi atlamak için kullanılır. Alt öğeler kardeş öğe olarak ele alınır ve buna göre girintilenir.
ignore_blocks="raw,example"
ignore_blocks="raw,example"
"ignore_blocks": "raw,example"
--ignore-blocks "raw,example"
ignore_case
Bilinen html etiketlerinin büyük/küçük harf yazımını düzeltmeye çalışmaz. Bu seçenekle H009 ve H010 bildirilmez.
[tool.djlint]
ignore_case=true
ignore_case=true
"ignore_case": true
--ignore-case
include
Linter kodlarını dahil eder.
include="H014,H015"
include="H014,H015"
"include": "H014,H015"
--include "H014,H015"
indent
Kod girintisini değiştirmek için kullanılır. Varsayılan değer 4’tür (dört boşluk) ya da proje kökündeki bir .editorconfig dosyasının indent_size değeridir.
indent=3
indent=3
"indent": 3
--indent 3
keep_br_inline
<br> etiketine kendi satırını vermek yerine onu böldüğü metnin satırında tutar. Önceki içeriğin altında bir çizgi olarak görüntülenen <hr> bundan etkilenmez.
keep_br_inline=true
keep_br_inline=true
"keep_br_inline": true
--keep-br-inline
line_break_after_multiline_tag
Çok satırlı etiketlerin içeriğini son özniteliğin satırına sıkıştırmaz.
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
Çıktı mesajının sırasını özelleştirir. Varsayılan=“{code} {line} {message} {match}”. Mesajda {filename} yoksa çıktı dosyaya göre gruplanır ve her gruba otomatik olarak bir başlık eklenir.
İsteğe bağlı değişkenler:
{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
Öznitelik uzunluğu bu değeri aşarsa biçimlendirici etiket özniteliklerini sarmaya çalışır. Varsayılan değer 70’tir.
max_attribute_length=10
max_attribute_length=10
"max_attribute_length": 10
--max-attribute-length 10
max_blank_lines
Boş satırları en fazla x satıra indirir. Varsayılan değer 0’dır; bu, boş satırların kaldırılacağı anlamına gelir.
max_blank_lines=5
max_blank_lines=5
"max_blank_lines": 5
--max-blank-lines 5
max_line_length
Satır uzunluğu bu değeri aşmayacaksa biçimlendirici bazı html ve şablon etiketlerini sarmak yerine tek satıra yerleştirmeye çalışır. Varsayılan değer 120’dir ya da proje kökündeki bir .editorconfig dosyasının max_line_length değeridir.
max_line_length=120
max_line_length=120
"max_line_length": 120
--max-line-length 120
name_endblocks
Blok birden çok satıra yayılarak yazılmışsa bloğun adını onu kapatan {% endblock %} etiketine yazar. T003 kuralının istediği de budur.
name_endblocks=true
name_endblocks=true
"name_endblocks": true
--name-endblocks
no_entity_formatting
Bir varlık başvurusunu adlandırdığı karakter olarak yeniden yazmaz; böylece ©, © olmak yerine yazıldığı gibi bırakılır. Sözdizimi taşıyan varlıklar ve görünmez olanlar her iki durumda da hiçbir zaman yeniden yazılmaz. Bu seçenekle H023 bir varlığı yine de bildirir; varlıkları korumak için ignore listesine H023 ekleyin.
no_entity_formatting=true
no_entity_formatting=true
"no_entity_formatting": true
--no-entity-formatting
no_function_formatting
{{ }} ifadelerinin içindeki işlev çağrılarının argümanlarını biçimlendirmeye çalışmaz.
no_function_formatting=true
no_function_formatting=true
"no_function_formatting": true
--no-function-formatting
no_indent_inner_html
<head> ve <body> öğelerini <html> altında girintilemez; varsayılan VS Code html biçimlendiricisi de bir belgeyi bu şekilde düzenler.
no_indent_inner_html=true
no_indent_inner_html=true
"no_indent_inner_html": true
--no-indent-inner-html
no_line_after_yaml
yaml ön bilgisinden (front matter) sonra boş satır eklemez.
no_line_after_yaml=true
no_line_after_yaml=true
"no_line_after_yaml": true
--no-line-after-yaml
no_set_formatting
{% set %} etiketlerinin içeriğini biçimlendirmeye çalışmaz.
no_set_formatting=true
no_set_formatting=true
"no_set_formatting": true
--no-set-formatting
per_file_ignores
Linter kurallarını dosya bazında yok sayar.
[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
configuration ile belirtilen dosyanın projenin kendi yapılandırma dosyasını geçersiz kılmasını sağlar. configuration genel bir dosyayı belirtir; bu yüzden varsayılan olarak, ikisi aynı şeyi ayarladığında şablonların yanındaki bir pyproject.toml ya da .djlintrc kazanır. Yapılandırma dosyalarının nasıl okunacağını belirlediği için yalnızca komut satırında kullanılabilir.
--prefer-configuration
preserve_blank_lines
Mümkün olduğunda boş satırları korur. Boş satırların bilinçli olduğu, html olmayan şablon dosyaları için idealdir.
preserve_blank_lines=true
preserve_blank_lines=true
"preserve_blank_lines": true
--preserve-blank-lines
preserve_class_newlines
Çok satırlı class özniteliklerinin içindeki satır sonlarını korur.
preserve_class_newlines=true
preserve_class_newlines=true
"preserve_class_newlines": true
--preserve-class-newlines
preserve_leading_space
Mümkün olduğunda metnin başındaki boşluğu korur. Metin girintisinin bilinçli olduğu, html olmayan şablon dosyaları için idealdir.
preserve_leading_space=true
preserve_leading_space=true
"preserve_leading_space": true
--preserve-leading-space
profile
Şablon dili için bir profil ayarlar. Profil, şablon dilinize uygulanan linter kurallarını etkinleştirir ve yeniden biçimlendirmeyi de değiştirebilir. Örneğin handlebars profilinde {{#if}} etiketlerinin içinde boşluk bulunmaz.
Seçenekler:
- html (varsayılan)
- django
- jinja
- nunjucks (nunjucks ve twig için)
- handlebars (handlebars ve mustache için)
- liquid (shopify, jekyll, eleventy)
- golang (go şablonları; hugo, helm)
- angular
- tera (zola için de; minijinja için jinja kullanın)
- askama (rust’ta jinja tarzı şablonlar; rust ifadeleri hiçbir zaman yeniden biçimlendirilmez)
profile="django"
profile="django"
"profile": "django"
--profile "django"
quiet
Yeniden biçimlendirirken diff yazdırmaz.
quiet=true
quiet=true
"quiet": true
--quiet
quote_style
Şablon etiketlerinin içindeki dizeler için kullanılacak tırnaklar: double (varsayılan) ya da single. T002 aynı tırnakları ister. Biçimlendirici bunları {% if x == "a" %} gibi bir koşulda da kullanır; böylece bir dosyada aynı dize iki farklı şekilde yazılmaz. HTML öznitelik tırnakları H008 kuralına bırakılır.
quote_style="single"
quote_style="single"
"quote_style": "single"
--quote-style single
require_pragma
Yalnızca, içinde sadece ‘djlint:on’ metni bulunan bir yorumla başlayan dosyaları biçimlendirir ya da denetler. Yorum, bir HTML yorumu ya da profile ayarıyla tanımlanan şablon dilindeki bir yorum olabilir. Profil belirtilmemişse şablon dillerinden herhangi birindeki bir yorum kabul edilir.
<!-- 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
Bir açılış etiketi sarıldığında etiket adını, her özniteliği ve kapanış ayracını ayrı satırlara yerleştirir. Varsayılan olarak devre dışıdır.
single_attribute_per_line=true
single_attribute_per_line=true
"single_attribute_per_line": true
--single-attribute-per-line
sort_attributes
Öznitelikleri ada göre sıralar; id birinci, class ikinci sıraya gelir. Öznitelikleri bir şablon etiketiyle koşula bağlanmış bir etiket yazıldığı sırada kalır, çünkü bir özniteliği dalının dışına taşımak sayfayı değiştirir.
sort_attributes=true
sort_attributes=true
"sort_attributes": true
--sort-attributes
sort_load_tags
Bir django {% load %} etiketindeki kütüphaneleri sıralar ve iki kez yazılanları kaldırır; böylece {% load static i18n %}, {% load i18n static %} olur. {% load a b from library %} içinde from öncesindeki adlar sıralanır. İki kütüphane aynı adla bir etiket ya da filtre tanımladığında son yüklenen kazanır; bu yüzden sıralama, şablonun hangisini kullandığını değiştirebilir.
sort_load_tags=true
sort_load_tags=true
"sort_load_tags": true
--sort-load-tags
stdin_filename
stdin’den okurken per-file-ignores ve mesajlar için kullanılacak dosya adı. Varsayılan değer: “-”.
--stdin-filename templates/index.html
use_gitignore
.gitignore’daki hariç tutmaları varsayılan hariç tutma listesine ekler. Varsayılan olarak devre dışıdır.
use_gitignore=true
use_gitignore=true
"use_gitignore": true
--use-gitignore