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,280 +0,0 @@
1
- """Test for format attribute template tags.
2
-
3
- --format-attribute-template-tags
4
-
5
- poetry run pytest tests/test_config/test_format_attribute_template_tags.py
6
- """
7
- import pytest
8
-
9
- from src.djlint.reformat import formatter
10
- from tests.conftest import config_builder, printer
11
-
12
- test_data = [
13
- pytest.param(
14
- (
15
- "<!-- list of good and complex attribute patterns -->\n"
16
- '<input class="{% if this %}\n'
17
- " then something neat\n"
18
- " {% else %}\n"
19
- " that is long stuff asdf and more even\n"
20
- ' {% endif %}" />\n'
21
- '<img data-src="{% if report.imgs.exists %}{{ report.imgs.first.get_absolute_url|size:"96x96" }}{% else %}{% static \'/img/report_thumb_placeholder_400x300.png\' %}{% endif %}"\n'
22
- " src=\"{% static '/img/loader.gif' %}\"\n"
23
- ' alt="report image" />\n'
24
- '<a class="asdf\n'
25
- ' {% if favorite == "yes" %}favorite{% endif %}\n'
26
- ' has-tooltip-arrow has-tooltip-right"\n'
27
- ' data-tooltip="{% if favorite == "yes" %}\n'
28
- " Remove from Favorites\n"
29
- " {% else %}\n"
30
- " Add to Favorites\n"
31
- ' {% endif %}"\n'
32
- ' fav-type="report"\n'
33
- ' object-id="{{ report.report_id }}"\n'
34
- ' href="{% if %}{% endif %}">\n'
35
- ' <span class="icon has-text-grey is-large">\n'
36
- ' <i class="fas fa-lg fa-star"></i>\n'
37
- " </span>\n"
38
- "</a>\n"
39
- '<div class="media-content"\n'
40
- " {% ifchanged comment.stream_id %}\n"
41
- " comments-msg\n"
42
- " {% else %}\n"
43
- " comments-newMsgReply\n"
44
- " {% endifchanged %}></div>\n"
45
- '<a class="piwik_download"\n'
46
- ' href="{% static activity_version.get_win_document_with_images_file_path %}?{% now "jSFYHi" %}"></a>\n'
47
- "<span {% if a %}required{% endif %}\n"
48
- ' title="{% if eev.status == eev.STATUS_CURRENT %}\n'
49
- " {% trans 'A' %}\n"
50
- " {% elif eev.status == eev.STATUS_APPROVED %}\n"
51
- " {% trans 'B' %}\n"
52
- " {% elif eev.status == eev.STATUS_EXPIRED %}\n"
53
- " {% trans 'C' %}\n"
54
- ' {% endif %}"\n'
55
- ' class="asdf\n'
56
- " {% if a %}b{% endif %}\n"
57
- ' asdf"\n'
58
- " {% if a %}checked{% endif %}></span>\n"
59
- "{% block body %}\n"
60
- ' <form action="{% if gpg -%}asdf something pretty long. can\'t beat this length{%- endif %}"\n'
61
- ' method="POST">\n'
62
- " </form>\n"
63
- "{% endblock body %}\n"
64
- '<ul class="menu-list\n'
65
- " {% for child in entry.children %}\n"
66
- " {% if child.url== page.url %}\n"
67
- " is-active\n"
68
- " {% else %}\n"
69
- " not-active\n"
70
- " {% endif %}\n"
71
- " {% endfor %}\n"
72
- ' is-collapsible">\n'
73
- "</ul>\n"
74
- '<div {% if true %}class="test"{% endif %}\n'
75
- ' {% include "django/forms/widgets/attrs.html" %}></div>\n'
76
- ),
77
- (
78
- "<!-- list of good and complex attribute patterns -->\n"
79
- '<input class="{% if this %}\n'
80
- " then something neat\n"
81
- " {% else %}\n"
82
- " that is long stuff asdf and more even\n"
83
- ' {% endif %}" />\n'
84
- '<img data-src="{% if report.imgs.exists %}{{ report.imgs.first.get_absolute_url|size:"96x96" }}{% else %}{% static \'/img/report_thumb_placeholder_400x300.png\' %}{% endif %}"\n'
85
- " src=\"{% static '/img/loader.gif' %}\"\n"
86
- ' alt="report image" />\n'
87
- '<a class="asdf\n'
88
- ' {% if favorite == "yes" %}favorite{% endif %}\n'
89
- ' has-tooltip-arrow has-tooltip-right"\n'
90
- ' data-tooltip="{% if favorite == "yes" %}\n'
91
- " Remove from Favorites\n"
92
- " {% else %}\n"
93
- " Add to Favorites\n"
94
- ' {% endif %}"\n'
95
- ' fav-type="report"\n'
96
- ' object-id="{{ report.report_id }}"\n'
97
- ' href="{% if %}{% endif %}">\n'
98
- ' <span class="icon has-text-grey is-large">\n'
99
- ' <i class="fas fa-lg fa-star"></i>\n'
100
- " </span>\n"
101
- "</a>\n"
102
- '<div class="media-content"\n'
103
- " {% ifchanged comment.stream_id %}\n"
104
- " comments-msg\n"
105
- " {% else %}\n"
106
- " comments-newMsgReply\n"
107
- " {% endifchanged %}></div>\n"
108
- '<a class="piwik_download"\n'
109
- ' href="{% static activity_version.get_win_document_with_images_file_path %}?{% now "jSFYHi" %}"></a>\n'
110
- "<span {% if a %}required{% endif %}\n"
111
- ' title="{% if eev.status == eev.STATUS_CURRENT %}\n'
112
- " {% trans 'A' %}\n"
113
- " {% elif eev.status == eev.STATUS_APPROVED %}\n"
114
- " {% trans 'B' %}\n"
115
- " {% elif eev.status == eev.STATUS_EXPIRED %}\n"
116
- " {% trans 'C' %}\n"
117
- ' {% endif %}"\n'
118
- ' class="asdf\n'
119
- " {% if a %}b{% endif %}\n"
120
- ' asdf"\n'
121
- " {% if a %}checked{% endif %}></span>\n"
122
- "{% block body %}\n"
123
- ' <form action="{% if gpg -%}asdf something pretty long. can\'t beat this length{%- endif %}"\n'
124
- ' method="POST">\n'
125
- " </form>\n"
126
- "{% endblock body %}\n"
127
- '<ul class="menu-list\n'
128
- " {% for child in entry.children %}\n"
129
- " {% if child.url== page.url %}\n"
130
- " is-active\n"
131
- " {% else %}\n"
132
- " not-active\n"
133
- " {% endif %}\n"
134
- " {% endfor %}\n"
135
- ' is-collapsible">\n'
136
- "</ul>\n"
137
- '<div {% if true %}class="test"{% endif %}\n'
138
- ' {% include "django/forms/widgets/attrs.html" %}></div>\n'
139
- ),
140
- ({"format_attribute_template_tags": True}),
141
- id="one",
142
- ),
143
- pytest.param(
144
- (
145
- '<input class="{% if this %}then something neat{% else %}that is long stuff asdf and more even{% endif %}" />\n'
146
- ),
147
- (
148
- '<input class="{% if this %}then something neat{% else %}that is long stuff asdf and more even{% endif %}" />\n'
149
- ),
150
- (),
151
- id="no option",
152
- ),
153
- pytest.param(
154
- (
155
- '<a href="#"\n class="list-group-item{% if not is_allowed %} disabled{% endif %}">foo</a>\n'
156
- ),
157
- (
158
- '<a href="#"\n class="list-group-item{% if not is_allowed %} disabled{% endif %}">foo</a>\n'
159
- ),
160
- (),
161
- id="no option two",
162
- ),
163
- pytest.param(
164
- (
165
- '<img data-src="{% if report.imgs.exists %}{{ report.imgs.first.get_absolute_url|size:"96x96"}}{% else %}{% static \'/img/report_thumb_placeholder_400x300.png\' %}{% endif %}" src="{% static \'/img/loader.gif\' %}" alt="report image"/>'
166
- ),
167
- (
168
- '<img data-src="{% if report.imgs.exists %}{{ report.imgs.first.get_absolute_url|size:"96x96" }}{% else %}{% static \'/img/report_thumb_placeholder_400x300.png\' %}{% endif %}"\n'
169
- " src=\"{% static '/img/loader.gif' %}\"\n"
170
- ' alt="report image" />\n'
171
- ),
172
- (),
173
- id="no option three",
174
- ),
175
- pytest.param(
176
- (
177
- '<a class="asdf {% if favorite == "yes" %}favorite{% endif %} has-tooltip-arrow has-tooltip-right" data-tooltip="{% if favorite == "yes" %}Remove from Favorites {% else %}Add to Favorites{% endif %}" fav-type="report" object-id="{{ report.report_id }}"><span class="icon has-text-grey is-large "><i class="fas fa-lg fa-star"></i></span></a>'
178
- ),
179
- (
180
- '<a class="asdf {% if favorite == "yes" %}favorite{% endif %} has-tooltip-arrow has-tooltip-right"\n'
181
- ' data-tooltip="{% if favorite == "yes" %}Remove from Favorites {% else %}Add to Favorites{% endif %}"\n'
182
- ' fav-type="report"\n'
183
- ' object-id="{{ report.report_id }}"><span class="icon has-text-grey is-large "><i class="fas fa-lg fa-star"></i></span></a>\n'
184
- ),
185
- (),
186
- id="no option four",
187
- ),
188
- pytest.param(
189
- (
190
- '<div class="media-content" {% ifchanged comment.stream_id %} comments-msg {% else %} comments-newMsgReply {% endifchanged %}>\n'
191
- ),
192
- (
193
- '<div class="media-content"\n'
194
- " {% ifchanged comment.stream_id %} comments-msg {% else %} comments-newMsgReply {% endifchanged %}>\n"
195
- ),
196
- (),
197
- id="no option five",
198
- ),
199
- pytest.param(
200
- (
201
- '<a class="piwik_download" href="{% static activity_version.get_win_document_with_images_file_path %}?{% now "jSFYHi" %}">'
202
- ),
203
- (
204
- '<a class="piwik_download"\n'
205
- ' href="{% static activity_version.get_win_document_with_images_file_path %}?{% now "jSFYHi" %}">\n'
206
- ),
207
- (),
208
- id="no option six",
209
- ),
210
- pytest.param(
211
- (
212
- "<span {%if a%}required{%endif%}title=\"{% if eev.status == eev.STATUS_CURRENT %} {% trans 'A' %} {% elif eev.status == eev.STATUS_APPROVED %} {% trans 'B' %} {% elif eev.status == eev.STATUS_EXPIRED %} {% trans 'C' %}{% endif %}\" class=\"asdf{%if a%}b{%endif%} asdf\" {%if a%}checked{%endif%}>\n"
213
- ),
214
- (
215
- "<span {% if a %}required{% endif %}\n"
216
- " title=\"{% if eev.status == eev.STATUS_CURRENT %} {% trans 'A' %} {% elif eev.status == eev.STATUS_APPROVED %} {% trans 'B' %} {% elif eev.status == eev.STATUS_EXPIRED %} {% trans 'C' %}{% endif %}\"\n"
217
- ' class="asdf{% if a %}b{% endif %} asdf"\n'
218
- " {% if a %}checked{% endif %}>\n"
219
- ),
220
- (),
221
- id="no option seven",
222
- ),
223
- pytest.param(
224
- (
225
- '<div class="bg-level{% if value >= 70 %}1{% elif value >= 60 %}2{% elif value >= 50 %}3{% else %}4{% endif %}>\n</div>\n'
226
- ),
227
- (
228
- '<div class="bg-level{% if value >= 70 %}1{% elif value >= 60 %}2{% elif value >= 50 %}3{% else %}4{% endif %}>\n</div>\n'
229
- ),
230
- (),
231
- id="no option eight",
232
- ),
233
- pytest.param(
234
- (
235
- "{% block body %}\n"
236
- ' <form action="{% if gpg -%}asdf something pretty long. can\'t beat this length{%- endif %}"\n'
237
- ' method="POST">\n'
238
- " </form>\n"
239
- "{% endblock body %}\n"
240
- ),
241
- (
242
- "{% block body %}\n"
243
- ' <form action="{% if gpg -%}asdf something pretty long. can\'t beat this length{%- endif %}"\n'
244
- ' method="POST">\n'
245
- " </form>\n"
246
- "{% endblock body %}\n"
247
- ),
248
- (),
249
- id="no option nine",
250
- ),
251
- pytest.param(
252
- (
253
- '<ul class="menu-list{% for child in entry.children %}{% if child.url== page.url %}is-active{%else%}not-active{% endif %}{% endfor %} is-collapsible">\n'
254
- ),
255
- (
256
- '<ul class="menu-list{% for child in entry.children %}{% if child.url== page.url %}is-active{% else %}not-active{% endif %}{% endfor %} is-collapsible">\n'
257
- ),
258
- (),
259
- id="no option for loop",
260
- ),
261
- pytest.param(
262
- (
263
- '<div {% if true %}class="test"{% endif %} {% include "django/forms/widgets/attrs.html" %}></div>'
264
- ),
265
- (
266
- '<div {% if true %}class="test"{% endif %}\n'
267
- ' {% include "django/forms/widgets/attrs.html" %}></div>\n'
268
- ),
269
- (),
270
- id="no option include",
271
- ),
272
- ]
273
-
274
-
275
- @pytest.mark.parametrize(("source", "expected", "args"), test_data)
276
- def test_base(source, expected, args):
277
- output = formatter(config_builder(args), source)
278
-
279
- printer(expected, source, output)
280
- assert expected == output
@@ -1,197 +0,0 @@
1
- """Test for format css.
2
-
3
- --format-css
4
- --indent-css
5
-
6
- poetry run pytest tests/test_config/test_format_css.py
7
- """
8
- import pytest
9
-
10
- from src.djlint.reformat import formatter
11
- from tests.conftest import config_builder, printer
12
-
13
- test_data = [
14
- pytest.param(
15
- ("<div><style>body{color:red}</style></div>"),
16
- (
17
- "<div>\n"
18
- " <style>\n"
19
- " body {\n"
20
- " color: red\n"
21
- " }\n"
22
- " </style>\n"
23
- "</div>\n"
24
- ),
25
- ({"format_css": True}),
26
- id="enabled",
27
- ),
28
- pytest.param(
29
- ("<div><style>body{color:red}</style></div>"),
30
- (
31
- "<div>\n"
32
- " <style>\n"
33
- " body {\n"
34
- " color: red\n"
35
- " }\n"
36
- " </style>\n"
37
- "</div>\n"
38
- ),
39
- ({"format_css": True, "indent_css": 1}),
40
- id="enabled_with_indent",
41
- ),
42
- pytest.param(
43
- (
44
- "<div>\n"
45
- " <script>\n"
46
- " __jsnlog_configure = function(JL) {\n"
47
- " JL.setOptions({\n"
48
- ' "defaultAjaxUrl": "/analytics/trace"\n'
49
- " })\n"
50
- " };\n"
51
- " try {\n"
52
- " __jsnlog_configure(JL);\n"
53
- " } catch (e) {};\n"
54
- " </script>\n"
55
- "</div>\n"
56
- "<style>.body {width: 12px}\n"
57
- "</style>\n"
58
- "<script src=\"{% static '/js/shared.min.js' %}\"></script>\n"
59
- "<script src=\"{% static '/js/alive.min.js' %}\"></script>\n"
60
- "<script src=\"{% static '/js/search.min.js' %}\" defer async></script>\n"
61
- "<script src=\"{% static '/js/utility.min.js' %}\" defer async></script>"
62
- ),
63
- (
64
- "<div>\n"
65
- " <script>\n"
66
- " __jsnlog_configure = function(JL) {\n"
67
- " JL.setOptions({\n"
68
- ' "defaultAjaxUrl": "/analytics/trace"\n'
69
- " })\n"
70
- " };\n"
71
- " try {\n"
72
- " __jsnlog_configure(JL);\n"
73
- " } catch (e) {};\n"
74
- " </script>\n"
75
- "</div>\n"
76
- "<style>\n"
77
- " .body {\n"
78
- " width: 12px\n"
79
- " }\n"
80
- "</style>\n"
81
- "<script src=\"{% static '/js/shared.min.js' %}\"></script>\n"
82
- "<script src=\"{% static '/js/alive.min.js' %}\"></script>\n"
83
- "<script src=\"{% static '/js/search.min.js' %}\" defer async></script>\n"
84
- "<script src=\"{% static '/js/utility.min.js' %}\" defer async></script>\n"
85
- ),
86
- ({"format_css": True}),
87
- id="enabled_block_one",
88
- ),
89
- pytest.param(
90
- (
91
- "<html>\n"
92
- " <head>\n"
93
- " <style>\n"
94
- " body {}\n"
95
- "\n"
96
- " div {}\n"
97
- " </style>\n"
98
- " </head>\n"
99
- " <script>\n"
100
- " let a;\n"
101
- "\n"
102
- " let b;\n"
103
- " </script>\n"
104
- "</html>"
105
- ),
106
- (
107
- "<html>\n"
108
- " <head>\n"
109
- " <style>\n"
110
- " body {}\n"
111
- "\n"
112
- " div {}\n"
113
- " </style>\n"
114
- " </head>\n"
115
- " <script>\n"
116
- " let a;\n"
117
- "\n"
118
- " let b;\n"
119
- " </script>\n"
120
- "</html>\n"
121
- ),
122
- ({"format_css": True}),
123
- id="blank lines",
124
- ),
125
- pytest.param(
126
- (
127
- "<script>\n"
128
- " /* beautify preserve:start */\n"
129
- "function(){}\n"
130
- " function(){}\n"
131
- " function(){}\n"
132
- "\n"
133
- " /* beautify preserve:end */\n"
134
- "</script>\n"
135
- "<script>\n"
136
- " /* beautify ignore:start */\n"
137
- "function(){}\n"
138
- " function(){}\n"
139
- " function(){}\n"
140
- "\n"
141
- " /* beautify ignore:end */\n"
142
- "</script>\n"
143
- "<style>\n"
144
- " /* beautify ignore:start */\n"
145
- " .class {display: none;}\n"
146
- " /* beautify ignore:end */\n"
147
- "</style>"
148
- ),
149
- (
150
- "<script>\n"
151
- " /* beautify preserve:start */\n"
152
- "function(){}\n"
153
- " function(){}\n"
154
- " function(){}\n"
155
- "\n"
156
- " /* beautify preserve:end */\n"
157
- "</script>\n"
158
- "<script>\n"
159
- " /* beautify ignore:start */\n"
160
- "function(){}\n"
161
- " function(){}\n"
162
- " function(){}\n"
163
- "\n"
164
- " /* beautify ignore:end */\n"
165
- "</script>\n"
166
- "<style>\n"
167
- " /* beautify ignore:start */\n"
168
- " .class {display: none;}\n"
169
- " /* beautify ignore:end */\n"
170
- "</style>\n"
171
- ),
172
- ({"format_css": True}),
173
- id="ignore",
174
- ),
175
- pytest.param(
176
- (
177
- "<!-- djlint:off -->\n"
178
- " <style> body{color:{{ search_index }};}</style><div></div>\n"
179
- " <!-- djlint:on -->"
180
- ),
181
- (
182
- "<!-- djlint:off -->\n"
183
- " <style> body{color:{{ search_index }};}</style><div></div>\n"
184
- "<!-- djlint:on -->\n"
185
- ),
186
- ({"format_js": True}),
187
- id="ignored blocks",
188
- ),
189
- ]
190
-
191
-
192
- @pytest.mark.parametrize(("source", "expected", "args"), test_data)
193
- def test_base(source, expected, args):
194
- output = formatter(config_builder(args), source)
195
-
196
- printer(expected, source, output)
197
- assert expected == output