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,452 +0,0 @@
1
- ---
2
- description: djLint Changelog. Find updates from recent releases and what feature you can expect on your next upgrade.
3
- title: Changelog
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, changelog
5
- ---
6
-
7
- {% raw %}
8
-
9
- # Changelog
10
-
11
- Changelog is now included in the [release](https://github.com/Riverside-Healthcare/djLint/releases).
12
-
13
- <!--## {{ "next_release" i18n }}-->
14
-
15
- ## 1.0.2
16
-
17
- ::: content
18
-
19
- - Bug fixes [#240](https://github.com/Riverside-Healthcare/djLint/issues/240)
20
- :::
21
-
22
- ## 1.0.1
23
-
24
- ::: content
25
-
26
- - Bug fixes [#236](https://github.com/Riverside-Healthcare/djLint/issues/236)
27
- :::
28
-
29
- ## 1.0.0
30
-
31
- ::: content
32
-
33
- - Bug fixes [#224](https://github.com/Riverside-Healthcare/djLint/issues/224)
34
- :::
35
-
36
- ## 0.7.6
37
-
38
- ::: content
39
-
40
- - Bug fixes [#189](https://github.com/Riverside-Healthcare/djLint/issues/189), [#197](https://github.com/Riverside-Healthcare/djLint/issues/189)
41
- - Added `--warn` flag to return return errors as warnings.
42
- :::
43
-
44
- ## 0.7.5
45
-
46
- ::: content
47
-
48
- - Bug fixes [#187](https://github.com/Riverside-Healthcare/djLint/issues/187)
49
- - Added better support for `yaml` front matter in template files
50
- - Added rule T032 for [#123](https://github.com/Riverside-Healthcare/djLint/issues/123)
51
- - Added rule H033 for [#124](https://github.com/Riverside-Healthcare/djLint/issues/124)
52
- - Changed linter profiles to be inclusive vs exclusive for [#178](https://github.com/Riverside-Healthcare/djLint/issues/178)
53
- - Added alternate config file option `.djlintrc` for [#188](https://github.com/Riverside-Healthcare/djLint/issues/188)
54
- :::
55
-
56
- ## 0.7.4
57
-
58
- ::: content
59
-
60
- - Bug fixes [#177](https://github.com/Riverside-Healthcare/djLint/issues/177)
61
- :::
62
-
63
- ## 0.7.3
64
-
65
- ::: content
66
-
67
- - Bug fixes [#173](https://github.com/Riverside-Healthcare/djLint/issues/173), [#174](https://github.com/Riverside-Healthcare/djLint/issues/174)
68
- - Dropped Py3.6 from `pyproject.toml`.
69
- :::
70
-
71
- ## 0.7.2
72
-
73
- ::: content
74
-
75
- - Bug fixes [#167](https://github.com/Riverside-Healthcare/djLint/issues/167), [#166](https://github.com/Riverside-Healthcare/djLint/issues/166), [#171](https://github.com/Riverside-Healthcare/djLint/issues/171), [#169](https://github.com/Riverside-Healthcare/djLint/issues/169)
76
- :::
77
-
78
- ## 0.7.1
79
-
80
- ::: content
81
-
82
- - Bug fixes [#166](https://github.com/Riverside-Healthcare/djLint/issues/166)
83
- :::
84
-
85
- ## 0.7.0
86
-
87
- ::: content
88
-
89
- - Added config for custom HTML tags
90
- - Bug fixes
91
- :::
92
-
93
- ## 0.6.9
94
-
95
- ::: content
96
-
97
- - Added HTML and Angular profiles
98
- - Allowed some entities in rule #H023
99
- - Bug fixes
100
- :::
101
-
102
- ## 0.6.8
103
-
104
- ::: content
105
-
106
- - Bug fixes
107
- - Updated docs
108
- :::
109
-
110
- ## 0.6.7
111
-
112
- ::: content
113
-
114
- - Added config option `format_attribute_template_tags` as opt-in for template tag formatting inside of attributes
115
- - Added config option `linter_output_format` to customize linter message variable order
116
- - Added rules H030 and H031 to check meta tags
117
- :::
118
-
119
- ## 0.6.6
120
-
121
- ::: content
122
-
123
- - Big fixes
124
- :::
125
-
126
- ## 0.6.5
127
-
128
- ::: content
129
-
130
- - Updated output paths to be relative to the project root
131
- - Bug fixes
132
- :::
133
-
134
- ## 0.6.4
135
-
136
- ::: content
137
-
138
- - Bug fixes
139
- :::
140
-
141
- ## 0.6.3
142
-
143
- ::: content
144
-
145
- - Added support for django `blocktrans` tag
146
- - Bug fixes
147
- :::
148
-
149
- ## 0.6.2
150
-
151
- ::: content
152
-
153
- - Bug fixes
154
- :::
155
-
156
- ## 0.6.1
157
-
158
- ::: content
159
-
160
- - Bug fixes
161
- - Made rule T028 stricter with clearer message
162
- :::
163
-
164
- ## 0.6.0
165
-
166
- ::: content
167
-
168
- - Added rule T027 to check for unclosed in template syntax
169
- - Added rule T028 to check for missing spaceless tags in attributes
170
- - Added rule H029 to check for lowercase form method
171
- - Ignored django blocktranslate tags that do not have "trimmed" from formatter
172
- - Bug fixes
173
- :::
174
-
175
- ## 0.5.9a
176
-
177
- ::: content
178
-
179
- - Added test support for python 3.10
180
- - Added pre-commit hook
181
- :::
182
-
183
- ## 0.5.9
184
-
185
- ::: content
186
-
187
- - Added option `--use-gitignore` to extend the excludes
188
- - Changed default exclude matching
189
- - Fixed windows exclude paths
190
- - Fixed formatting of `{%...%}` tags in attributes
191
- - Fixed formatting for for loops and nested conditions in attributes
192
- :::
193
-
194
- ## 0.5.8
195
-
196
- ::: content
197
-
198
- - Added require_pragma option
199
- - Updated DJ018 to catch `data-src` and `action` on inputs
200
- - Fixed inline ignore syntax
201
- - Added `--lint` option as placeholder for default usage
202
- - Bug fixes
203
- :::
204
-
205
- ## 0.5.7
206
-
207
- ::: content
208
-
209
- - Bug fixes
210
- :::
211
-
212
- ## 0.5.6
213
-
214
- ::: content
215
-
216
- - Added rule H026 to find empty id and class tags
217
- - Bug fixes
218
- :::
219
-
220
- ## 0.5.5
221
-
222
- ::: content
223
-
224
- - Consolidated settings and slimmed code
225
- - Bug fixes
226
- :::
227
-
228
- ## 0.5.4
229
-
230
- ::: content
231
-
232
- - Added rule H020 to find empty tag pairs
233
- - Added rule H021 to find inline styles
234
- - Added rule H022 to find http links
235
- - Added rule H023 to find entity references
236
- - Added rule H024 to find type on scripts and styles
237
- - Added rule H025 to check for orphan tags. Thanks to https://stackoverflow.com/a/1736801/10265880
238
- - Improved attribute formatting
239
- - Updated `blank_line_after_tag` option to add newline regardless of location
240
- - Fixed django `trans` tag formatting
241
- - Added formatting for inline styles
242
- - Added formatting for template conditions inside attributes
243
- - Added srcset as possible url location in linter rules
244
- - Speed up formatting
245
- - Special thanks to [jayvdb](https://github.com/jayvdb)
246
- :::
247
-
248
- ## 0.5.3
249
-
250
- ::: content
251
-
252
- - Change stdout for `--reformat/check` options to only print new html when using stdin as the input
253
- :::
254
-
255
- ## 0.5.2
256
-
257
- ::: content
258
-
259
- - Split `alt` requirement from H006 to H013
260
- - Added optional custom rules file
261
- - Added `golang` as profile option
262
- - Fixed formatting of ignored blocks containing inline comments
263
- - Added default text to `--indent` and `-e` options
264
- - Update url rules to accept #
265
- - Fixed file encoding on Windows OS
266
- - Fix single line template tag regex
267
- - Fix `blank_line_after_tag` for tags with leading space
268
- :::
269
-
270
- ## 0.5.1
271
-
272
- ::: content
273
-
274
- - Added rule H019
275
- - Fixed bugs in DJ018 and H012
276
- :::
277
-
278
- ## 0.5.0
279
-
280
- ::: content
281
-
282
- - Fixed several regex matching bugs in linter rules
283
- - Stopped linter from returning errors in ignored blocks
284
- - Added option to ignore code block from linter/formatter with `{% djlint:off %}...{% djlint:on %}` tags
285
- :::
286
-
287
- ## 0.4.9
288
-
289
- ::: content
290
-
291
- - Fixed bug [#35](https://github.com/Riverside-Healthcare/djLint/issues/35)
292
- :::
293
-
294
- ## 0.4.8
295
-
296
- ::: content
297
-
298
- - Fixed bug [#34](https://github.com/Riverside-Healthcare/djLint/issues/34)
299
- :::
300
-
301
- ## 0.4.7
302
-
303
- ::: content
304
-
305
- - Moved `source` tag to single line tags
306
- :::
307
-
308
- ## 0.4.6
309
-
310
- ::: content
311
-
312
- - Fixed bug [#31](https://github.com/Riverside-Healthcare/djLint/issues/31)
313
- :::
314
-
315
- ## 0.4.5
316
-
317
- ::: content
318
-
319
- - Added best practices to docs
320
- - Add `--profile` option to set default linter/formatter rules
321
- - Added linter rules for jinja url patterns
322
- :::
323
-
324
- ## 0.4.4
325
-
326
- ::: content
327
-
328
- - Change indent config from string to int. `--indent 3`
329
- :::
330
-
331
- ## 0.4.3
332
-
333
- ::: content
334
-
335
- - Added cli option for indent spacing. `--indent=" "`
336
- :::
337
-
338
- ## 0.4.2
339
-
340
- ::: content
341
-
342
- - Added support for additional whitespace after tags with `blank_line_after_tag` option
343
- :::
344
-
345
- ## 0.4.1
346
-
347
- ::: content
348
-
349
- - Added support for processing several files or folders at once
350
- :::
351
-
352
- ## 0.4.0
353
-
354
- ::: content
355
-
356
- - Fixed formatting of django `{# ... #}` tags
357
- - Added indent support for figcaption, details and summary tags
358
- - Added support for overriding or extending the list of excluded paths in `pyproject.toml`
359
- :::
360
-
361
- ## 0.3.9
362
-
363
- ::: content
364
-
365
- - Updated attribute handling
366
- :::
367
-
368
- ## 0.3.8
369
-
370
- ::: content
371
-
372
- - Added support for stdin
373
- :::
374
-
375
- ## 0.3.7
376
-
377
- ::: content
378
-
379
- - Fixed formatting on `small`, `dt`, and `dd` tags
380
- :::
381
-
382
- ## 0.3.6
383
-
384
- ::: content
385
-
386
- - Added formatter support for Nunjucks `{%-` opening blocks
387
- :::
388
-
389
- ## 0.3.5
390
-
391
- ::: content
392
-
393
- - Added support for more Django blocks
394
- - Added support for custom blocks
395
- - Added support for config in `pyproject.toml`
396
- :::
397
-
398
- ## 0.3.4
399
-
400
- ::: content
401
-
402
- - Fixed Nunjucks spaceless tag `-%}` format
403
- :::
404
-
405
- ## 0.3.3
406
-
407
- ::: content
408
-
409
- - Allowed short `div` tags to be single line
410
- :::
411
-
412
- ## 0.3.2
413
-
414
- ::: content
415
-
416
- - Fixed Django comment formatting
417
- - Ignored textarea from formatting
418
- :::
419
-
420
- ## 0.3.1
421
-
422
- ::: content
423
-
424
- - Updated attribute formatting regex
425
- - Updated lint rule W010
426
- :::
427
-
428
- ## 0.3.0
429
-
430
- ::: content
431
-
432
- - Changed exit code to 1 if there were any formatting changes
433
- - Added support for Jinja `asset` tags
434
- :::
435
-
436
- ## 0.2.9
437
-
438
- ::: content
439
-
440
- - Updated W018 regex
441
- - Removed duplicate lint messages
442
- - Updated E001 for Handlebars
443
- :::
444
-
445
- ## 0.2.8
446
-
447
- ::: content
448
-
449
- - Fixed progress bar error for old Click version
450
- :::
451
-
452
- {% endraw %}
@@ -1,145 +0,0 @@
1
- ---
2
- description: djLint configuration for HTML Template Linting and Formatting. Take advantage of the many formatter options.
3
- title: Configuration
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, configuration
5
- date: Last Modified
6
- ---
7
-
8
- # Configuration
9
-
10
- Configuration is done either through your projects `pyproject.toml` file, or a `.djlintrc` file. Command line args will always override any settings in `pyproject.toml`. Local project settings will always override global configuration files.
11
-
12
- The format for `pyproject.toml` is `toml`.
13
-
14
- ```ini
15
- [tool.djlint]
16
- <config options>
17
- ```
18
-
19
- The format for `.djlintrc` is `json`.
20
-
21
- ```json
22
- {
23
- "option": "value"
24
- }
25
- ```
26
-
27
- ## Options
28
-
29
- <div class="field">
30
- <label class="label">Filter Options</label>
31
- <div class="control">
32
- <input id="filter" class="input" type="text" placeholder="type to filter options..." />
33
-
34
- </div>
35
- </div>
36
- <script>
37
- const hideAll=() => {
38
- (document.querySelectorAll('.option') || []).forEach((x) => {
39
- x.classList.add('is-hidden')
40
- })
41
- }
42
- const showAll=() => {
43
- (document.querySelectorAll('.option') || []).forEach((x) => {
44
- x.classList.remove('is-hidden')
45
- })
46
- }
47
- var search_data = {{ configuration | dump | safe }};
48
- document.querySelector('#filter').addEventListener('input', (event) => {
49
- document.querySelector('#no-matches').classList.add('is-hidden');
50
- if (event.target.value === ''){
51
- showAll()
52
- } else {
53
- var regex = new RegExp(event.target.value.replaceAll(' ', '.*[ _-].*'), 'gmi'),
54
- matches=[]
55
- search_data.forEach((obj) => {
56
- if (JSON.stringify(obj).match(regex)) {
57
- matches.push(obj.name)
58
- }
59
- if(matches.length > 0){
60
- document.querySelector('#no-matches').classList.add('is-hidden');
61
- (document.querySelectorAll('.option') || []).forEach((x) => {
62
- if (matches.includes(x.getAttribute('data-name'))){
63
- x.classList.remove('is-hidden')
64
- }
65
- else {
66
- x.classList.add('is-hidden')
67
- }
68
- })} else {
69
- hideAll();
70
- document.querySelector('#no-matches').classList.remove('is-hidden');
71
- }
72
- })
73
- }
74
- })
75
- </script>
76
- <hr />
77
-
78
- {% for option in configuration | sort(false, false, "name") %}
79
-
80
- <div class="option has-background-white-ter p-3 my-3 is-rounded" data-name="{{option.name}}">
81
- <div class="is-flex is-justify-content-space-between">
82
- <h3 class="title is-3">
83
- <a class="link bn" href="#{{ option.name | slugify }}">∞</a> {{ option.name }}</h3>
84
- <div class="tags is-inline-block">{% for tag in option.tags %}<span class="tag is-family-sans-serif is-link has-text-weight-medium">{{ tag }}</span>{% endfor %}</div></div>
85
-
86
- <p>{{ option.description[locale or "en"] | markdown | safe }}</p>
87
-
88
- <div class="tabs">
89
- <ul>
90
-
91
- {% for flag in option.usage %}
92
-
93
- <li class="{% if loop.index == 1 %}is-active{% endif %}"><a tab="{{- flag.name | slugify -}}-tab">{{ flag.name }}</a></li>
94
-
95
- {% endfor %}
96
-
97
- </ul>
98
- </div>
99
-
100
- <div class="tab-container">
101
- {% for flag in option.usage %}
102
- <div class="tab {% if loop.index == 1 %}is-active{% endif %}"id="{{- flag.name | slugify -}}-tab">
103
-
104
- ```{% if flag.name == "pyproject.toml" %}toml{% else %}json{% endif %}
105
- {{ flag.value | safe }}
106
- ```
107
-
108
- </div>
109
- {% endfor %}
110
-
111
- </div></div>
112
-
113
- {% endfor %}
114
-
115
- <div id="no-matches" class="is-hidden mb-5">Nothing found. Try another search.</div>
116
-
117
- <script>
118
- document.addEventListener('click', function (e) {
119
- if (
120
- e.target.closest('.tabs li a') &&
121
- e.target.closest('.tabs li a').hasAttribute('tab')
122
- ) {
123
- var tabLinks = document.querySelectorAll('.tabs li.is-active');
124
- for (var l = 0; l < tabLinks.length; l++) {
125
- tabLinks[l].classList.remove('is-active');
126
- }
127
-
128
- var tabs = document.querySelectorAll('.tab.is-active');
129
-
130
- for (var i = 0; i < tabs.length; i++) {
131
- tabs[i].classList.remove('is-active');
132
- }
133
-
134
- var activeBox = document.querySelectorAll('.tab#' + e.target.getAttribute('tab'))
135
- for(var y= 0; y < activeBox.length; y++){
136
- activeBox[y].classList.add('is-active');
137
- }
138
-
139
- var activeTab = document.querySelectorAll('a[tab="' + e.target.getAttribute('tab') + '"]')
140
- for(var y= 0; y < activeTab.length; y++){
141
- activeTab[y].parentElement.classList.add('is-active');
142
- }
143
- }
144
- });
145
- </script>
@@ -1,4 +0,0 @@
1
- {
2
- "layout": "docs_layout.njk",
3
- "date": "git Last Modified"
4
- }
@@ -1,82 +0,0 @@
1
- ---
2
- description: Format your HTML Templates with djLint. Fast, accurate, output will make your templates shine.
3
- title: Formatter Usage
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, formatter usage
5
- ---
6
-
7
- # Formatter Usage
8
-
9
- djLint's formatter will take sloppy html templates and make the formatting consistent and easy to follow!
10
-
11
- Formatting is a beta tool. `--check` the output before applying changes.
12
-
13
- To review what may change in formatting run:
14
-
15
- ```bash
16
- djlint . --check
17
- ```
18
-
19
- To format the code and update files run:
20
-
21
- ```bash
22
- djlint . --reformat
23
-
24
- # how about formatting scripts and styles?
25
- djlint . --reformat --format-css --format-js
26
- ```
27
-
28
- <div class="box notification is-info is-light">
29
- <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="/docs/configuration/">Check out the configuration guide for all the options!</a></div>
30
- </div>
31
-
32
- {% admonition
33
- "note",
34
- "Note",
35
- "Reformatting does not work with long json/html embedded into attribute data."
36
- %}
37
-
38
- {% admonition
39
- "note",
40
- "Note",
41
- "djLint is not an html parser or syntax validator."
42
- %}
43
-
44
- ## Here's an example!
45
-
46
- ### Before
47
-
48
- Here's a blob of HTML that's in desperate need of attention -
49
- {% raw %}
50
-
51
- ```
52
- {% load admin_list %}{% load i18n %}<p class="paginator">{% if pagination_required %}{% for i in page_range %}{% paginator_number cl i %}{% endfor %}{% endif %}{{ cl.result_count }}{% if cl.result_count == 1 %}{{ cl.opts.verbose_name }} {% else %}{{ cl.opts.verbose_name_plural }} {% endif %}{% if show_all_url %} <a href="{{ show_all_url }}" class="showall">{% translate 'Show all' %} </a> {% endif %}{% if cl.formset and cl.result_count %}<input type="submit" name="_save" class="default" value="{% translate 'Save' %}">{% endif %} </p>
53
- ```
54
-
55
- {% endraw %}
56
-
57
- ### After
58
-
59
- It looks a bit better now... we can read it :)
60
-
61
- {% raw %}
62
-
63
- ```html
64
- {% load admin_list %} {% load i18n %}
65
- <p class="paginator">
66
- {% if pagination_required %} {% for i in page_range %} {% paginator_number cl
67
- i %} {% endfor %} {% endif %} {{ cl.result_count }} {% if cl.result_count == 1
68
- %} {{ cl.opts.verbose_name }} {% else %} {{ cl.opts.verbose_name_plural }} {%
69
- endif %} {% if show_all_url %}
70
- <a href="{{ show_all_url }}" class="showall"> {% translate 'Show all' %} </a>
71
- {% endif %} {% if cl.formset and cl.result_count %}
72
- <input
73
- type="submit"
74
- name="_save"
75
- class="default"
76
- value="{% translate 'Save' %}"
77
- />
78
- {% endif %}
79
- </p>
80
- ```
81
-
82
- {% endraw %}