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.
Files changed (368) hide show
  1. package/package.json +3 -2
  2. package/.coveragerc +0 -9
  3. package/.editorconfig +0 -21
  4. package/.flake8 +0 -0
  5. package/.github/FUNDING.yml +0 -2
  6. package/.github/ISSUE_TEMPLATE/config.yml +0 -6
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  8. package/.github/ISSUE_TEMPLATE/formatter_but_report.md +0 -30
  9. package/.github/ISSUE_TEMPLATE/linter_bug_report.md +0 -34
  10. package/.github/ISSUE_TEMPLATE/translation.md +0 -14
  11. package/.github/config.yml +0 -4
  12. package/.github/pull_request_template.md +0 -10
  13. package/.github/workflows/cancel.yml +0 -17
  14. package/.github/workflows/demo.yml +0 -98
  15. package/.github/workflows/issues.yml +0 -23
  16. package/.github/workflows/linkcheck.yaml +0 -21
  17. package/.github/workflows/lint.yml +0 -25
  18. package/.github/workflows/release.yml +0 -57
  19. package/.github/workflows/test.yml +0 -85
  20. package/.pre-commit-config.yaml +0 -45
  21. package/.pre-commit-hooks.yaml +0 -71
  22. package/.prettierignore +0 -7
  23. package/.prettierrc +0 -11
  24. package/.releaserc +0 -16
  25. package/CHANGELOG.md +0 -13
  26. package/MANIFEST.in +0 -2
  27. package/build_demo.sh +0 -17
  28. package/docs/.eleventy.js +0 -425
  29. package/docs/.eleventyignore +0 -2
  30. package/docs/.prettierignore +0 -3
  31. package/docs/.prettierrc +0 -11
  32. package/docs/package.json +0 -73
  33. package/docs/readme.md +0 -17
  34. package/docs/src/_data/configuration.json +0 -646
  35. package/docs/src/_data/eleventyComputed.js +0 -22
  36. package/docs/src/_data/i18n/index.js +0 -159
  37. package/docs/src/_data/js.js +0 -7
  38. package/docs/src/_data/locales.js +0 -17
  39. package/docs/src/_data/site.json +0 -8
  40. package/docs/src/_includes/demo.njk +0 -157
  41. package/docs/src/_includes/docs_layout.njk +0 -34
  42. package/docs/src/_includes/foot.njk +0 -26
  43. package/docs/src/_includes/index.njk +0 -187
  44. package/docs/src/_includes/languages_layout.njk +0 -11
  45. package/docs/src/_includes/layout.njk +0 -111
  46. package/docs/src/_includes/nav.njk +0 -85
  47. package/docs/src/_utils/minify-html.js +0 -14
  48. package/docs/src/_utils/rollupper.js +0 -91
  49. package/docs/src/_utils/scripts.11ty.js +0 -27
  50. package/docs/src/demo.njk +0 -4
  51. package/docs/src/docs/best-practices.md +0 -78
  52. package/docs/src/docs/changelog.md +0 -452
  53. package/docs/src/docs/configuration.md +0 -145
  54. package/docs/src/docs/docs.json +0 -4
  55. package/docs/src/docs/formatter.md +0 -82
  56. package/docs/src/docs/getting-started.md +0 -126
  57. package/docs/src/docs/ignoring-code.md +0 -75
  58. package/docs/src/docs/integrations.md +0 -120
  59. package/docs/src/docs/languages/angular.md +0 -31
  60. package/docs/src/docs/languages/django.md +0 -40
  61. package/docs/src/docs/languages/golang.md +0 -31
  62. package/docs/src/docs/languages/handlebars.md +0 -31
  63. package/docs/src/docs/languages/jinja.md +0 -39
  64. package/docs/src/docs/languages/languages.json +0 -3
  65. package/docs/src/docs/languages/mustache.md +0 -31
  66. package/docs/src/docs/languages/nunjucks.md +0 -39
  67. package/docs/src/docs/languages/twig.md +0 -41
  68. package/docs/src/docs/linter.md +0 -199
  69. package/docs/src/fr/demo.njk +0 -4
  70. package/docs/src/fr/docs/best-practices.md +0 -78
  71. package/docs/src/fr/docs/changelog.md +0 -452
  72. package/docs/src/fr/docs/configuration.md +0 -144
  73. package/docs/src/fr/docs/docs.json +0 -3
  74. package/docs/src/fr/docs/formatter.md +0 -83
  75. package/docs/src/fr/docs/getting-started.md +0 -127
  76. package/docs/src/fr/docs/ignoring-code.md +0 -75
  77. package/docs/src/fr/docs/integrations.md +0 -100
  78. package/docs/src/fr/docs/languages/angular.md +0 -31
  79. package/docs/src/fr/docs/languages/django.md +0 -31
  80. package/docs/src/fr/docs/languages/golang.md +0 -31
  81. package/docs/src/fr/docs/languages/handlebars.md +0 -31
  82. package/docs/src/fr/docs/languages/jinja.md +0 -31
  83. package/docs/src/fr/docs/languages/languages.json +0 -3
  84. package/docs/src/fr/docs/languages/mustache.md +0 -31
  85. package/docs/src/fr/docs/languages/nunjucks.md +0 -31
  86. package/docs/src/fr/docs/languages/twig.md +0 -31
  87. package/docs/src/fr/docs/linter.md +0 -207
  88. package/docs/src/fr/fr.json +0 -4
  89. package/docs/src/fr/index.njk +0 -4
  90. package/docs/src/index.njk +0 -4
  91. package/docs/src/lib/generate-content-hash.js +0 -13
  92. package/docs/src/robots.txt +0 -4
  93. package/docs/src/ru/demo.njk +0 -4
  94. package/docs/src/ru/docs/best-practices.md +0 -78
  95. package/docs/src/ru/docs/changelog.md +0 -453
  96. package/docs/src/ru/docs/configuration.md +0 -142
  97. package/docs/src/ru/docs/docs.json +0 -3
  98. package/docs/src/ru/docs/formatter.md +0 -82
  99. package/docs/src/ru/docs/getting-started.md +0 -127
  100. package/docs/src/ru/docs/ignoring-code.md +0 -75
  101. package/docs/src/ru/docs/integrations.md +0 -100
  102. package/docs/src/ru/docs/languages/angular.md +0 -31
  103. package/docs/src/ru/docs/languages/django.md +0 -31
  104. package/docs/src/ru/docs/languages/golang.md +0 -31
  105. package/docs/src/ru/docs/languages/handlebars.md +0 -31
  106. package/docs/src/ru/docs/languages/jinja.md +0 -31
  107. package/docs/src/ru/docs/languages/languages.json +0 -3
  108. package/docs/src/ru/docs/languages/mustache.md +0 -31
  109. package/docs/src/ru/docs/languages/nunjucks.md +0 -31
  110. package/docs/src/ru/docs/languages/twig.md +0 -31
  111. package/docs/src/ru/docs/linter.md +0 -126
  112. package/docs/src/ru/index.njk +0 -4
  113. package/docs/src/ru/ru.json +0 -4
  114. package/docs/src/sitemap.njk +0 -16
  115. package/docs/src/static/css/site.scss +0 -467
  116. package/docs/src/static/font/fontawesome/stylesheet.scss +0 -78
  117. package/docs/src/static/img/apple-touch-icon.png +0 -0
  118. package/docs/src/static/img/demo-min.gif +0 -0
  119. package/docs/src/static/img/demo.gif +0 -0
  120. package/docs/src/static/img/demo.webm +0 -0
  121. package/docs/src/static/img/favicon-16x16.png +0 -0
  122. package/docs/src/static/img/favicon-32x32.png +0 -0
  123. package/docs/src/static/img/favicon.ico +0 -0
  124. package/docs/src/static/img/icon-square.indd +0 -0
  125. package/docs/src/static/img/icon-square.png +0 -0
  126. package/docs/src/static/img/icon.png +0 -0
  127. package/docs/src/static/img/logo-192x192.png +0 -0
  128. package/docs/src/static/img/logo-512x512.png +0 -0
  129. package/docs/src/static/img/logos/angular.png +0 -0
  130. package/docs/src/static/img/logos/django.png +0 -0
  131. package/docs/src/static/img/logos/golang.png +0 -0
  132. package/docs/src/static/img/logos/handlebars.png +0 -0
  133. package/docs/src/static/img/logos/jinja.png +0 -0
  134. package/docs/src/static/img/logos/mustache.png +0 -0
  135. package/docs/src/static/img/logos/nunjucks.png +0 -0
  136. package/docs/src/static/img/logos/twig.png +0 -0
  137. package/docs/src/static/img/old_demo.gif +0 -0
  138. package/docs/src/static/img/style.css +0 -122
  139. package/docs/src/static/js/animate.js +0 -69
  140. package/docs/src/static/js/editor.js +0 -171
  141. package/docs/src/static/js/hamburger.js +0 -19
  142. package/docs/src/static/js/modal.js +0 -47
  143. package/docs/src/static/js/worker.js +0 -142
  144. package/docs/src/static/py/EditorConfig-99-py3-none-any.whl +0 -0
  145. package/docs/src/static/py/PyYAML-99-py3-none-any.whl +0 -0
  146. package/docs/src/static/py/click-99-py3-none-any.whl +0 -0
  147. package/docs/src/static/py/colorama-99-py3-none-any.whl +0 -0
  148. package/docs/src/static/py/cssbeautifier-99-py3-none-any.whl +0 -0
  149. package/docs/src/static/py/djlint-99-py3-none-any.whl +0 -0
  150. package/docs/src/static/py/html_tag_names-99-py3-none-any.whl +0 -0
  151. package/docs/src/static/py/html_void_elements-99-py3-none-any.whl +0 -0
  152. package/docs/src/static/py/jsbeautifier-99-py3-none-any.whl +0 -0
  153. package/docs/src/static/py/json5-99-py3-none-any.whl +0 -0
  154. package/docs/src/static/py/pathspec-99-py3-none-any.whl +0 -0
  155. package/docs/src/static/py/regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
  156. package/docs/src/static/py/six-1.16.0-py2.py3-none-any.whl +0 -0
  157. package/docs/src/static/py/tomli-2.0.1-py3-none-any.whl +0 -0
  158. package/docs/src/static/py/tqdm-4.65.0-py3-none-any.whl +0 -0
  159. package/icon.xcf +0 -0
  160. package/poetry.lock +0 -835
  161. package/pyproject.toml +0 -100
  162. package/renovate.json +0 -44
  163. package/scripts/updateVersion.js +0 -16
  164. package/src/djlint/__init__.py +0 -451
  165. package/src/djlint/__main__.py +0 -4
  166. package/src/djlint/formatter/__init__.py +0 -1
  167. package/src/djlint/formatter/attributes.py +0 -212
  168. package/src/djlint/formatter/compress.py +0 -64
  169. package/src/djlint/formatter/condense.py +0 -221
  170. package/src/djlint/formatter/css.py +0 -60
  171. package/src/djlint/formatter/expand.py +0 -111
  172. package/src/djlint/formatter/indent.py +0 -418
  173. package/src/djlint/formatter/js.py +0 -58
  174. package/src/djlint/helpers.py +0 -321
  175. package/src/djlint/lint.py +0 -128
  176. package/src/djlint/output.py +0 -220
  177. package/src/djlint/reformat.py +0 -63
  178. package/src/djlint/rules/H025.py +0 -65
  179. package/src/djlint/rules.yaml +0 -279
  180. package/src/djlint/settings.py +0 -969
  181. package/src/djlint/src.py +0 -91
  182. package/tests/__init__.py +0 -0
  183. package/tests/conftest.py +0 -239
  184. package/tests/test_cli.py +0 -71
  185. package/tests/test_config/__init__.py +0 -0
  186. package/tests/test_config/test_blank_line_after_tag.py +0 -135
  187. package/tests/test_config/test_blank_line_before_tag.py +0 -141
  188. package/tests/test_config/test_close_void_tags.py +0 -31
  189. package/tests/test_config/test_custom_blocks.py +0 -56
  190. package/tests/test_config/test_custom_html.py +0 -45
  191. package/tests/test_config/test_djlintrc/.djlintrc +0 -38
  192. package/tests/test_config/test_djlintrc/__init__.py +0 -0
  193. package/tests/test_config/test_djlintrc/test_config.py +0 -44
  194. package/tests/test_config/test_djlintrc_custom/.djlint-cust +0 -38
  195. package/tests/test_config/test_djlintrc_custom/.djlintrc +0 -2
  196. package/tests/test_config/test_djlintrc_custom/__init__.py +0 -0
  197. package/tests/test_config/test_djlintrc_custom/test_config.py +0 -48
  198. package/tests/test_config/test_excludes/__init__.py +0 -0
  199. package/tests/test_config/test_excludes/excluded.html +0 -1
  200. package/tests/test_config/test_excludes/foo/excluded.html +0 -1
  201. package/tests/test_config/test_excludes/html.html +0 -1
  202. package/tests/test_config/test_excludes/pyproject.toml +0 -3
  203. package/tests/test_config/test_excludes/test_config.py +0 -30
  204. package/tests/test_config/test_extension/__init__.py +0 -0
  205. package/tests/test_config/test_extension/html.test +0 -1
  206. package/tests/test_config/test_extension/pyproject.toml +0 -3
  207. package/tests/test_config/test_extension/test_config.py +0 -27
  208. package/tests/test_config/test_files/.djlintrc_global +0 -9
  209. package/tests/test_config/test_files/test.html +0 -3
  210. package/tests/test_config/test_files/test_config.py +0 -123
  211. package/tests/test_config/test_files/test_two.html +0 -1
  212. package/tests/test_config/test_format_attribute_template_tags.py +0 -280
  213. package/tests/test_config/test_format_css.py +0 -197
  214. package/tests/test_config/test_format_js.py +0 -220
  215. package/tests/test_config/test_gitignore/__init__.py +0 -0
  216. package/tests/test_config/test_gitignore/html_one.html +0 -1
  217. package/tests/test_config/test_gitignore/html_two.html +0 -1
  218. package/tests/test_config/test_gitignore/test_config.py +0 -142
  219. package/tests/test_config/test_ignore/__init__.py +0 -0
  220. package/tests/test_config/test_ignore/html.html +0 -1
  221. package/tests/test_config/test_ignore/html_two.html +0 -12
  222. package/tests/test_config/test_ignore/pyproject.toml +0 -3
  223. package/tests/test_config/test_ignore/test_config.py +0 -32
  224. package/tests/test_config/test_ignore_blocks.py +0 -45
  225. package/tests/test_config/test_ignore_case.py +0 -39
  226. package/tests/test_config/test_indent.py +0 -63
  227. package/tests/test_config/test_linter_output_format/__init__.py +0 -0
  228. package/tests/test_config/test_linter_output_format/html-one.html +0 -1
  229. package/tests/test_config/test_linter_output_format/html-two.html +0 -1
  230. package/tests/test_config/test_linter_output_format/pyproject.toml +0 -3
  231. package/tests/test_config/test_linter_output_format/test_config.py +0 -34
  232. package/tests/test_config/test_max_attribute_length.py +0 -100
  233. package/tests/test_config/test_max_line_length.py +0 -94
  234. package/tests/test_config/test_per_file_ignores/__init__.py +0 -0
  235. package/tests/test_config/test_per_file_ignores/html.html +0 -2
  236. package/tests/test_config/test_per_file_ignores/pyproject.toml +0 -2
  237. package/tests/test_config/test_per_file_ignores/test_config.py +0 -25
  238. package/tests/test_config/test_pragmas/__init__.py +0 -0
  239. package/tests/test_config/test_pragmas/html_five.html +0 -2
  240. package/tests/test_config/test_pragmas/html_four.html +0 -5
  241. package/tests/test_config/test_pragmas/html_one.html +0 -1
  242. package/tests/test_config/test_pragmas/html_six.html +0 -2
  243. package/tests/test_config/test_pragmas/html_three.html +0 -4
  244. package/tests/test_config/test_pragmas/html_two.html +0 -2
  245. package/tests/test_config/test_pragmas/pyproject.toml +0 -3
  246. package/tests/test_config/test_pragmas/test_config.py +0 -142
  247. package/tests/test_config/test_preserve_blank_lines.py +0 -109
  248. package/tests/test_config/test_preserve_leading_space.py +0 -159
  249. package/tests/test_config/test_profile/__init__.py +0 -0
  250. package/tests/test_config/test_profile/html.html +0 -2
  251. package/tests/test_config/test_profile/pyproject.toml +0 -3
  252. package/tests/test_config/test_profile/test_config.py +0 -64
  253. package/tests/test_config/test_pyproject/__init__.py +0 -0
  254. package/tests/test_config/test_pyproject/blank.html +0 -0
  255. package/tests/test_config/test_pyproject/pyproject.toml +0 -36
  256. package/tests/test_config/test_pyproject/test_config.py +0 -44
  257. package/tests/test_django/__init__.py +0 -0
  258. package/tests/test_django/test_asset.py +0 -32
  259. package/tests/test_django/test_autoescape.py +0 -25
  260. package/tests/test_django/test_block.py +0 -29
  261. package/tests/test_django/test_blocktrans.py +0 -236
  262. package/tests/test_django/test_blocktrans_trimmed.py +0 -283
  263. package/tests/test_django/test_comments.py +0 -164
  264. package/tests/test_django/test_filter.py +0 -30
  265. package/tests/test_django/test_for.py +0 -34
  266. package/tests/test_django/test_if.py +0 -34
  267. package/tests/test_django/test_ifchanged.py +0 -37
  268. package/tests/test_django/test_include.py +0 -24
  269. package/tests/test_django/test_load.py +0 -24
  270. package/tests/test_django/test_quoted.py +0 -34
  271. package/tests/test_django/test_spaceless.py +0 -30
  272. package/tests/test_django/test_tag_spaces.py +0 -35
  273. package/tests/test_django/test_templatetag.py +0 -40
  274. package/tests/test_django/test_verbatim.py +0 -24
  275. package/tests/test_django/test_with.py +0 -32
  276. package/tests/test_djlint/-.html +0 -1
  277. package/tests/test_djlint/__init__.py +0 -0
  278. package/tests/test_djlint/bad.html +0 -6
  279. package/tests/test_djlint/bad.html.dj +0 -23
  280. package/tests/test_djlint/bad.html.dj2 +0 -2
  281. package/tests/test_djlint/multiple_files/a/a.html +0 -1
  282. package/tests/test_djlint/multiple_files/b/b1.html +0 -1
  283. package/tests/test_djlint/multiple_files/b/b2.html +0 -1
  284. package/tests/test_djlint/test_djlint.py +0 -242
  285. package/tests/test_golang/__init__.py +0 -0
  286. package/tests/test_golang/test_if.py +0 -24
  287. package/tests/test_golang/test_range.py +0 -24
  288. package/tests/test_handlebars/__init__.py +0 -0
  289. package/tests/test_handlebars/test_each.py +0 -34
  290. package/tests/test_handlebars/test_else.py +0 -24
  291. package/tests/test_handlebars/test_with.py +0 -24
  292. package/tests/test_html/__init__.py +0 -0
  293. package/tests/test_html/test_alpinejs.py +0 -65
  294. package/tests/test_html/test_attributes.py +0 -935
  295. package/tests/test_html/test_aurelia.py +0 -24
  296. package/tests/test_html/test_basics.py +0 -905
  297. package/tests/test_html/test_bracket_same_line.py +0 -177
  298. package/tests/test_html/test_case.py +0 -81
  299. package/tests/test_html/test_cdata.py +0 -34
  300. package/tests/test_html/test_comments.py +0 -333
  301. package/tests/test_html/test_css.py +0 -193
  302. package/tests/test_html/test_doctype_declarations.py +0 -202
  303. package/tests/test_html/test_ignored.py +0 -193
  304. package/tests/test_html/test_interpolation.py +0 -56
  305. package/tests/test_html/test_line_break_after_multiline_tag.py +0 -95
  306. package/tests/test_html/test_next_line_empty.py +0 -53
  307. package/tests/test_html/test_selfclosing.py +0 -55
  308. package/tests/test_html/test_single_attribute_per_line.py +0 -87
  309. package/tests/test_html/test_srcset.py +0 -43
  310. package/tests/test_html/test_svg.py +0 -104
  311. package/tests/test_html/test_symbol_entities.py +0 -34
  312. package/tests/test_html/test_tag_code.py +0 -24
  313. package/tests/test_html/test_tag_dd.py +0 -24
  314. package/tests/test_html/test_tag_details_summary.py +0 -24
  315. package/tests/test_html/test_tag_dt.py +0 -24
  316. package/tests/test_html/test_tag_fig_caption.py +0 -29
  317. package/tests/test_html/test_tag_hr.py +0 -29
  318. package/tests/test_html/test_tag_picture.py +0 -32
  319. package/tests/test_html/test_tag_pre.py +0 -45
  320. package/tests/test_html/test_tag_script.py +0 -516
  321. package/tests/test_html/test_tag_small.py +0 -24
  322. package/tests/test_html/test_tag_span.py +0 -119
  323. package/tests/test_html/test_tag_textarea.py +0 -82
  324. package/tests/test_html/test_tags.py +0 -842
  325. package/tests/test_html/test_text.py +0 -34
  326. package/tests/test_html/test_whitespace.py +0 -477
  327. package/tests/test_html/test_yaml.py +0 -156
  328. package/tests/test_jinja/__init__.py +0 -0
  329. package/tests/test_jinja/test_call.py +0 -34
  330. package/tests/test_jinja/test_parenthesis.py +0 -24
  331. package/tests/test_linter/__init__.py +0 -0
  332. package/tests/test_linter/test_custom_rules/.djlint_rules.yaml +0 -6
  333. package/tests/test_linter/test_custom_rules/__init__.py +0 -0
  334. package/tests/test_linter/test_custom_rules/html.html +0 -1
  335. package/tests/test_linter/test_custom_rules/pyproject.toml +0 -1
  336. package/tests/test_linter/test_custom_rules/test_linter.py +0 -29
  337. package/tests/test_linter/test_custom_rules_bad/.djlint_rules.yaml +0 -24
  338. package/tests/test_linter/test_custom_rules_bad/__init__.py +0 -0
  339. package/tests/test_linter/test_custom_rules_bad/html.html +0 -1
  340. package/tests/test_linter/test_custom_rules_bad/pyproject.toml +0 -1
  341. package/tests/test_linter/test_custom_rules_bad/test_linter.py +0 -29
  342. package/tests/test_linter/test_django_linter.py +0 -476
  343. package/tests/test_linter/test_h005.py +0 -45
  344. package/tests/test_linter/test_h006.py +0 -81
  345. package/tests/test_linter/test_h007.py +0 -45
  346. package/tests/test_linter/test_h008.py +0 -60
  347. package/tests/test_linter/test_h009.py +0 -45
  348. package/tests/test_linter/test_h010.py +0 -44
  349. package/tests/test_linter/test_h037.py +0 -150
  350. package/tests/test_linter/test_ignore_rules.py +0 -45
  351. package/tests/test_linter/test_jinja_linter.py +0 -227
  352. package/tests/test_linter/test_linter.py +0 -691
  353. package/tests/test_linter/test_nunjucks_linter.py +0 -59
  354. package/tests/test_linter/test_python_module_rules/.djlint_rules.yaml +0 -4
  355. package/tests/test_linter/test_python_module_rules/__init__.py +0 -0
  356. package/tests/test_linter/test_python_module_rules/html_bad.html +0 -3
  357. package/tests/test_linter/test_python_module_rules/html_ok.html +0 -3
  358. package/tests/test_linter/test_python_module_rules/my_module.py +0 -32
  359. package/tests/test_linter/test_python_module_rules/pyproject.toml +0 -1
  360. package/tests/test_linter/test_python_module_rules/test_linter.py +0 -26
  361. package/tests/test_nunjucks/__init__.py +0 -0
  362. package/tests/test_nunjucks/test_functions.py +0 -94
  363. package/tests/test_nunjucks/test_macros.py +0 -41
  364. package/tests/test_nunjucks/test_set.py +0 -206
  365. package/tests/test_nunjucks/test_spaceless.py +0 -24
  366. package/tests/test_twig/__init__.py +0 -0
  367. package/tests/test_twig/test_comments.py +0 -51
  368. package/tox.ini +0 -48
@@ -1,126 +0,0 @@
1
- ---
2
- description: djLint HTML Template linter включает более 30 правил! Найти определения можно здесь. Легко расширить, включив пользовательские правила!
3
- title: Правила Линтера
4
- keywords: облицовка шаблонов, форматер шаблонов, djLint, HTML, шаблоны, форматер, линтер, использование, правила
5
- ---
6
-
7
- # Использование вкладышей
8
-
9
- djLint включает в себя множество правил для проверки стиля и валидности ваших шаблонов. Используйте все преимущества линтера, настроив его на использование предустановленного профиля для выбранного вами языка шаблонов.
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="/ru/docs/configuration/">Ознакомьтесь с руководством по настройке, чтобы узнать обо всех возможностях!</a></div>
23
- </div>
24
-
25
- ## Включение или отключение правил
26
-
27
- Большинство правил включены по умолчанию. Правила могут быть отключены в командной строке с помощью флага `--ignore`. Правила могут быть включены с помощью флага `--include`.
28
-
29
- Например:
30
-
31
- ```bash
32
- djlint . --lint --include=H017,H035 --ignore=H013,H015
33
- ```
34
-
35
- Это также можно сделать через [{{ "configuration" | i18n }}]({{ "lang_code_url" | i18n }}/docs/configuration) файл.
36
-
37
- ## Правила
38
-
39
- | Код | Значение | По умолчанию |
40
- | ---- | ------------------------------------------------------------------------------------------------------------------------- | ------------ |
41
- | D004 | (Django) Статические урлы должны следовать шаблону {% raw %}`{% static path/to/file %}`{% endraw %}. | ✔️ |
42
- | D018 | (Django) Внутренние ссылки должны использовать шаблон {% raw %}`{% url ... %}`{% endraw %}. | ✔️ |
43
- | H005 | Html-тег должен иметь атрибут `lang`. | ✔️ |
44
- | H006 | Тег `img` должен иметь атрибуты `height` и `width`. | ✔️ |
45
- | H007 | `<!DOCTYPE ... >` должен присутствовать перед тегом html. | ✔️ |
46
- | H008 | Атрибуты должны быть заключены в двойные кавычки. | ✔️ |
47
- | H009 | Имена тегов должны быть в нижнем регистре. | ✔️ |
48
- | H010 | Имена атрибутов должны быть в нижнем регистре. | ✔️ |
49
- | H011 | Значения атрибутов должны быть заключены в кавычки. | ✔️ |
50
- | H012 | Вокруг атрибута `=` не должно быть пробелов. | ✔️ |
51
- | H013 | Тег `img` должен иметь атрибуты alt. | ✔️ |
52
- | H014 | Более 2 пустых строк. | ✔️ |
53
- | H015 | После тегов `h` следует перевод строки. | ✔️ |
54
- | H016 | Отсутствие тега `title` в html. | ✔️ |
55
- | H017 | Метки пустоты должны быть самозакрывающимися. | - |
56
- | H019 | Замените `javascript:abc()` на событие `on_` и реальный url. | ✔️ |
57
- | H020 | Найдена пустая пара тегов. Рассмотрите возможность удаления. | ✔️ |
58
- | H021 | Следует избегать инлайн-стилей. | ✔️ |
59
- | H022 | Используйте HTTPS для внешних ссылок. | ✔️ |
60
- | H023 | Не используйте ссылки на сущности. | ✔️ |
61
- | H024 | Опускайте тип в скриптах и стилях. | ✔️ |
62
- | H025 | Тег кажется бесхозным. | ✔️ |
63
- | H026 | Пустые теги id и class могут быть удалены. | ✔️ |
64
- | H029 | Рассмотрите возможность использования строчных значений метода формы. | ✔️ |
65
- | H030 | Рассмотрите возможность добавления мета-описания. | ✔️ |
66
- | H031 | Рассмотрите возможность добавления мета-ключевых слов. | ✔️ |
67
- | H033 | В действии формы обнаружен лишний пробел. | ✔️ |
68
- | J004 | (Jinja) Статические урлы должны следовать шаблону {% raw %}`{{ url_for('static'...)}}`{% endraw %}. | ✔️ |
69
- | J018 | (Jinja) Внутренние ссылки должны использовать шаблон {% raw %}`{% url ... %}`{% endraw %}. | ✔️ |
70
- | T001 | Переменные должны быть заключены в один пробел. Например: {% raw %}`{{ this }}`{% endraw %} | ✔️ |
71
- | T002 | В тегах следует использовать двойные кавычки. Ex {% raw %}`{% extends "this.html" %}`{% endraw %} | ✔️ |
72
- | T003 | Конечный блок должен иметь имя. Например: {% raw %}`{% endblock body %}`{% endraw %}. | ✔️ |
73
- | T027 | В синтаксисе шаблона найдена незакрытая строка. | ✔️ |
74
- | T028 | Рассмотрите возможность использования тегов без пробелов внутри значений атрибутов. {% raw %}`{%- if/for -%}`{% endraw %} | ✔️ |
75
- | T032 | В тегах шаблона обнаружены лишние пробелы. | ✔️ |
76
- | T034 | Вы намеревались использовать {% raw %}{% ... %} вместо {% ... }%? {% endraw %} | ✔️ |
77
- | H035 | Meta должны быть самозакрывающимися. | - |
78
- | H036 | Избегайте использования тегов <br>. | - |
79
- | H037 | Найдено дублирование атрибута. | ✔️ |
80
-
81
- ### Кодовые шаблоны
82
-
83
- Первая буква кода соответствует схеме:
84
-
85
- ::: content
86
-
87
- - D: применяется специально для Django
88
- - H: применяется к html
89
- - J: применяется специально для Jinja
90
- - M: применяется специально для Handlebars
91
- - N: применяется специально для Nunjucks
92
- - T: применяется в целом к шаблонам
93
- :::
94
-
95
- ### Добавление правил
96
-
97
- Мы приветствуем запросы с новыми правилами!
98
-
99
- Хорошее правило состоит из
100
-
101
- ::: content
102
-
103
- - Name
104
- - Code
105
- - Message - Сообщение для отображения при обнаружении ошибки.
106
- - Flags - Флаги регекса. По умолчанию используется re.DOTALL. например: re.I|re.M
107
- - Patterns - regex-выражения, которые найдут ошибку.
108
- - Exclude - Необязательный список профилей, из которых нужно исключить правило.
109
- :::
110
-
111
- Пожалуйста, включите тест для проверки правила.
112
-
113
- ## Пользовательские правила
114
-
115
- Создайте файл `.djlint_rules.yaml` рядом с вашим `pyproject.toml`. Правила могут быть добавлены в этот файл, и djLint подхватит их.
116
-
117
- Хорошее правило выглядит следующим образом:
118
-
119
- ```yaml
120
- - rule:
121
- name: T001
122
- message: Найти трихотилломанию
123
- flags: re.DOTALL|re.I
124
- patterns:
125
- - трихотилломанию
126
- ```
@@ -1,4 +0,0 @@
1
- ---
2
- layout: index.njk
3
- date: Last Modified
4
- ---
@@ -1,4 +0,0 @@
1
- {
2
- "dir": "ltr",
3
- "locale": "ru"
4
- }
@@ -1,16 +0,0 @@
1
- ---
2
- permalink: /sitemap.xml
3
- eleventyExcludeFromCollections: true
4
- ---
5
- <?xml version="1.0" encoding="utf-8"?>
6
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
7
- {%- for page in collections.all -%}
8
- {%- if not page.data.draft %}
9
- <url>
10
- <loc>{{ site.url }}{{ page.url | url }}</loc>
11
- <lastmod>{{ page.date.toISOString() }}</lastmod>
12
- <changefreq>{{ page.data.changeFreq if page.data.changeFreq else "weekly" }}</changefreq>
13
- </url>
14
- {%- endif -%}
15
- {%- endfor -%}
16
- </urlset>
@@ -1,467 +0,0 @@
1
- @use '../../../node_modules/@fontsource/inter/scss/mixins' as Inter;
2
- @use '../../../node_modules/@fontsource/rasa/scss/mixins' as Rasa;
3
- @use '../../../node_modules/@fontsource/crimson-pro/scss/mixins' as Crimson;
4
- $link-hover: hsl(207, 61%, 44%);
5
- $link: hsl(207, 61%, 44%);
6
-
7
- @import '../../../node_modules/bulma/bulma';
8
- @import '../../../node_modules/bulma-pricingtable/src/sass/index';
9
- @import '../../../node_modules/@creativebulma/bulma-divider/src/sass/index';
10
-
11
- $use-all: true;
12
- $use-slideInDown: true;
13
- @import '../../../node_modules/animate-sass/animate';
14
-
15
- @import '../font/fontawesome/stylesheet';
16
-
17
- /* purgecss start ignore */
18
-
19
- pre .tag {
20
- align-items: unset;
21
- background-color: unset;
22
- border-radius: unset;
23
- color: unset;
24
- display: unset;
25
- font-size: unset;
26
- height: unset;
27
- justify-content: unset;
28
- line-height: unset;
29
- padding-left: unset;
30
- padding-right: unset;
31
- white-space: unset;
32
- }
33
- pre .section {
34
- padding: unset;
35
- }
36
-
37
- @import '../../../node_modules/prismjs/themes/prism-tomorrow';
38
-
39
- @include Inter.faces(
40
- $family: Inter,
41
- $weights: (
42
- 400,
43
- 600,
44
- 700,
45
- ),
46
- $display: swap,
47
- $subsets: latin,
48
- $directory: '/static/font/inter/files/'
49
- );
50
-
51
- @include Rasa.faces(
52
- $family: Rasa,
53
- $weights: (
54
- 300,
55
- 500,
56
- 600,
57
- 700,
58
- ),
59
- $display: swap,
60
- $subsets: latin,
61
- $directory: '/static/font/rasa/files/'
62
- );
63
-
64
- @include Crimson.faces(
65
- $family: 'Crimson Pro',
66
- $weights: 400,
67
- $display: swap,
68
- $subsets: latin,
69
- $directory: '/static/font/crimson-pro/files/'
70
- );
71
-
72
- html {
73
- height: 100%;
74
- }
75
-
76
- body {
77
- font-family: 'Inter', Arial, Verdana, Tahoma, sans-serif;
78
- display: flex;
79
- flex-direction: column;
80
- min-height: 100%;
81
- }
82
-
83
- .title {
84
- font-family: 'Rasa', Georgia, 'Times New Roman', Times, serif;
85
- }
86
- .huge {
87
- font-size: 100px;
88
- }
89
-
90
- .djlint-nav {
91
- padding-left: 15px;
92
- }
93
- .djlint-nav .navbar-brand a {
94
- margin-top: auto;
95
- margin-bottom: auto;
96
- }
97
-
98
- body.has-navbar-fixed-top,
99
- html.has-navbar-fixed-top {
100
- padding-top: 118px;
101
- }
102
- .djlint-nav .navbar-brand img {
103
- width: auto;
104
- height: 40px !important;
105
- margin-top: 6px;
106
- margin-bottom: -2px;
107
- }
108
-
109
- .is-flex-widescreen {
110
- display: none !important;
111
- }
112
- @media screen and (min-width: $widescreen) {
113
- .djlint-nav {
114
- padding: 15px 0;
115
- }
116
-
117
- .djlint-nav .navbar-brand img {
118
- height: 56px !important;
119
- }
120
-
121
- .is-flex-widescreen {
122
- display: flex !important;
123
- }
124
- }
125
-
126
- .image.brand {
127
- height: 200px;
128
- display: flex;
129
- justify-content: center;
130
- align-items: center;
131
- }
132
- .image.brand img {
133
- max-width: 200px;
134
- max-height: 200px;
135
- }
136
-
137
- a.navbar-item:hover,
138
- a.navbar-link:hover,
139
- .navbar-item.has-dropdown:hover .navbar-link {
140
- background: transparent;
141
- }
142
-
143
- .hero-body {
144
- background-color: rgba(167, 200, 204, 0.7);
145
- }
146
-
147
- .hero-two {
148
- background-color: rgba(0, 68, 106, 0.08);
149
- }
150
-
151
- h1 {
152
- font-size: 50px;
153
- }
154
-
155
- h2 {
156
- font-size: 25px;
157
- }
158
-
159
- .is-nav-icon .fa-2x {
160
- font-size: 1.6em;
161
- }
162
-
163
- /* fix for prism in bulma */
164
- pre .number {
165
- background-color: inherit;
166
- font: inherit;
167
- padding: 0;
168
- margin: 0;
169
- height: inherit;
170
- min-width: inherit;
171
- text-align: inherit;
172
- vertical-align: inherit;
173
- }
174
-
175
- .navbar-item.button {
176
- margin: 13px;
177
- margin-top: auto;
178
- margin-bottom: auto;
179
- }
180
-
181
- .mail-icon > img {
182
- margin-top: 3px;
183
- }
184
- /* comparison */
185
- .plan-item .icon {
186
- height: auto;
187
- }
188
- .plan-item .icon svg {
189
- height: 15px;
190
- width: 15px;
191
- }
192
-
193
- .pricing-table .pricing-plan .plan-group {
194
- align-content: center;
195
- background-color: #fff;
196
- color: #4a4a4a;
197
- font-size: $size-6;
198
- font-weight: 600;
199
- padding: 0.75em;
200
- text-align: center;
201
- }
202
-
203
- .pricing-table .pricing-plan .plan-header {
204
- font-size: $size-6;
205
- }
206
-
207
- .icon.is-huge {
208
- height: 2.5em;
209
- width: 2.5em;
210
- }
211
-
212
- .story {
213
- font-family: Crimson Pro, Georgia, serif;
214
- font-size: 24px;
215
- font-weight: 400;
216
- line-height: 1.6666666667;
217
- max-width: 800px;
218
- margin-left: auto;
219
- margin-right: auto;
220
- }
221
-
222
- // tabs
223
-
224
- .tab-container {
225
- @extend %block;
226
- }
227
- .tab-container .tab {
228
- display: none;
229
- }
230
-
231
- .tab-container .tab.is-active {
232
- display: initial;
233
- }
234
-
235
- // admonitions
236
- .message-header .icon svg {
237
- height: $size-6;
238
- padding-right: 10px;
239
- }
240
-
241
- .message.note {
242
- border-width: $message-body-border-width;
243
- border-style: solid;
244
- border-color: $info;
245
- background-color: $white;
246
- padding: 0;
247
- }
248
- .message.hint {
249
- border-width: $message-body-border-width;
250
- border-style: solid;
251
- border-color: $success;
252
- background-color: $white;
253
- padding: 0;
254
- }
255
- .message.alert {
256
- border-width: $message-body-border-width;
257
- border-style: solid;
258
- border-color: $danger;
259
- background-color: $white;
260
- padding: 0;
261
- }
262
- .message.note .message-header {
263
- color: $text;
264
- background-color: $info-light;
265
- }
266
-
267
- .message.hint .message-header {
268
- color: $text;
269
- background-color: $success-light;
270
- }
271
-
272
- .message.alert .message-header {
273
- color: $text;
274
- background-color: $danger-light;
275
- }
276
-
277
- .message.note .message-body,
278
- .message.hint .message-body,
279
- .message.alert .message-body {
280
- color: $text;
281
- }
282
-
283
- .image.is-35x35 {
284
- height: 35px;
285
- width: 35px;
286
- }
287
- /* menu collapse */
288
-
289
- .is-collapsible,
290
- .is-collapsible.is-active {
291
- transition: max-height 0.2s ease-out;
292
- }
293
-
294
- .is-collapsible {
295
- max-height: 0;
296
- overflow: hidden;
297
- margin-top: 0;
298
- margin-bottom: 0;
299
- }
300
-
301
- .is-collapsible-menu {
302
- height: 0;
303
- overflow: hidden;
304
- margin-top: 0;
305
- margin-bottom: 0;
306
- }
307
- .is-collapsible-menu.is-active {
308
- height: auto;
309
- }
310
-
311
- .is-collapsible-menu:not(.is-active) {
312
- margin-top: 0 !important;
313
- margin-bottom: 0 !important;
314
- }
315
-
316
- .is-collapsible-menu .is-collapsible-menu {
317
- margin-bottom: 0 !important;
318
- }
319
-
320
- .menu .menu-label {
321
- font-weight: 600;
322
- font-size: unset;
323
- color: $grey-dark;
324
- }
325
-
326
- .menu li a.is-active {
327
- background: unset;
328
- color: unset;
329
- font-weight: 700;
330
- }
331
-
332
- .menu li.head > a {
333
- font-weight: 600;
334
- }
335
-
336
- .menu-list li.head ul {
337
- margin-left: 3px;
338
- padding-left: 20px;
339
- }
340
-
341
- .menu-list a:hover,
342
- .menu li a:hover {
343
- background-color: unset;
344
- }
345
-
346
- pre:not(.CodeMirror-line) {
347
- margin-bottom: 1.5rem !important;
348
- }
349
-
350
- .column:not(.is-narrow) {
351
- min-width: 0px;
352
- }
353
-
354
- .is-inlineblock {
355
- display: inline-block !important;
356
- }
357
-
358
- .is-radius > img {
359
- border-radius: $radius;
360
- }
361
-
362
- .is-framed {
363
- max-width: 800px;
364
- border: 8px solid $grey-lightest;
365
- border-radius: 4px;
366
- border-top: 24px solid $grey-lightest;
367
- box-shadow: 0 0.5em 1em -0.125em #0a0a0a1a, 0 0 0 1px #0a0a0a05;
368
- position: relative;
369
- }
370
-
371
- .is-framed::before {
372
- border-radius: 10px;
373
- content: '';
374
- height: 15px;
375
- left: 0px;
376
- position: absolute;
377
- top: -19px;
378
- width: 15px;
379
- background: $grey-light;
380
- }
381
-
382
- .is-framed::after {
383
- border-radius: 10px;
384
- content: '';
385
- height: 15px;
386
- left: 20px;
387
- position: absolute;
388
- top: -19px;
389
- width: 15px;
390
- background: $grey-light;
391
- }
392
-
393
- .hero.is-white .hero-body {
394
- background-color: $white;
395
- }
396
-
397
- .hero {
398
- position: relative;
399
- }
400
-
401
- a.card:hover {
402
- box-shadow: 0 0.5em 2em -0.125em #0a0a0a1a, 0 0 0 1px #0a0a0a05;
403
- }
404
-
405
- .title {
406
- color: $grey-darker;
407
- }
408
- @media screen and (min-width: $tablet) {
409
- .is-sticky {
410
- position: sticky;
411
- top: 118px;
412
- bottom: 0;
413
- max-height: calc(100vh - 118px);
414
- overflow-y: scroll;
415
- }
416
- }
417
- @media screen and (min-width: $desktop) {
418
- .navbar.is-transparent a.is-info.navbar-item:hover {
419
- background-color: $info-dark !important;
420
- }
421
- }
422
- .navbar-item.button.is-white:hover {
423
- background: transparent !important;
424
- }
425
- .is-256x256 {
426
- max-height: 256px;
427
- max-width: 256px;
428
- }
429
- @media screen and (max-width: $tablet) {
430
- .main {
431
- padding: 0 15px;
432
- }
433
- }
434
- .animated[data-animate] {
435
- visibility: hidden;
436
- }
437
-
438
- .navbar-item .media img {
439
- max-height: unset !important;
440
- }
441
-
442
- .icon.is-5x {
443
- height: 6rem;
444
- width: 6rem;
445
- }
446
-
447
- .is-transparent,
448
- .is-transparent:hover {
449
- background-color: transparent !important;
450
- }
451
- .is-rounded {
452
- border-radius: $radius;
453
- }
454
-
455
- pre[class*='language'] {
456
- border-radius: $radius;
457
- }
458
- /* purgecss end ignore */
459
-
460
- .navbar-item.is-mega {
461
- position: static;
462
-
463
- .is-mega-menu-title {
464
- margin-bottom: 0;
465
- padding: 0.375rem 1rem;
466
- }
467
- }
@@ -1,78 +0,0 @@
1
- @use 'sass:math';
2
-
3
- @import '../../../../node_modules/@fortawesome/fontawesome-free/scss/_functions';
4
- @import '../../../../node_modules/@fortawesome/fontawesome-free/scss/_variables';
5
- @import '../../../../node_modules/@fortawesome/fontawesome-free/scss/_mixins';
6
- @import '../../../../node_modules/@fortawesome/fontawesome-free/scss/_core';
7
- @import '../../../../node_modules/@fortawesome/fontawesome-free/scss/_sizing';
8
- @import '../../../../node_modules/@fortawesome/fontawesome-free/scss/_animated';
9
-
10
- $fa-font-path: '/static/font/fontawesome/webfonts';
11
- @font-face {
12
- font-family: 'Font Awesome 6 Brands';
13
- font-style: normal;
14
- font-weight: 400;
15
- font-display: $fa-font-display;
16
- src: url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
17
- url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype');
18
- }
19
-
20
- @font-face {
21
- font-family: 'Font Awesome 6 Free';
22
- font-style: normal;
23
- font-weight: 900;
24
- font-display: $fa-font-display;
25
- src: url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
26
- url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype');
27
- }
28
-
29
- @font-face {
30
- font-family: 'Font Awesome 6 Free';
31
- font-style: normal;
32
- font-weight: 400;
33
- font-display: $fa-font-display;
34
- src: url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
35
- url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype');
36
- }
37
-
38
- .far,
39
- .#{$fa-css-prefix}-regular {
40
- font-family: 'Font Awesome 6 Free';
41
- font-weight: 400;
42
- }
43
-
44
- .fas,
45
- .#{$fa-css-prefix}-solid {
46
- font-family: 'Font Awesome 6 Free';
47
- font-weight: 900;
48
- }
49
-
50
- .fab,
51
- .#{$fa-css-prefix}-brands {
52
- font-family: 'Font Awesome 6 Brands';
53
- font-weight: 400;
54
- }
55
-
56
- .#{$fa-css-prefix}-2_3x {
57
- font-size: 2.3em;
58
- }
59
-
60
- /* build icon list */
61
- $icons: (
62
- infinity: $fa-var-infinity,
63
- discord: $fa-var-discord,
64
- github: $fa-var-github,
65
- download: $fa-var-download,
66
- pencil: $fa-var-pencil,
67
- circle-arrow-right: $fa-var-circle-arrow-right,
68
- globe: $fa-var-globe,
69
- code-commit: $fa-var-code-commit,
70
- spinner: $fa-var-spinner,
71
- circle-question: $fa-var-circle-question,
72
- );
73
-
74
- @each $key, $value in $icons {
75
- .#{$fa-css-prefix}-#{$key}:before {
76
- content: fa-content($value);
77
- }
78
- }
Binary file
Binary file