djlint 1.30.0 → 1.30.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/.coveragerc +0 -9
- package/.editorconfig +0 -21
- package/.flake8 +0 -0
- package/.github/FUNDING.yml +0 -2
- package/.github/ISSUE_TEMPLATE/config.yml +0 -6
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/ISSUE_TEMPLATE/formatter_but_report.md +0 -30
- package/.github/ISSUE_TEMPLATE/linter_bug_report.md +0 -34
- package/.github/ISSUE_TEMPLATE/translation.md +0 -14
- package/.github/config.yml +0 -4
- package/.github/pull_request_template.md +0 -10
- package/.github/workflows/cancel.yml +0 -17
- package/.github/workflows/demo.yml +0 -98
- package/.github/workflows/issues.yml +0 -23
- package/.github/workflows/linkcheck.yaml +0 -21
- package/.github/workflows/lint.yml +0 -25
- package/.github/workflows/release.yml +0 -57
- package/.github/workflows/test.yml +0 -85
- package/.pre-commit-config.yaml +0 -45
- package/.pre-commit-hooks.yaml +0 -71
- package/.prettierignore +0 -7
- package/.prettierrc +0 -11
- package/.releaserc +0 -16
- package/CHANGELOG.md +0 -13
- package/MANIFEST.in +0 -2
- package/build_demo.sh +0 -17
- package/docs/.eleventy.js +0 -425
- package/docs/.eleventyignore +0 -2
- package/docs/.prettierignore +0 -3
- package/docs/.prettierrc +0 -11
- package/docs/package.json +0 -73
- package/docs/readme.md +0 -17
- package/docs/src/_data/configuration.json +0 -646
- package/docs/src/_data/eleventyComputed.js +0 -22
- package/docs/src/_data/i18n/index.js +0 -159
- package/docs/src/_data/js.js +0 -7
- package/docs/src/_data/locales.js +0 -17
- package/docs/src/_data/site.json +0 -8
- package/docs/src/_includes/demo.njk +0 -157
- package/docs/src/_includes/docs_layout.njk +0 -34
- package/docs/src/_includes/foot.njk +0 -26
- package/docs/src/_includes/index.njk +0 -187
- package/docs/src/_includes/languages_layout.njk +0 -11
- package/docs/src/_includes/layout.njk +0 -111
- package/docs/src/_includes/nav.njk +0 -85
- package/docs/src/_utils/minify-html.js +0 -14
- package/docs/src/_utils/rollupper.js +0 -91
- package/docs/src/_utils/scripts.11ty.js +0 -27
- package/docs/src/demo.njk +0 -4
- package/docs/src/docs/best-practices.md +0 -78
- package/docs/src/docs/changelog.md +0 -452
- package/docs/src/docs/configuration.md +0 -145
- package/docs/src/docs/docs.json +0 -4
- package/docs/src/docs/formatter.md +0 -82
- package/docs/src/docs/getting-started.md +0 -126
- package/docs/src/docs/ignoring-code.md +0 -75
- package/docs/src/docs/integrations.md +0 -120
- package/docs/src/docs/languages/angular.md +0 -31
- package/docs/src/docs/languages/django.md +0 -40
- package/docs/src/docs/languages/golang.md +0 -31
- package/docs/src/docs/languages/handlebars.md +0 -31
- package/docs/src/docs/languages/jinja.md +0 -39
- package/docs/src/docs/languages/languages.json +0 -3
- package/docs/src/docs/languages/mustache.md +0 -31
- package/docs/src/docs/languages/nunjucks.md +0 -39
- package/docs/src/docs/languages/twig.md +0 -41
- package/docs/src/docs/linter.md +0 -199
- package/docs/src/fr/demo.njk +0 -4
- package/docs/src/fr/docs/best-practices.md +0 -78
- package/docs/src/fr/docs/changelog.md +0 -452
- package/docs/src/fr/docs/configuration.md +0 -144
- package/docs/src/fr/docs/docs.json +0 -3
- package/docs/src/fr/docs/formatter.md +0 -83
- package/docs/src/fr/docs/getting-started.md +0 -127
- package/docs/src/fr/docs/ignoring-code.md +0 -75
- package/docs/src/fr/docs/integrations.md +0 -100
- package/docs/src/fr/docs/languages/angular.md +0 -31
- package/docs/src/fr/docs/languages/django.md +0 -31
- package/docs/src/fr/docs/languages/golang.md +0 -31
- package/docs/src/fr/docs/languages/handlebars.md +0 -31
- package/docs/src/fr/docs/languages/jinja.md +0 -31
- package/docs/src/fr/docs/languages/languages.json +0 -3
- package/docs/src/fr/docs/languages/mustache.md +0 -31
- package/docs/src/fr/docs/languages/nunjucks.md +0 -31
- package/docs/src/fr/docs/languages/twig.md +0 -31
- package/docs/src/fr/docs/linter.md +0 -207
- package/docs/src/fr/fr.json +0 -4
- package/docs/src/fr/index.njk +0 -4
- package/docs/src/index.njk +0 -4
- package/docs/src/lib/generate-content-hash.js +0 -13
- package/docs/src/robots.txt +0 -4
- package/docs/src/ru/demo.njk +0 -4
- package/docs/src/ru/docs/best-practices.md +0 -78
- package/docs/src/ru/docs/changelog.md +0 -453
- package/docs/src/ru/docs/configuration.md +0 -142
- package/docs/src/ru/docs/docs.json +0 -3
- package/docs/src/ru/docs/formatter.md +0 -82
- package/docs/src/ru/docs/getting-started.md +0 -127
- package/docs/src/ru/docs/ignoring-code.md +0 -75
- package/docs/src/ru/docs/integrations.md +0 -100
- package/docs/src/ru/docs/languages/angular.md +0 -31
- package/docs/src/ru/docs/languages/django.md +0 -31
- package/docs/src/ru/docs/languages/golang.md +0 -31
- package/docs/src/ru/docs/languages/handlebars.md +0 -31
- package/docs/src/ru/docs/languages/jinja.md +0 -31
- package/docs/src/ru/docs/languages/languages.json +0 -3
- package/docs/src/ru/docs/languages/mustache.md +0 -31
- package/docs/src/ru/docs/languages/nunjucks.md +0 -31
- package/docs/src/ru/docs/languages/twig.md +0 -31
- package/docs/src/ru/docs/linter.md +0 -126
- package/docs/src/ru/index.njk +0 -4
- package/docs/src/ru/ru.json +0 -4
- package/docs/src/sitemap.njk +0 -16
- package/docs/src/static/css/site.scss +0 -467
- package/docs/src/static/font/fontawesome/stylesheet.scss +0 -78
- package/docs/src/static/img/apple-touch-icon.png +0 -0
- package/docs/src/static/img/demo-min.gif +0 -0
- package/docs/src/static/img/demo.gif +0 -0
- package/docs/src/static/img/demo.webm +0 -0
- package/docs/src/static/img/favicon-16x16.png +0 -0
- package/docs/src/static/img/favicon-32x32.png +0 -0
- package/docs/src/static/img/favicon.ico +0 -0
- package/docs/src/static/img/icon-square.indd +0 -0
- package/docs/src/static/img/icon-square.png +0 -0
- package/docs/src/static/img/icon.png +0 -0
- package/docs/src/static/img/logo-192x192.png +0 -0
- package/docs/src/static/img/logo-512x512.png +0 -0
- package/docs/src/static/img/logos/angular.png +0 -0
- package/docs/src/static/img/logos/django.png +0 -0
- package/docs/src/static/img/logos/golang.png +0 -0
- package/docs/src/static/img/logos/handlebars.png +0 -0
- package/docs/src/static/img/logos/jinja.png +0 -0
- package/docs/src/static/img/logos/mustache.png +0 -0
- package/docs/src/static/img/logos/nunjucks.png +0 -0
- package/docs/src/static/img/logos/twig.png +0 -0
- package/docs/src/static/img/old_demo.gif +0 -0
- package/docs/src/static/img/style.css +0 -122
- package/docs/src/static/js/animate.js +0 -69
- package/docs/src/static/js/editor.js +0 -171
- package/docs/src/static/js/hamburger.js +0 -19
- package/docs/src/static/js/modal.js +0 -47
- package/docs/src/static/js/worker.js +0 -142
- package/docs/src/static/py/EditorConfig-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/PyYAML-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/click-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/colorama-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/cssbeautifier-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/djlint-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/html_tag_names-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/html_void_elements-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/jsbeautifier-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/json5-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/pathspec-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- package/docs/src/static/py/six-1.16.0-py2.py3-none-any.whl +0 -0
- package/docs/src/static/py/tomli-2.0.1-py3-none-any.whl +0 -0
- package/docs/src/static/py/tqdm-4.65.0-py3-none-any.whl +0 -0
- package/icon.xcf +0 -0
- package/poetry.lock +0 -835
- package/pyproject.toml +0 -100
- package/renovate.json +0 -44
- package/scripts/updateVersion.js +0 -16
- package/src/djlint/__init__.py +0 -451
- package/src/djlint/__main__.py +0 -4
- package/src/djlint/formatter/__init__.py +0 -1
- package/src/djlint/formatter/attributes.py +0 -212
- package/src/djlint/formatter/compress.py +0 -64
- package/src/djlint/formatter/condense.py +0 -221
- package/src/djlint/formatter/css.py +0 -60
- package/src/djlint/formatter/expand.py +0 -111
- package/src/djlint/formatter/indent.py +0 -418
- package/src/djlint/formatter/js.py +0 -58
- package/src/djlint/helpers.py +0 -321
- package/src/djlint/lint.py +0 -128
- package/src/djlint/output.py +0 -220
- package/src/djlint/reformat.py +0 -63
- package/src/djlint/rules/H025.py +0 -65
- package/src/djlint/rules.yaml +0 -279
- package/src/djlint/settings.py +0 -969
- package/src/djlint/src.py +0 -91
- package/tests/__init__.py +0 -0
- package/tests/conftest.py +0 -239
- package/tests/test_cli.py +0 -71
- package/tests/test_config/__init__.py +0 -0
- package/tests/test_config/test_blank_line_after_tag.py +0 -135
- package/tests/test_config/test_blank_line_before_tag.py +0 -141
- package/tests/test_config/test_close_void_tags.py +0 -31
- package/tests/test_config/test_custom_blocks.py +0 -56
- package/tests/test_config/test_custom_html.py +0 -45
- package/tests/test_config/test_djlintrc/.djlintrc +0 -38
- package/tests/test_config/test_djlintrc/__init__.py +0 -0
- package/tests/test_config/test_djlintrc/test_config.py +0 -44
- package/tests/test_config/test_djlintrc_custom/.djlint-cust +0 -38
- package/tests/test_config/test_djlintrc_custom/.djlintrc +0 -2
- package/tests/test_config/test_djlintrc_custom/__init__.py +0 -0
- package/tests/test_config/test_djlintrc_custom/test_config.py +0 -48
- package/tests/test_config/test_excludes/__init__.py +0 -0
- package/tests/test_config/test_excludes/excluded.html +0 -1
- package/tests/test_config/test_excludes/foo/excluded.html +0 -1
- package/tests/test_config/test_excludes/html.html +0 -1
- package/tests/test_config/test_excludes/pyproject.toml +0 -3
- package/tests/test_config/test_excludes/test_config.py +0 -30
- package/tests/test_config/test_extension/__init__.py +0 -0
- package/tests/test_config/test_extension/html.test +0 -1
- package/tests/test_config/test_extension/pyproject.toml +0 -3
- package/tests/test_config/test_extension/test_config.py +0 -27
- package/tests/test_config/test_files/.djlintrc_global +0 -9
- package/tests/test_config/test_files/test.html +0 -3
- package/tests/test_config/test_files/test_config.py +0 -123
- package/tests/test_config/test_files/test_two.html +0 -1
- package/tests/test_config/test_format_attribute_template_tags.py +0 -280
- package/tests/test_config/test_format_css.py +0 -197
- package/tests/test_config/test_format_js.py +0 -220
- package/tests/test_config/test_gitignore/__init__.py +0 -0
- package/tests/test_config/test_gitignore/html_one.html +0 -1
- package/tests/test_config/test_gitignore/html_two.html +0 -1
- package/tests/test_config/test_gitignore/test_config.py +0 -142
- package/tests/test_config/test_ignore/__init__.py +0 -0
- package/tests/test_config/test_ignore/html.html +0 -1
- package/tests/test_config/test_ignore/html_two.html +0 -12
- package/tests/test_config/test_ignore/pyproject.toml +0 -3
- package/tests/test_config/test_ignore/test_config.py +0 -32
- package/tests/test_config/test_ignore_blocks.py +0 -45
- package/tests/test_config/test_ignore_case.py +0 -39
- package/tests/test_config/test_indent.py +0 -63
- package/tests/test_config/test_linter_output_format/__init__.py +0 -0
- package/tests/test_config/test_linter_output_format/html-one.html +0 -1
- package/tests/test_config/test_linter_output_format/html-two.html +0 -1
- package/tests/test_config/test_linter_output_format/pyproject.toml +0 -3
- package/tests/test_config/test_linter_output_format/test_config.py +0 -34
- package/tests/test_config/test_max_attribute_length.py +0 -100
- package/tests/test_config/test_max_line_length.py +0 -94
- package/tests/test_config/test_per_file_ignores/__init__.py +0 -0
- package/tests/test_config/test_per_file_ignores/html.html +0 -2
- package/tests/test_config/test_per_file_ignores/pyproject.toml +0 -2
- package/tests/test_config/test_per_file_ignores/test_config.py +0 -25
- package/tests/test_config/test_pragmas/__init__.py +0 -0
- package/tests/test_config/test_pragmas/html_five.html +0 -2
- package/tests/test_config/test_pragmas/html_four.html +0 -5
- package/tests/test_config/test_pragmas/html_one.html +0 -1
- package/tests/test_config/test_pragmas/html_six.html +0 -2
- package/tests/test_config/test_pragmas/html_three.html +0 -4
- package/tests/test_config/test_pragmas/html_two.html +0 -2
- package/tests/test_config/test_pragmas/pyproject.toml +0 -3
- package/tests/test_config/test_pragmas/test_config.py +0 -142
- package/tests/test_config/test_preserve_blank_lines.py +0 -109
- package/tests/test_config/test_preserve_leading_space.py +0 -159
- package/tests/test_config/test_profile/__init__.py +0 -0
- package/tests/test_config/test_profile/html.html +0 -2
- package/tests/test_config/test_profile/pyproject.toml +0 -3
- package/tests/test_config/test_profile/test_config.py +0 -64
- package/tests/test_config/test_pyproject/__init__.py +0 -0
- package/tests/test_config/test_pyproject/blank.html +0 -0
- package/tests/test_config/test_pyproject/pyproject.toml +0 -36
- package/tests/test_config/test_pyproject/test_config.py +0 -44
- package/tests/test_django/__init__.py +0 -0
- package/tests/test_django/test_asset.py +0 -32
- package/tests/test_django/test_autoescape.py +0 -25
- package/tests/test_django/test_block.py +0 -29
- package/tests/test_django/test_blocktrans.py +0 -236
- package/tests/test_django/test_blocktrans_trimmed.py +0 -283
- package/tests/test_django/test_comments.py +0 -164
- package/tests/test_django/test_filter.py +0 -30
- package/tests/test_django/test_for.py +0 -34
- package/tests/test_django/test_if.py +0 -34
- package/tests/test_django/test_ifchanged.py +0 -37
- package/tests/test_django/test_include.py +0 -24
- package/tests/test_django/test_load.py +0 -24
- package/tests/test_django/test_quoted.py +0 -34
- package/tests/test_django/test_spaceless.py +0 -30
- package/tests/test_django/test_tag_spaces.py +0 -35
- package/tests/test_django/test_templatetag.py +0 -40
- package/tests/test_django/test_verbatim.py +0 -24
- package/tests/test_django/test_with.py +0 -32
- package/tests/test_djlint/-.html +0 -1
- package/tests/test_djlint/__init__.py +0 -0
- package/tests/test_djlint/bad.html +0 -6
- package/tests/test_djlint/bad.html.dj +0 -23
- package/tests/test_djlint/bad.html.dj2 +0 -2
- package/tests/test_djlint/multiple_files/a/a.html +0 -1
- package/tests/test_djlint/multiple_files/b/b1.html +0 -1
- package/tests/test_djlint/multiple_files/b/b2.html +0 -1
- package/tests/test_djlint/test_djlint.py +0 -242
- package/tests/test_golang/__init__.py +0 -0
- package/tests/test_golang/test_if.py +0 -24
- package/tests/test_golang/test_range.py +0 -24
- package/tests/test_handlebars/__init__.py +0 -0
- package/tests/test_handlebars/test_each.py +0 -34
- package/tests/test_handlebars/test_else.py +0 -24
- package/tests/test_handlebars/test_with.py +0 -24
- package/tests/test_html/__init__.py +0 -0
- package/tests/test_html/test_alpinejs.py +0 -65
- package/tests/test_html/test_attributes.py +0 -935
- package/tests/test_html/test_aurelia.py +0 -24
- package/tests/test_html/test_basics.py +0 -905
- package/tests/test_html/test_bracket_same_line.py +0 -177
- package/tests/test_html/test_case.py +0 -81
- package/tests/test_html/test_cdata.py +0 -34
- package/tests/test_html/test_comments.py +0 -333
- package/tests/test_html/test_css.py +0 -193
- package/tests/test_html/test_doctype_declarations.py +0 -202
- package/tests/test_html/test_ignored.py +0 -193
- package/tests/test_html/test_interpolation.py +0 -56
- package/tests/test_html/test_line_break_after_multiline_tag.py +0 -95
- package/tests/test_html/test_next_line_empty.py +0 -53
- package/tests/test_html/test_selfclosing.py +0 -55
- package/tests/test_html/test_single_attribute_per_line.py +0 -87
- package/tests/test_html/test_srcset.py +0 -43
- package/tests/test_html/test_svg.py +0 -104
- package/tests/test_html/test_symbol_entities.py +0 -34
- package/tests/test_html/test_tag_code.py +0 -24
- package/tests/test_html/test_tag_dd.py +0 -24
- package/tests/test_html/test_tag_details_summary.py +0 -24
- package/tests/test_html/test_tag_dt.py +0 -24
- package/tests/test_html/test_tag_fig_caption.py +0 -29
- package/tests/test_html/test_tag_hr.py +0 -29
- package/tests/test_html/test_tag_picture.py +0 -32
- package/tests/test_html/test_tag_pre.py +0 -45
- package/tests/test_html/test_tag_script.py +0 -516
- package/tests/test_html/test_tag_small.py +0 -24
- package/tests/test_html/test_tag_span.py +0 -119
- package/tests/test_html/test_tag_textarea.py +0 -82
- package/tests/test_html/test_tags.py +0 -842
- package/tests/test_html/test_text.py +0 -34
- package/tests/test_html/test_whitespace.py +0 -477
- package/tests/test_html/test_yaml.py +0 -156
- package/tests/test_jinja/__init__.py +0 -0
- package/tests/test_jinja/test_call.py +0 -34
- package/tests/test_jinja/test_parenthesis.py +0 -24
- package/tests/test_linter/__init__.py +0 -0
- package/tests/test_linter/test_custom_rules/.djlint_rules.yaml +0 -6
- package/tests/test_linter/test_custom_rules/__init__.py +0 -0
- package/tests/test_linter/test_custom_rules/html.html +0 -1
- package/tests/test_linter/test_custom_rules/pyproject.toml +0 -1
- package/tests/test_linter/test_custom_rules/test_linter.py +0 -29
- package/tests/test_linter/test_custom_rules_bad/.djlint_rules.yaml +0 -24
- package/tests/test_linter/test_custom_rules_bad/__init__.py +0 -0
- package/tests/test_linter/test_custom_rules_bad/html.html +0 -1
- package/tests/test_linter/test_custom_rules_bad/pyproject.toml +0 -1
- package/tests/test_linter/test_custom_rules_bad/test_linter.py +0 -29
- package/tests/test_linter/test_django_linter.py +0 -476
- package/tests/test_linter/test_h005.py +0 -45
- package/tests/test_linter/test_h006.py +0 -81
- package/tests/test_linter/test_h007.py +0 -45
- package/tests/test_linter/test_h008.py +0 -60
- package/tests/test_linter/test_h009.py +0 -45
- package/tests/test_linter/test_h010.py +0 -44
- package/tests/test_linter/test_h037.py +0 -150
- package/tests/test_linter/test_ignore_rules.py +0 -45
- package/tests/test_linter/test_jinja_linter.py +0 -227
- package/tests/test_linter/test_linter.py +0 -691
- package/tests/test_linter/test_nunjucks_linter.py +0 -59
- package/tests/test_linter/test_python_module_rules/.djlint_rules.yaml +0 -4
- package/tests/test_linter/test_python_module_rules/__init__.py +0 -0
- package/tests/test_linter/test_python_module_rules/html_bad.html +0 -3
- package/tests/test_linter/test_python_module_rules/html_ok.html +0 -3
- package/tests/test_linter/test_python_module_rules/my_module.py +0 -32
- package/tests/test_linter/test_python_module_rules/pyproject.toml +0 -1
- package/tests/test_linter/test_python_module_rules/test_linter.py +0 -26
- package/tests/test_nunjucks/__init__.py +0 -0
- package/tests/test_nunjucks/test_functions.py +0 -94
- package/tests/test_nunjucks/test_macros.py +0 -41
- package/tests/test_nunjucks/test_set.py +0 -206
- package/tests/test_nunjucks/test_spaceless.py +0 -24
- package/tests/test_twig/__init__.py +0 -0
- package/tests/test_twig/test_comments.py +0 -51
- package/tox.ini +0 -48
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: djLint HTML Template linter comprend plus de 30 règles ! Trouvez les définitions ici. Vous pouvez facilement l'étendre en incluant des règles personnalisées !
|
|
3
|
-
title: Règles du Linter
|
|
4
|
-
keywords: template linter, template formatter, djLint, HTML, modèles, formatter, linter, règles
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Utilisation de djLint
|
|
8
|
-
|
|
9
|
-
djLint inclut de nombreuses règles pour vérifier le style et la validité de vos modèles. Profitez pleinement du linter en le configurant pour utiliser un profil prédéfini pour la langue du modèle de votre choix.
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
djlint /path/to/templates --lint
|
|
13
|
-
|
|
14
|
-
# with custom extensions
|
|
15
|
-
djlint /path/to/templates -e html.dj --profile=django
|
|
16
|
-
|
|
17
|
-
# or to file
|
|
18
|
-
djlint /path/to/this.html.j2 --profile=jinja
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
<div class="box notification is-info is-light">
|
|
22
|
-
<span class="icon is-large"><i class="fas fa-2x fa-circle-arrow-right"></i></span><div class="my-auto ml-3 is-inline-block"><a href="/fr/docs/configuration/">Consultez le guide de configuration pour connaître toutes les options !</a></div>
|
|
23
|
-
</div>
|
|
24
|
-
|
|
25
|
-
## Activation ou désactivation des règles
|
|
26
|
-
|
|
27
|
-
La plupart des règles sont activées par défaut. Les règles peuvent être désactivées en ligne de commande avec l'option `--ignore`. Les règles peuvent être activées avec l'option `--include`.
|
|
28
|
-
|
|
29
|
-
Par exemple :
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
djlint . --lint --include=H017,H035 --ignore=H013,H015
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Cela peut également se faire par l'intermédiaire de l'option [{{ "configuration" | i18n }}]({{ "lang_code_url" | i18n }}/docs/configuration) fichier.
|
|
36
|
-
|
|
37
|
-
## Rules
|
|
38
|
-
|
|
39
|
-
| Code | Signification | Défaut |
|
|
40
|
-
| ---- | ------------------------------------------------------------------------------------------------------------------------- | ------ |
|
|
41
|
-
| D004 | (Django) Les urls statiques doivent suivre le modèle {% raw %}`{% static path/to/file %}`{% endraw %}. | ✔️ |
|
|
42
|
-
| D018 | (Django) Les liens internes doivent utiliser le modèle {% raw %}`{% url ... %}`{% endraw %}. | ✔️ |
|
|
43
|
-
| H005 | La balise Html doit avoir l'attribut `lang`. | ✔️ |
|
|
44
|
-
| H006 | La balise `img` doit avoir les attributs `height` et `width`. | ✔️ |
|
|
45
|
-
| H007 | LA BALISE `<!DOCTYPE ... >` doit être présent avant la balise html. | ✔️ |
|
|
46
|
-
| H008 | Les attributs doivent être entre guillemets. | ✔️ |
|
|
47
|
-
| H009 | Les noms de balises doivent être en minuscules. | ✔️ |
|
|
48
|
-
| H010 | Les noms d'attributs doivent être en minuscules. | ✔️ |
|
|
49
|
-
| H011 | Les valeurs des attributs doivent être citées. | ✔️ |
|
|
50
|
-
| H012 | Il ne doit pas y avoir d'espace autour de l'attribut `=`. | ✔️ |
|
|
51
|
-
| H013 | La balise `img` doit avoir des attributs alt. | ✔️ |
|
|
52
|
-
| H014 | Plus de 2 lignes vides. | ✔️ |
|
|
53
|
-
| H015 | Les balises "h" doivent être suivies d'un retour à la ligne. | ✔️ |
|
|
54
|
-
| H016 | Balise `title` manquante dans le html. | ✔️ |
|
|
55
|
-
| H017 | Les étiquettes vides doivent se refermer automatiquement. | - |
|
|
56
|
-
| H019 | Remplacez `javascript:abc()` par l'événement `on_` et l'url réelle. | ✔️ |
|
|
57
|
-
| H020 | Couple de balises vide trouvé. Envisagez de le supprimer. | ✔️ |
|
|
58
|
-
| H021 | Les styles en ligne doivent être évités. | ✔️ |
|
|
59
|
-
| H022 | Utilisez HTTPS pour les liens externes. | ✔️ |
|
|
60
|
-
| H023 | N'utilisez pas de références d'entités. | ✔️ |
|
|
61
|
-
| H024 | Omettre le type sur les scripts et les styles. | ✔️ |
|
|
62
|
-
| H025 | La balise semble être orpheline. | ✔️ |
|
|
63
|
-
| H026 | Les balises id et class vides peuvent être supprimées. | ✔️ |
|
|
64
|
-
| H029 | Pensez à utiliser des valeurs de méthode de formulaire en minuscules. | ✔️ |
|
|
65
|
-
| H030 | Pensez à ajouter une méta-description. | ✔️ |
|
|
66
|
-
| H031 | Pensez à ajouter des méta keywords. | ✔️ |
|
|
67
|
-
| H033 | Espace supplémentaire dans l'action du formulaire. | ✔️ |
|
|
68
|
-
| J004 | (Jinja) Les urls statiques doivent suivre le modèle {% raw %}`{ url_for('static'..) }}`{% endraw %}. | ✔️ |
|
|
69
|
-
| J018 | (Jinja) Les liens internes doivent utiliser le modèle {% raw %}`{% url ... %}`{% endraw %}. | ✔️ |
|
|
70
|
-
| T001 | Les variables doivent être entourées d'un seul espace. Ex : {% raw %}`{{ this }}`{% endraw %} | ✔️ |
|
|
71
|
-
| T002 | Les doubles quotes doivent être utilisées dans les balises. Ex : {% raw %}`{% extends "this.html" %}`{% endraw %} | ✔️ |
|
|
72
|
-
| T003 | Le bloc de fin doit avoir un nom. Ex : {% raw %}`{% endblock body %}`{% endraw %}. | ✔️ |
|
|
73
|
-
| T027 | Chaîne non fermée trouvée dans la syntaxe du modèle. | ✔️ |
|
|
74
|
-
| T028 | Envisagez d'utiliser des balises sans espace à l'intérieur des valeurs d'attributs. {% raw %}`{%- if/for -%}`{% endraw %} | ✔️ |
|
|
75
|
-
| T032 | Espace blanc supplémentaire trouvé dans les balises du modèle. | ✔️ |
|
|
76
|
-
| T034 | Aviez-vous l'intention d'utiliser {% raw %}{% ... %} au lieu de {% ... }% ? {% endraw %} | ✔️ |
|
|
77
|
-
| H035 | Meta doivent se fermer d'elles-mêmes. | - |
|
|
78
|
-
| H036 | Évitez d'utiliser les balises <br>. | - |
|
|
79
|
-
| H037 | Attribut en double trouvé. | ✔️ |
|
|
80
|
-
|
|
81
|
-
### Modèles de code
|
|
82
|
-
|
|
83
|
-
La première lettre d'un code suit le modèle :
|
|
84
|
-
|
|
85
|
-
::: content
|
|
86
|
-
|
|
87
|
-
- D : s'applique spécifiquement à Django
|
|
88
|
-
- H : s'applique au html
|
|
89
|
-
- J : s'applique spécifiquement à Jinja
|
|
90
|
-
- M : s'applique spécifiquement à Handlebars
|
|
91
|
-
- N : s'applique spécifiquement à Nunjucks
|
|
92
|
-
- T : s'applique généralement aux modèles
|
|
93
|
-
:::
|
|
94
|
-
|
|
95
|
-
### Ajout de règles
|
|
96
|
-
|
|
97
|
-
Nous accueillons volontiers les pull requests contenant de nouvelles règles !
|
|
98
|
-
|
|
99
|
-
Une bonne règle consiste en
|
|
100
|
-
|
|
101
|
-
::: content
|
|
102
|
-
|
|
103
|
-
- Name
|
|
104
|
-
- Code
|
|
105
|
-
- Message - Message à afficher lorsqu'une erreur est trouvée.
|
|
106
|
-
- Flags - Drapeaux de regex. La valeur par défaut est re.DOTALL. ex : re.I|re.M
|
|
107
|
-
- Patterns - Expressions regex qui trouveront l'erreur.
|
|
108
|
-
- Exclude - Liste facultative de profils dont la règle doit être exclue.
|
|
109
|
-
:::
|
|
110
|
-
|
|
111
|
-
Veuillez inclure un test pour valider la règle.
|
|
112
|
-
|
|
113
|
-
## Règles personnalisées
|
|
114
|
-
|
|
115
|
-
Il est possible d'ajouter des règles personnalisées directement au sein de votre projet.
|
|
116
|
-
Pour cela, créez un fichier `.djlint_rules.yaml` à côté de votre `pyproject.toml`.
|
|
117
|
-
Des règles peuvent être ajoutées à ce fichier et djLint les reprendra.
|
|
118
|
-
|
|
119
|
-
### Règle basé sur la recherche d'un regex
|
|
120
|
-
|
|
121
|
-
Vous pouvez ajouter une règle qui échouera si l'un des regex listés dans `patterns`
|
|
122
|
-
est trouvé dans le code html.
|
|
123
|
-
|
|
124
|
-
```yaml
|
|
125
|
-
- rule:
|
|
126
|
-
name: T001
|
|
127
|
-
message: Trouver la Trichotillomanie
|
|
128
|
-
flags: re.DOTALL|re.I
|
|
129
|
-
pattern:
|
|
130
|
-
- Trichotillomanie
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Règle utilisant un module python externe
|
|
134
|
-
|
|
135
|
-
Vous pouvez ajouter une règle qui va importer et executer une fonction python
|
|
136
|
-
personalisée.
|
|
137
|
-
|
|
138
|
-
```yaml
|
|
139
|
-
- rule:
|
|
140
|
-
name: T001
|
|
141
|
-
message: Le mot 'bad' a été trouvé
|
|
142
|
-
python_module: votre_package.votre_module
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Le module indiqué dans `python_module` doit contenir une fonction `run()` qui sera
|
|
146
|
-
executé sur chacun des fichiers testés. La fonction doit accepter les arguments suivants :
|
|
147
|
-
|
|
148
|
-
::: content
|
|
149
|
-
|
|
150
|
-
- `rule`: Le dictionnaire python qui représente votre règle dans `.djlint_rules.yaml`.
|
|
151
|
-
Utilisez cette variable pour accéder aux `name` et `message` que vous avez défini dans
|
|
152
|
-
le `yaml`.
|
|
153
|
-
- `config`: L'objet de configuration global de DJLint.
|
|
154
|
-
- `html`: Le contenu html complet du fichier testé.
|
|
155
|
-
- `filepath`: Chemin du fichier testé.
|
|
156
|
-
- `line_ends`: Liste qui, pour chacune des lignes du fichier html testé, contient un
|
|
157
|
-
dictionnaire avec `start` et `end` qui donnent les indexes globaux dans le fichier du
|
|
158
|
-
début et fin de la ligne. Cette variable peut être utilisée avec `djlint.lint.get_line()`
|
|
159
|
-
pour récupérer le numéro de ligne à partir de l'indexe du caractère dans le fichier html.
|
|
160
|
-
- `*args, **kwargs`: Il est possible que nous ajoutions d'autres arguments à l'avenir,
|
|
161
|
-
il est donc fortement conseillé d'ajouter ces deux arguments pour diminuer les risques
|
|
162
|
-
de bugs en cas de mise à jour de djLint.
|
|
163
|
-
:::
|
|
164
|
-
|
|
165
|
-
La fonction doit retourner une liste de dictionnaire, un pour chacune des erreurs
|
|
166
|
-
trouvées. Le dictionnaire doit contenir les clées suivantes :
|
|
167
|
-
|
|
168
|
-
::: content
|
|
169
|
-
|
|
170
|
-
- `code`: Code de la règle qui rapporte l'erreur (généralement `rule['name']`)
|
|
171
|
-
- `line`: Numéro de ligne et numéro de caractère dans cette ligne, séparées par un `:`.
|
|
172
|
-
Par exemple, `"2:3"` veut dire que l'erreur a été trouvée sur la ligne 2, au caractère 3.
|
|
173
|
-
- `match`: La partie du contenu qui contient l'erreur
|
|
174
|
-
- `message`: Le message qui serra affiché pour signaler l'erreur (généralement `rule['message']`)
|
|
175
|
-
:::
|
|
176
|
-
|
|
177
|
-
```python
|
|
178
|
-
from typing import Any, Dict, List
|
|
179
|
-
from djlint.settings import Config
|
|
180
|
-
from djlint.lint import get_line
|
|
181
|
-
import re
|
|
182
|
-
|
|
183
|
-
def run(
|
|
184
|
-
rule: Dict[str, Any],
|
|
185
|
-
config: djlint.settings.Config,
|
|
186
|
-
html: str,
|
|
187
|
-
filepath: str,
|
|
188
|
-
line_ends: List[Dict[str, int]],
|
|
189
|
-
*args: Any,
|
|
190
|
-
**kwargs: Any,
|
|
191
|
-
) -> List[Dict[str, str]]:
|
|
192
|
-
"""
|
|
193
|
-
Rule that fails if if the html file contains 'bad'. This is just an exemple, in
|
|
194
|
-
reality it's much simpler to do that with "pattern rule".
|
|
195
|
-
"""
|
|
196
|
-
errors: List[Dict[str, str]] = []
|
|
197
|
-
for match in re.finditer(r"bad", html):
|
|
198
|
-
errors.append(
|
|
199
|
-
{
|
|
200
|
-
"code": rule["name"],
|
|
201
|
-
"line": get_line(match.start(), line_ends),
|
|
202
|
-
"match": match.group().strip()[:20],
|
|
203
|
-
"message": rule["message"],
|
|
204
|
-
}
|
|
205
|
-
)
|
|
206
|
-
return errors
|
|
207
|
-
```
|
package/docs/src/fr/fr.json
DELETED
package/docs/src/fr/index.njk
DELETED
package/docs/src/index.njk
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const glob = require('fast-glob');
|
|
3
|
-
const md5 = require('md5');
|
|
4
|
-
|
|
5
|
-
function generateContentHash(dir) {
|
|
6
|
-
const sourceFiles = glob.sync([`${dir}`]);
|
|
7
|
-
const sourceContent = sourceFiles
|
|
8
|
-
.map((sourceFile) => fs.readFileSync(sourceFile))
|
|
9
|
-
.join('');
|
|
10
|
-
return md5(sourceContent).slice(0, 8);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
module.exports = generateContentHash;
|
package/docs/src/robots.txt
DELETED
package/docs/src/ru/demo.njk
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Лучшие практики использования djLint для форматирования HTML-шаблонов.
|
|
3
|
-
title: Лучшие практики
|
|
4
|
-
keywords: облицовка шаблонов, форматер шаблонов, djLint, HTML, шаблоны, форматер, линтер, использование
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# {{ "best_practices" | i18n }}
|
|
8
|
-
|
|
9
|
-
## Пробелы вокруг условных атрибутов
|
|
10
|
-
|
|
11
|
-
Иногда условия используются для добавления классов в тег. djLint удаляет пробелы внутри условных операторов.
|
|
12
|
-
|
|
13
|
-
Этот шаблон рекомендуется:
|
|
14
|
-
|
|
15
|
-
{% raw %}
|
|
16
|
-
|
|
17
|
-
```html
|
|
18
|
-
<div class="class1 {% if condition -%}class2{%- endif %}">содержание</div>
|
|
19
|
-
^ место здесь
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
{% endraw %}
|
|
23
|
-
|
|
24
|
-
Эта схема не рекомендуется:
|
|
25
|
-
|
|
26
|
-
{% raw %}
|
|
27
|
-
|
|
28
|
-
```html
|
|
29
|
-
<div class="class1{% if condition -%} class2{%- endif %}">содержание</div>
|
|
30
|
-
^ место здесь
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
{% endraw %}
|
|
34
|
-
|
|
35
|
-
## `format_attribute_template_tags` и беспространственные условные атрибуты
|
|
36
|
-
|
|
37
|
-
Если `format_attribute_template_tags` опция включена, условные атрибуты должны использовать теги без пробелов, например {% raw %}`{% if a -%}`{% endraw %} в nunjuck и jinja, чтобы удалить пробелы внутри.
|
|
38
|
-
|
|
39
|
-
djLint будет форматировать длинные атрибуты на несколько строк, и пробелы, сохраненные внутри атрибутов, могут сломать ваш код.
|
|
40
|
-
|
|
41
|
-
Рекомендуется использовать этот шаблон:
|
|
42
|
-
|
|
43
|
-
{% raw %}
|
|
44
|
-
|
|
45
|
-
```html
|
|
46
|
-
<input
|
|
47
|
-
value="{% if database -%}{{ database.name }}{%- else -%}бла{%- endif %}"
|
|
48
|
-
/>
|
|
49
|
-
^ ^ ^ ^ -- беспространственные метки
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
{% endraw %}
|
|
53
|
-
|
|
54
|
-
Эта схема не рекомендуется:
|
|
55
|
-
|
|
56
|
-
{% raw %}
|
|
57
|
-
|
|
58
|
-
```html
|
|
59
|
-
<input value="{% if database %}{{ database.name }}{% else %}бла{% endif %}" />
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
{% endraw %}
|
|
63
|
-
|
|
64
|
-
После форматирования это может выглядеть следующим образом:
|
|
65
|
-
|
|
66
|
-
{% raw %}
|
|
67
|
-
|
|
68
|
-
```html
|
|
69
|
-
<input
|
|
70
|
-
value="{% if database %}
|
|
71
|
-
{{ database.name }}
|
|
72
|
-
{% else %}
|
|
73
|
-
бла
|
|
74
|
-
{% endif %}"
|
|
75
|
-
/>
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
{% endraw %}
|