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: Getting started with djLint for HTML Template Linting and Formatting. Take advantage of the easy cli interface and many formatter options.
3
- title: Getting Started
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, usage
5
- ---
6
-
7
- # Getting Started
8
-
9
- ## Installation from [Pypi](https://pypi.org/project/djlint/)
10
-
11
- djLint is build with [Python](https://python.org), it can be installed by simply running:
12
-
13
- ```bash
14
- pip install djlint
15
- ```
16
-
17
- _Or with the npm experimental install - Note, this requires python and pip to be on your system path._
18
-
19
- ```bash
20
- npm i djlint
21
- ```
22
-
23
- ## CLI Usage
24
-
25
- djLint is a command line application. See `configuration` for advanced configuration.
26
-
27
- {% raw %}
28
-
29
- ```bash
30
- Usage: djlint [OPTIONS] SRC ...
31
-
32
- djLint · lint and reformat HTML templates.
33
-
34
- Options:
35
- --version Show the version and exit.
36
- -e, --extension TEXT File extension to check [default: html]
37
- -i, --ignore TEXT Codes to ignore. ex: "H014,H017"
38
- --reformat Reformat the file(s).
39
- --check Check formatting on the file(s).
40
- --indent INTEGER Indent spacing. [default: 4]
41
- --quiet Do not print diff when reformatting.
42
- --profile TEXT Enable defaults by template language. ops:
43
- django, jinja, nunjucks, handlebars, golang,
44
- angular, html [default: html]
45
- --require-pragma Only format or lint files that starts with a
46
- comment with the text 'djlint:on'
47
- --lint Lint for common issues. [default option]
48
- --use-gitignore Use .gitignore file to extend excludes.
49
- --warn Return errors as warnings.
50
- --preserve-leading-space Attempt to preserve leading space on text.
51
- --preserve-blank-lines Attempt to preserve blank lines.
52
- --format-css Also format contents of <style> tags.
53
- --format-js Also format contents of <script> tags.
54
- --configuration PATH Path to global configuration file in
55
- .djlintrc format
56
- --statistics Count the number of occurrences of each
57
- error/warning code.
58
- --include TEXT Codes to include. ex: "H014,H017"
59
- --ignore-case Do not fix case on known html tags.
60
- --ignore-blocks TEXT Comma list of template blocks to not indent.
61
- --blank-line-after-tag TEXT Add an additional blank line after {% <tag>
62
- ... %} tag groups.
63
- --blank-line-before-tag TEXT Add an additional blank line before {% <tag>
64
- ... %} tag groups.
65
- --custom-blocks TEXT Indent custom template blocks. For example
66
- {% toc %}...{% endtoc %}
67
- --custom-html TEXT Indent custom HTML tags. For example <mjml>
68
- --exclude TEXT Override the default exclude paths.
69
- --extend-exclude TEXT Add additional paths to the default exclude.
70
- --linter-output-format TEXT Customize order of linter output message.
71
- --max-line-length INTEGER Max line length. [default: 120]
72
- --max-attribute-length INTEGER Max attribute length. [default: 70]
73
- --format-attribute-template-tags
74
- Attempt to format template syntax inside of
75
- tag attributes.
76
- --per-file-ignores <TEXT TEXT>...
77
- Ignore linter rules on a per-file basis.
78
- --indent-css INTEGER Set CSS indent level.
79
- --indent-js INTEGER Set JS indent level.
80
- --close-void-tags Add closing mark on known void tags. Ex:
81
- <img> becomse <img />
82
- --no-line-after-yaml Do not add a blank line after yaml front
83
- matter.
84
- -h, --help Show this message and exit.
85
- ```
86
-
87
- {% endraw %}
88
- {% admonition
89
- "note",
90
- "Note",
91
- "If the command `djlint` is not found, ensure sure that Python is [in your path](https://www.geeksforgeeks.org/how-to-add-python-to-windows-path/)."
92
- %}
93
-
94
- ## Using Path vs Stdin
95
-
96
- djLint works with a path or stdin.
97
-
98
- Running with a path -
99
-
100
- ```bash
101
- djlint /path/to/templates --lint
102
- ```
103
-
104
- Or a specific file -
105
-
106
- ```bash
107
- djlint /path/to/this.mustache --lint
108
- ```
109
-
110
- Or with stdin -
111
-
112
- ```bash
113
- echo "<div></div>" | djlint -
114
- ```
115
-
116
- Stdin can also be used to reformat code. The output will be only the formatted code without messages.
117
-
118
- ```bash
119
- echo "<div></div>" | djlint - --reformat
120
- ```
121
-
122
- Output -
123
-
124
- ```html
125
- <div></div>
126
- ```
@@ -1,75 +0,0 @@
1
- ---
2
- description: How to prevent djLint from formatting a block of code. How ignore djLint rules inline.
3
- title: Ignoring Code
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, formatter usage, ignore code, ignore rules
5
- date: Last Modified
6
- ---
7
-
8
- # Ignoring Code
9
-
10
- Code can be ignored by wrapping it in `djlint` tags:
11
-
12
- {% raw %}
13
-
14
- For plain old html -
15
-
16
- ```html
17
- <!-- djlint:off -->
18
- <bad html to ignore> <!-- djlint:on --></bad>
19
- ```
20
-
21
- or as a comment -
22
-
23
- ```html
24
- {# djlint:off #} <bad html to ignore> {# djlint:on #}</bad>
25
- ```
26
-
27
- or as a long comment -
28
-
29
- ```html
30
- {% comment %} djlint:off {% endcomment %}
31
- <bad html to ignore> {% comment %} djlint:on {% endcomment %}</bad>
32
- ```
33
-
34
- or as a javascript style comment -
35
-
36
- ```html
37
- {{ /* djlint:off */ }} <bad html to ignore> {{ /* djlint:on */ }}</bad>
38
- ```
39
-
40
- or as a golang style comment -
41
-
42
- ```html
43
- {{!-- djlint:off --}} <bad html to ignore> {{!-- djlint:on --}}</bad>
44
- ```
45
-
46
- {% endraw %}
47
-
48
- ## Ignoring Rules
49
-
50
- Specific linter rules can also be ignored by adding the rule name into the ignored block opening tag.
51
-
52
- {% raw %}
53
-
54
- ```html
55
- {# djlint:off H025,H026 #}
56
- <p>
57
- {# djlint:on #}
58
-
59
- <!-- djlint:off H025-->
60
- </p>
61
-
62
- <p>
63
- <!-- djlint:on -->
64
-
65
- {% comment %} djlint:off H025 {% endcomment %}
66
- </p>
67
-
68
- <p>{% comment %} djlint:on {% endcomment %} {{!-- djlint:off H025 --}}</p>
69
-
70
- <p>{{!-- djlint:on --}} {{ /* djlint:off H025 */ }}</p>
71
-
72
- <p>{{ /* djlint:on */ }}</p>
73
- ```
74
-
75
- {% endraw %}
@@ -1,120 +0,0 @@
1
- ---
2
- description: Integrate djLint with your favorite editor. Auto format your templates with Pre-Commit. Lint with SublimeText.
3
- title: Integrations
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, integrations
5
- ---
6
-
7
- # Integrations
8
-
9
- There are several editor integrations build for djLint.
10
-
11
- ## Pre-Commit
12
-
13
- djLint can be used as a [pre-commit](https://pre-commit.com) hook as both a linter and a formatter.
14
-
15
- The repo provides multiple pre-configured hooks for specific djLint profiles (it just pre-sets the `--profile` argument and tells pre-commit which file extensions to look for):
16
-
17
- ::: content
18
-
19
- - `djlint` for linting and `djlint-reformat` for formatting
20
- This will look for files matching `templates/**.html` without setting `--profile`.
21
- - `djlint-django` and `djlint-reformat-django`
22
- This will look for files matching `templates/**.html` and set `--profile=django`.
23
- - `djlint-jinja` and `djlint-reformat-jinja`
24
- This will look for files matching `*.j2`,`*.jinja` or `*.jinja2` and set `--profile=jinja`.
25
- - `djlint-nunjucks` and `djlint-reformat-nunjucks`
26
- This will look for files matching `*.njk` and set `--profile=nunjucks`.
27
- - `djlint-handlebars` and `djlint-reformat-handlebars`
28
- This will look for files matching `*.hbs` and set `--profile=handlebars`.
29
- - `djlint-golang` and `djlint-reformat-golang`
30
- This will look for files matching `*.tmpl` and set `--profile=golang`.
31
- :::
32
-
33
- Note that these predefined hooks are sometimes too conservative in the inputs they accept (your templates may be using a different extension) so pre-commit explicitly allows you to override any of these pre-defined options. See the [pre-commit docs](https://pre-commit.com/#pre-commit-configyaml---hooks) for additional configuration
34
-
35
- ### Default Django example
36
-
37
- ```yaml
38
- repos:
39
- - repo: https://github.com/Riverside-Healthcare/djLint
40
- rev: v{{ djlint_version }}
41
- hooks:
42
- - id: djlint-reformat-django
43
- - id: djlint-django
44
- ```
45
-
46
- ### Handlebars with .html extension instead of .hbs
47
-
48
- ```yaml
49
- repos:
50
- - repo: https://github.com/Riverside-Healthcare/djLint
51
- rev: v{{ djlint_version }}
52
- hooks:
53
- - id: djlint-reformat-handlebars
54
- files: "\\.html"
55
- types_or: ['html']
56
- - id: djlint-handlebars
57
- files: "\\.html"
58
- types_or: ['html']
59
- ```
60
-
61
- You can use the `files` or `exclude` parameters to constrain each hook to its own directory, allowing you to support multiple template languages within the same repo.
62
-
63
- ## SublimeText Linter
64
-
65
- djLint can be used as a SublimeText Linter plugin. It can be installed via [package-control](https://packagecontrol.io/packages/SublimeLinter-contrib-djlint).
66
-
67
- ::: content
68
-
69
- 1. `cmd + shift + p`
70
- 2. Install SublimeLinter
71
- 3. Install SublimeLinter-contrib-djlint
72
- :::
73
-
74
- Ensure djLint is installed in your global python, or on your `PATH`.
75
-
76
- ## Visual Studio Code
77
-
78
- ::: content
79
-
80
- - [GitHub repository](https://github.com/monosans/djlint-vscode)
81
- - [VS Marketplace page](https://marketplace.visualstudio.com/items?itemName=monosans.djlint)
82
- - [Open VSX page](https://open-vsx.org/extension/monosans/djlint)
83
- :::
84
-
85
- ## neovim
86
-
87
- djLint can use used as formatter in neovim using the `null-ls` plugin.
88
-
89
- ::: content
90
-
91
- - [GitHub repository](https://github.com/jose-elias-alvarez/null-ls.nvim/)
92
- - [Config example](https://github.com/shaeinst/roshnivim/blob/5d991fcfa1b8f865f9653a98c6d97a829d4a2add/lua/plugins/null-ls_nvim.lua#L84-L91)
93
- :::
94
-
95
- ## coc.nvim
96
-
97
- ::: content
98
-
99
- - [npm package](https://www.npmjs.com/package/coc-htmldjango)
100
- :::
101
-
102
- ## null-ls.nvim
103
-
104
- ::: content
105
-
106
- - [GitHub repository](https://github.com/jose-elias-alvarez/null-ls.nvim)
107
- - [Lint](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/lua/null-ls/builtins/diagnostics/djlint.lua#L14)
108
- - [Format](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/lua/null-ls/builtins/formatting/djlint.lua#L13)
109
-
110
- ## MegaLinter
111
-
112
- djlint is natively embedded within the 100+ linters of [MegaLinter](https://megalinter.io)
113
-
114
- To install it, just run `npx mega-linter-runner --install` and follow instructions
115
-
116
- ::: content
117
-
118
- - [GitHub repository](https://github.com/oxsecurity/megalinter)
119
- - [djlint in MegaLinter documentation](https://megalinter.io/latest/descriptors/html_djlint/)
120
- :::
@@ -1,31 +0,0 @@
1
- ---
2
- title: Angular Template Linter
3
- keywords: angular, djlint, angular template linter, lint angular templates
4
- description: djLint is a angular template linter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: angular
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Angular?](https://angular.io/guide/template-syntax)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
@@ -1,40 +0,0 @@
1
- ---
2
- title: Django Template Linter and Formatter
3
- keywords: django, djlint, django template linter, django template formatter, format django templates
4
- description: djLint is a django template linter and a django template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: django
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Django?](https://django.readthedocs.io/en/stable/ref/templates/language.html)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
32
-
33
- ## Real Life Examples!
34
-
35
- <div class="mb-5">
36
-
37
- - [Django](https://github.com/django/django) source code [reformatted](https://github.com/Riverside-Healthcare/djLint/compare/django-source...Riverside-Healthcare:djLint:django-djlint)
38
- - [Wagtail](https://github.com/wagtail/wagtail) source code [reformatted](https://github.com/Riverside-Healthcare/djLint/compare/wagtail-source...Riverside-Healthcare:djLint:wagtail-djlint)
39
-
40
- </div>
@@ -1,31 +0,0 @@
1
- ---
2
- title: GoLang Template Linter and Formatter
3
- keywords: GoLang, djlint, GoLang template linter, GoLang template formatter, format GoLang templates
4
- description: djLint is a GoLang template linter and a GoLang template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: golang
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is GoLang?](https://pkg.go.dev/text/template)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
@@ -1,31 +0,0 @@
1
- ---
2
- title: Handlebars Template Linter and Formatter
3
- keywords: handlebars, djlint, handlebars template linter, handlebars template formatter, format handlebars templates
4
- description: djLint is a handlebars template linter and a handlebars template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: handlebars
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Handlebars?](https://handlebarsjs.com/)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
@@ -1,39 +0,0 @@
1
- ---
2
- title: Jinja Template Linter and Formatter
3
- keywords: jinja, djlint, jinja template linter, jinja template formatter, format jinja templates
4
- description: djLint is a jinja template linter and a jinja template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: jinja
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Jinja?](https://jinja2docs.readthedocs.io/en/stable/)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
32
-
33
- ## Real Life Examples!
34
-
35
- <div class="mb-5">
36
-
37
- - [Pallets](https://github.com/pallets/website) source code [reformatted](https://github.com/Riverside-Healthcare/djLint/compare/pallets-source...Riverside-Healthcare:djLint:pallets-djlint)
38
-
39
- </div>
@@ -1,3 +0,0 @@
1
- {
2
- "layout": "languages_layout.njk"
3
- }
@@ -1,31 +0,0 @@
1
- ---
2
- title: Mustache Template Linter and Formatter
3
- keywords: mustache, djlint, mustache template linter, mustache template formatter, format mustache templates
4
- description: djLint is a mustache template linter and a mustache template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: handlebars
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Mustache?](http://mustache.github.io/mustache.5.html)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
@@ -1,39 +0,0 @@
1
- ---
2
- title: Nunjucks Template Linter and Formatter
3
- keywords: nunjucks, djlint, nunjucks template linter, nunjucks template formatter, format nunjucks templates
4
- description: djLint is a nunjucks template linter and a nunjucks template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: nunjucks
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Nunjucks?](https://mozilla.github.io/nunjucks/)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
32
-
33
- ## Real Life Examples!
34
-
35
- <div class="mb-5">
36
-
37
- - [apostrophe](https://github.com/apostrophecms/apostrophe) source code [reformatted](https://github.com/Riverside-Healthcare/djLint/compare/apostrophe-source...Riverside-Healthcare:djLint:apostrophe-djlint)
38
-
39
- </div>
@@ -1,41 +0,0 @@
1
- ---
2
- title: Twig Template Linter and Formatter
3
- keywords: twig, djlint, twig template linter, twig template formatter, format twig templates
4
- description: djLint is a twig template linter and a twig template formatter! Take advantage of the pre-build profile when linting and formatting your templates with djLint.
5
- tool: nunjucks
6
- ---
7
-
8
- # {{ title }}
9
-
10
- {{ description }}
11
-
12
- **[What is Twig?](https://twig.symfony.com/)**
13
-
14
- #### Using the Command Line
15
-
16
- ```bash
17
- djlint /path/to/templates --profile={{ tool }}
18
- ```
19
-
20
- #### Or, Use a Config File
21
-
22
- Configure djLint in your projects `pyproject.toml`.
23
-
24
- ```toml
25
- [tool.djlint]
26
- profile="{{ tool }}"
27
- ```
28
-
29
- <div class="box notification is-info is-light">
30
- <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>
31
- </div>
32
-
33
- ## Real Life Examples!
34
-
35
- <div class="mb-5">
36
-
37
- - [bolt](https://github.com/bolt/core) source code [reformatted](https://github.com/Riverside-Healthcare/djLint/compare/bolt-source...Riverside-Healthcare:djLint:bolt-djlint)
38
-
39
- - [Sylius](https://github.com/Sylius/Sylius) source code [reformatted](https://github.com/Riverside-Healthcare/djLint/compare/sylius-source...Riverside-Healthcare:djLint:sylius-djlint)
40
-
41
- </div>