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,111 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="{{ locale or "en" }}" dir="{{ dir or "ltr" }}" class="has-navbar-fixed-top">
3
- <head>
4
- {% block meta %}
5
- {% metagen
6
- title=(title or "title" | i18n or site.title) + " | " + site.name,
7
- desc=desc or description or "description" | i18n or site.description,
8
- url=site.url + page.url,
9
- img=image or site.url + site.image,
10
- img_alt=alt or "djlint logo",
11
- twitter_card_type=type,
12
- twitter_handle=twitter,
13
- name="Riverside Healthcare / Christopher Pickering"
14
- %}
15
- {% endblock meta %}
16
- <meta name="keywords"
17
- content="{{ page.keywords or keywords or site.keywords }}"/>
18
- <meta name="revised" content="{{ page.date.toISOString() }}" />
19
- <meta property="og:locale" content="en_US" />
20
- <meta property="article:author" content="Riverside Healthcare / Christopher Pickering" />
21
- <meta name="robots" content="index,follow" />
22
- <meta name="googlebot" content="index,follow" />
23
- <meta name="generator" content="{{ eleventy.generator }}">
24
- <link rel="icon" href="/favicon.ico" type="image/x-icon">
25
- <link rel="apple-touch-icon" href="/static/img/apple-touch-icon.png" />
26
- <link rel="apple-touch-icon"
27
- sizes="192x192"
28
- href="/static/img/logo-192x192.png"/>
29
- <link rel="apple-touch-icon"
30
- sizes="512x512"
31
- href="/static/img/logo-512x512.png"/>
32
- <meta content="yes" name="apple-mobile-web-app-capable">
33
- <meta name="apple-mobile-web-app-status-bar-style"
34
- content="black-translucent">
35
-
36
- <!-- languages -->
37
- <link rel="alternate" hreflang="en-US" href="{{site.url}}{{ page.url | baseUrl }}" />
38
- <link rel="alternate" hreflang="ru" href="{{site.url}}/ru{{ page.url | baseUrl }}" />
39
- <link rel="stylesheet"
40
- href="{{ "/static/css/site.css" | rev }}"/>
41
- <link rel="preload"
42
- href="/static/font/crimson-pro/files/crimson-pro-latin-400-normal.woff2"
43
- as="font"
44
- type="font/woff2"
45
- crossorigin/>
46
- <link rel="preload"
47
- href="/static/font/inter/files/inter-latin-400-normal.woff2"
48
- as="font"
49
- type="font/woff2"
50
- crossorigin/>
51
- <link rel="preload"
52
- href="/static/font/inter/files/inter-latin-600-normal.woff2"
53
- as="font"
54
- type="font/woff2"
55
- crossorigin/>
56
- <link rel="preload"
57
- href="/static/font/inter/files/inter-latin-700-normal.woff2"
58
- as="font"
59
- type="font/woff2"
60
- crossorigin/>
61
- <link rel="preload"
62
- href="/static/font/rasa/files/rasa-latin-500-normal.woff2"
63
- as="font"
64
- type="font/woff2"
65
- crossorigin/>
66
- <link rel="preload"
67
- href="/static/font/rasa/files/rasa-latin-600-normal.woff2"
68
- as="font"
69
- type="font/woff2"
70
- crossorigin/>
71
- <link rel="preload"
72
- href="/static/font/rasa/files/rasa-latin-700-normal.woff2"
73
- as="font"
74
- type="font/woff2"
75
- crossorigin/>
76
- <link rel="preload"
77
- href="/static/font/fontawesome/webfonts/fa-brands-400.woff2"
78
- as="font"
79
- type="font/woff2"
80
- crossorigin/>
81
- <link rel="preload"
82
- href="/static/font/fontawesome/webfonts/fa-regular-400.woff2"
83
- as="font"
84
- type="font/woff2"
85
- crossorigin/>
86
- <link rel="preload"
87
- href="/static/font/fontawesome/webfonts/fa-solid-900.woff2"
88
- as="font"
89
- type="font/woff2"
90
- crossorigin/>
91
- {% jsonLdScript meta, type, tags %}
92
- </head>
93
- <body>
94
- {% include "src/_includes/nav.njk" %}
95
- <section class="is-flex-grow-1 main">
96
- {% block body %}
97
- {{ content | safe }}
98
- {% endblock body %}
99
- </section>
100
- {% include "src/_includes/foot.njk" %}
101
- <script src="https://cdn.trackjs.com/agent/v3/latest/t.js"></script>
102
- <script>
103
- TrackJS.install({
104
- token: "43e6548fbc654c889ce75878d88c9071",
105
- application: "djlint"
106
- // for more configuration options, see https://docs.trackjs.com
107
- });
108
- </script>
109
- <script src="{{ js.scriptsJs }}" async></script>
110
- </body>
111
- </html>
@@ -1,85 +0,0 @@
1
- <nav class="navbar djlint-nav is-white is-fixed-top"
2
- aria-label="main navigation">
3
- <div class="container">
4
- <div class="navbar-brand">
5
- <a href="{{ "lang_code_url" | i18n }}/">{% image "./src/static/img/icon.png", "djlint icon", "(min-width:600px) 50vw, 100vw" %}</a>
6
- <a role="button"
7
- class="navbar-burger"
8
- aria-label="menu"
9
- aria-expanded="false"
10
- data-target="djlint-nav-menu">
11
- <span aria-hidden="true"></span>
12
- <span aria-hidden="true"></span>
13
- <span aria-hidden="true"></span>
14
- </a>
15
- </div>
16
- <div id="djlint-nav-menu" class="navbar-menu">
17
- <div class="navbar-start my-5 mx-0 is-justify-content-center is-flex-grow-1">
18
- <a class="navbar-item has-text-grey-dark" data-umami-event="gettingstarted" href="{{ "lang_code_url" | i18n }}/docs/getting-started/">
19
- {{ "getting_started" | i18n }}
20
- </a>
21
-
22
- <a class="navbar-item has-text-grey-dark" data-umami-event="formatter" href="{{ "lang_code_url" | i18n }}/docs/formatter/">
23
- {{ "formatter" | i18n }}
24
- </a>
25
- <a class="navbar-item has-text-grey-dark" data-umami-event="linter" href="{{ "lang_code_url" | i18n }}/docs/linter/">
26
- {{ "linter" | i18n }}
27
- </a>
28
- <a class="navbar-item has-text-grey-dark" data-umami-event="configuration" href="{{ "lang_code_url" | i18n }}/docs/configuration">
29
- {{ "configuration" | i18n }}
30
- </a>
31
- <a class="navbar-item has-text-grey-dark" data-umami-event="integrations" href="{{ "lang_code_url" | i18n }}/docs/integrations">
32
- {{ "integrations" | i18n }}
33
- </a>
34
- <a class="navbar-item has-text-grey-dark" data-umami-event="bestpractices" href="{{ "lang_code_url" | i18n }}/docs/best-practices">
35
- {{ "best_practices" | i18n }}
36
- </a>
37
- <a class="navbar-item has-text-grey-dark" data-umami-event="tryonline" href="{{ "lang_code_url" | i18n }}/demo">
38
- {{ "try_online" | i18n }}
39
- </a>
40
- </div>
41
- <div class="navbar-end mx-0">
42
- <a class="navbar-item button is-white animated fadeIn" data-umami-event="github"
43
- href="https://github.com/Riverside-Healthcare/djlint"
44
- target="_blank"
45
- rel="noopener"
46
- aria-label="GitHub">
47
- <span class="icon is-large has-text-grey-dark is-nav-icon">
48
- <i class="fab fa-2x fa-github"></i>
49
- </span>
50
- </a>
51
- <a class="navbar-item button is-white animated fadeIn" data-umami-event="discord"
52
- href="https://discord.gg/taghAqebzU"
53
- target="_blank"
54
- rel="noopener"
55
- aria-label="Discord">
56
- <span class="icon is-large has-text-grey-dark is-nav-icon">
57
- <i class="fab fa-2x fa-discord"></i>
58
- </span>
59
- </a>
60
- <a class="navbar-item button is-white animated fadeIn" data-umami-event="download"
61
- href="https://pypi.org/project/djlint/"
62
- target="_blank"
63
- rel="noopener"
64
- aria-label="Download">
65
- <span class="icon is-large has-text-grey-dark is-nav-icon">
66
- <i class="fas fa-2x fa-download"></i>
67
- </span>
68
- </a>
69
- <div class="navbar-item has-dropdown has-text-grey-dark is-hoverable">
70
- <div class="navbar-link has-text-grey-dark is-transparent">
71
- <span class="icon is-large">
72
- <i class="fas fa-lg fa-globe"></i>
73
- </span>
74
- <span>{{ locale | i18n_locale(locales) }}</span>
75
- </div>
76
- <div class="navbar-dropdown">
77
- {% for page in page.url | i18n_urls(collections.all) %}
78
- <a class="navbar-item" href="{{ page.url }}">{{ page.meta.label }}</a>
79
- {% endfor %}
80
- </div>
81
- </div>
82
- </div>
83
- </div>
84
- </div>
85
- </nav>
@@ -1,14 +0,0 @@
1
- const htmlmin = require('html-minifier');
2
-
3
- module.exports = function (content, outputPath) {
4
- if (outputPath.endsWith('.html')) {
5
- const minified = htmlmin.minify(content, {
6
- useShortDoctype: true,
7
- removeComments: true,
8
- collapseWhitespace: true,
9
- });
10
- return minified;
11
- }
12
-
13
- return content;
14
- };
@@ -1,91 +0,0 @@
1
- /*
2
- rollup plugin from https://www.hoeser.dev/blog/2021-02-28-11ty-and-rollup/
3
- */
4
-
5
- const rollup = require('rollup');
6
- const fs = require('fs');
7
- const path = require('path');
8
- const crypto = require('crypto');
9
-
10
- module.exports = (eleventyConfig, options) => {
11
- new Rollupper(eleventyConfig, options);
12
- };
13
-
14
- class Rollupper {
15
- inputFiles = {};
16
- rollupOptions = {};
17
-
18
- constructor(eleventyConfig, { shortcode = 'rollup', rollup } = {}) {
19
- this.rollupOptions = rollup;
20
- eleventyConfig.on('beforeBuild', () => this.beforeBuild());
21
- eleventyConfig.on('afterBuild', () => this.afterBuild());
22
-
23
- // We want to use "this" in the callback function, so we save the class instance beforehand
24
- const thisRollupper = this;
25
- eleventyConfig.addAsyncShortcode(shortcode, function (...args) {
26
- return thisRollupper.rollupperShortcode(this, ...args);
27
- });
28
- }
29
-
30
- beforeBuild() {
31
- this.inputFiles = {};
32
- }
33
-
34
- async rollupperShortcode(eleventyInstance, src, fileRelative = false) {
35
- // Resolve to the correct relative location
36
- if (fileRelative) {
37
- src = path.join(path.dirname(eleventyInstance.page.inputPath), src);
38
- }
39
-
40
- // resolve to absolute, since rollup uses absolute paths
41
- src = path.resolve(src);
42
-
43
- // generate a unique name for the file.
44
- // we take the first 6 chars of the sha256 of the absolute paths.
45
- const fileHash = await new Promise(function (resolve, reject) {
46
- const hash = crypto.createHash('sha256');
47
- const input = fs.createReadStream(src);
48
-
49
- input.on('error', reject);
50
-
51
- input.on('data', function (chunk) {
52
- hash.update(chunk);
53
- });
54
-
55
- input.on('close', function () {
56
- resolve(hash.digest('hex'));
57
- });
58
- });
59
- const scriptSrc = fileHash.substr(0, 6) + '.js';
60
-
61
- // register for rollup bundling
62
- this.inputFiles[src] = scriptSrc;
63
-
64
- // calculate script src after bundling
65
- const relativePath = path.relative(
66
- eleventyInstance.page.outputPath,
67
- path.join(this.rollupOptions.output.dir, scriptSrc),
68
- );
69
-
70
- return `<script src="${relativePath}" type="module"></script>`;
71
- }
72
-
73
- async afterBuild() {
74
- // Return early if no JS was used, since rollup throws on empty inputs
75
- if (!Object.keys(this.inputFiles).length) {
76
- return;
77
- }
78
- const bundle = await rollup.rollup({
79
- input: Object.keys(this.inputFiles),
80
- ...this.rollupOptions,
81
- });
82
- const inputFiles = this.inputFiles;
83
- await bundle.write({
84
- entryFileNames: (chunk) => {
85
- return inputFiles[chunk.facadeModuleId];
86
- },
87
- ...this.rollupOptions.output,
88
- });
89
- await bundle.close();
90
- }
91
- }
@@ -1,27 +0,0 @@
1
- const esbuild = require('esbuild');
2
- const generateContentHash = require('../lib/generate-content-hash.js');
3
-
4
- module.exports = class {
5
- data() {
6
- return {
7
- permalink: `/static/js/${generateContentHash(
8
- 'src/static/js/**/*.js',
9
- )}.js`,
10
- eleventyExcludeFromCollections: true,
11
- };
12
- }
13
-
14
- async render() {
15
- await esbuild.build({
16
- entryPoints: ['src/static/js/hamburger.js'],
17
- inject: ['./src/static/js/animate.js', './src/static/js/modal.js'],
18
- bundle: true,
19
- minify: true,
20
- outfile: `_site/static/js/${generateContentHash(
21
- 'src/static/js/**/*.js',
22
- )}.js`,
23
- sourcemap: false,
24
- target: 'es5',
25
- });
26
- }
27
- };
package/docs/src/demo.njk DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- layout: demo.njk
3
- date: Last Modified
4
- ---
@@ -1,78 +0,0 @@
1
- ---
2
- description: Best practices for using djLint to format HTML templates.
3
- title: Best Practices
4
- keywords: template linter, template formatter, djLint, HTML, templates, formatter, linter, best practices
5
- ---
6
-
7
- # Best Practices
8
-
9
- ## Spaces Around Conditional Attributes
10
-
11
- Sometimes conditions are used to add classes to a tag. djLint removes whitespace inside conditional statements.
12
-
13
- This pattern is recommended:
14
-
15
- {% raw %}
16
-
17
- ```html
18
- <div class="class1 {% if condition -%}class2{%- endif %}">content</div>
19
- ^ space here
20
- ```
21
-
22
- {% endraw %}
23
-
24
- This pattern is not recommended:
25
-
26
- {% raw %}
27
-
28
- ```html
29
- <div class="class1{% if condition -%} class2{%- endif %}">content</div>
30
- ^ space here
31
- ```
32
-
33
- {% endraw %}
34
-
35
- ## `format_attribute_template_tags` and Spaceless Conditional Attributes
36
-
37
- If `format_attribute_template_tags` option is enabled, conditional attributes should use spaceless tags, for example {% raw %}`{% if a -%}`{% endraw %} in nunjuck and jinja, to remove spaces inside the.
38
-
39
- djLint will format long attributes onto multiple lines, and the whitespace saved inside of attributes could break your code.
40
-
41
- This pattern is recommended:
42
-
43
- {% raw %}
44
-
45
- ```html
46
- <input
47
- value="{% if database -%}{{ database.name }}{%- else -%}blah{%- endif %}"
48
- />
49
- ^ ^ ^ ^-- spaceless tags
50
- ```
51
-
52
- {% endraw %}
53
-
54
- This pattern is not recommended:
55
-
56
- {% raw %}
57
-
58
- ```html
59
- <input value="{% if database %}{{ database.name }}{% else %}blah{% endif %}" />
60
- ```
61
-
62
- {% endraw %}
63
-
64
- After formatting this could look like:
65
-
66
- {% raw %}
67
-
68
- ```html
69
- <input
70
- value="{% if database %}
71
- {{ database.name }}
72
- {% else %}
73
- blah
74
- {% endif %}"
75
- />
76
- ```
77
-
78
- {% endraw %}