djlint 1.28.0 → 1.30.0

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/.coveragerc +9 -0
  2. package/.editorconfig +21 -0
  3. package/.flake8 +0 -0
  4. package/.github/FUNDING.yml +2 -0
  5. package/.github/ISSUE_TEMPLATE/config.yml +6 -0
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  7. package/.github/ISSUE_TEMPLATE/formatter_but_report.md +30 -0
  8. package/.github/ISSUE_TEMPLATE/linter_bug_report.md +34 -0
  9. package/.github/ISSUE_TEMPLATE/translation.md +14 -0
  10. package/.github/config.yml +4 -0
  11. package/.github/pull_request_template.md +10 -0
  12. package/.github/workflows/cancel.yml +17 -0
  13. package/.github/workflows/demo.yml +98 -0
  14. package/.github/workflows/issues.yml +23 -0
  15. package/.github/workflows/linkcheck.yaml +21 -0
  16. package/.github/workflows/lint.yml +25 -0
  17. package/.github/workflows/release.yml +57 -0
  18. package/.github/workflows/test.yml +85 -0
  19. package/.pre-commit-config.yaml +45 -0
  20. package/.pre-commit-hooks.yaml +71 -0
  21. package/.prettierignore +7 -0
  22. package/.prettierrc +11 -0
  23. package/.releaserc +16 -0
  24. package/CHANGELOG.md +13 -0
  25. package/MANIFEST.in +2 -0
  26. package/build_demo.sh +17 -0
  27. package/docs/.eleventy.js +425 -0
  28. package/docs/.eleventyignore +2 -0
  29. package/docs/.prettierignore +3 -0
  30. package/docs/.prettierrc +11 -0
  31. package/docs/package.json +73 -0
  32. package/docs/readme.md +17 -0
  33. package/docs/src/_data/configuration.json +646 -0
  34. package/docs/src/_data/eleventyComputed.js +22 -0
  35. package/docs/src/_data/i18n/index.js +159 -0
  36. package/docs/src/_data/js.js +7 -0
  37. package/docs/src/_data/locales.js +17 -0
  38. package/docs/src/_data/site.json +8 -0
  39. package/docs/src/_includes/demo.njk +157 -0
  40. package/docs/src/_includes/docs_layout.njk +34 -0
  41. package/docs/src/_includes/foot.njk +26 -0
  42. package/docs/src/_includes/index.njk +187 -0
  43. package/docs/src/_includes/languages_layout.njk +11 -0
  44. package/docs/src/_includes/layout.njk +111 -0
  45. package/docs/src/_includes/nav.njk +85 -0
  46. package/docs/src/_utils/minify-html.js +14 -0
  47. package/docs/src/_utils/rollupper.js +91 -0
  48. package/docs/src/_utils/scripts.11ty.js +27 -0
  49. package/docs/src/demo.njk +4 -0
  50. package/docs/src/docs/best-practices.md +78 -0
  51. package/docs/src/docs/changelog.md +452 -0
  52. package/docs/src/docs/configuration.md +145 -0
  53. package/docs/src/docs/docs.json +4 -0
  54. package/docs/src/docs/formatter.md +82 -0
  55. package/docs/src/docs/getting-started.md +126 -0
  56. package/docs/src/docs/ignoring-code.md +75 -0
  57. package/docs/src/docs/integrations.md +120 -0
  58. package/docs/src/docs/languages/angular.md +31 -0
  59. package/docs/src/docs/languages/django.md +40 -0
  60. package/docs/src/docs/languages/golang.md +31 -0
  61. package/docs/src/docs/languages/handlebars.md +31 -0
  62. package/docs/src/docs/languages/jinja.md +39 -0
  63. package/docs/src/docs/languages/languages.json +3 -0
  64. package/docs/src/docs/languages/mustache.md +31 -0
  65. package/docs/src/docs/languages/nunjucks.md +39 -0
  66. package/docs/src/docs/languages/twig.md +41 -0
  67. package/docs/src/docs/linter.md +199 -0
  68. package/docs/src/fr/demo.njk +4 -0
  69. package/docs/src/fr/docs/best-practices.md +78 -0
  70. package/docs/src/fr/docs/changelog.md +452 -0
  71. package/docs/src/fr/docs/configuration.md +144 -0
  72. package/docs/src/fr/docs/docs.json +3 -0
  73. package/docs/src/fr/docs/formatter.md +83 -0
  74. package/docs/src/fr/docs/getting-started.md +127 -0
  75. package/docs/src/fr/docs/ignoring-code.md +75 -0
  76. package/docs/src/fr/docs/integrations.md +100 -0
  77. package/docs/src/fr/docs/languages/angular.md +31 -0
  78. package/docs/src/fr/docs/languages/django.md +31 -0
  79. package/docs/src/fr/docs/languages/golang.md +31 -0
  80. package/docs/src/fr/docs/languages/handlebars.md +31 -0
  81. package/docs/src/fr/docs/languages/jinja.md +31 -0
  82. package/docs/src/fr/docs/languages/languages.json +3 -0
  83. package/docs/src/fr/docs/languages/mustache.md +31 -0
  84. package/docs/src/fr/docs/languages/nunjucks.md +31 -0
  85. package/docs/src/fr/docs/languages/twig.md +31 -0
  86. package/docs/src/fr/docs/linter.md +207 -0
  87. package/docs/src/fr/fr.json +4 -0
  88. package/docs/src/fr/index.njk +4 -0
  89. package/docs/src/index.njk +4 -0
  90. package/docs/src/lib/generate-content-hash.js +13 -0
  91. package/docs/src/robots.txt +4 -0
  92. package/docs/src/ru/demo.njk +4 -0
  93. package/docs/src/ru/docs/best-practices.md +78 -0
  94. package/docs/src/ru/docs/changelog.md +453 -0
  95. package/docs/src/ru/docs/configuration.md +142 -0
  96. package/docs/src/ru/docs/docs.json +3 -0
  97. package/docs/src/ru/docs/formatter.md +82 -0
  98. package/docs/src/ru/docs/getting-started.md +127 -0
  99. package/docs/src/ru/docs/ignoring-code.md +75 -0
  100. package/docs/src/ru/docs/integrations.md +100 -0
  101. package/docs/src/ru/docs/languages/angular.md +31 -0
  102. package/docs/src/ru/docs/languages/django.md +31 -0
  103. package/docs/src/ru/docs/languages/golang.md +31 -0
  104. package/docs/src/ru/docs/languages/handlebars.md +31 -0
  105. package/docs/src/ru/docs/languages/jinja.md +31 -0
  106. package/docs/src/ru/docs/languages/languages.json +3 -0
  107. package/docs/src/ru/docs/languages/mustache.md +31 -0
  108. package/docs/src/ru/docs/languages/nunjucks.md +31 -0
  109. package/docs/src/ru/docs/languages/twig.md +31 -0
  110. package/docs/src/ru/docs/linter.md +126 -0
  111. package/docs/src/ru/index.njk +4 -0
  112. package/docs/src/ru/ru.json +4 -0
  113. package/docs/src/sitemap.njk +16 -0
  114. package/docs/src/static/css/site.scss +467 -0
  115. package/docs/src/static/font/fontawesome/stylesheet.scss +78 -0
  116. package/docs/src/static/img/apple-touch-icon.png +0 -0
  117. package/docs/src/static/img/demo-min.gif +0 -0
  118. package/docs/src/static/img/demo.gif +0 -0
  119. package/docs/src/static/img/demo.webm +0 -0
  120. package/docs/src/static/img/favicon-16x16.png +0 -0
  121. package/docs/src/static/img/favicon-32x32.png +0 -0
  122. package/docs/src/static/img/favicon.ico +0 -0
  123. package/docs/src/static/img/icon-square.indd +0 -0
  124. package/docs/src/static/img/icon-square.png +0 -0
  125. package/docs/src/static/img/icon.png +0 -0
  126. package/docs/src/static/img/logo-192x192.png +0 -0
  127. package/docs/src/static/img/logo-512x512.png +0 -0
  128. package/docs/src/static/img/logos/angular.png +0 -0
  129. package/docs/src/static/img/logos/django.png +0 -0
  130. package/docs/src/static/img/logos/golang.png +0 -0
  131. package/docs/src/static/img/logos/handlebars.png +0 -0
  132. package/docs/src/static/img/logos/jinja.png +0 -0
  133. package/docs/src/static/img/logos/mustache.png +0 -0
  134. package/docs/src/static/img/logos/nunjucks.png +0 -0
  135. package/docs/src/static/img/logos/twig.png +0 -0
  136. package/docs/src/static/img/old_demo.gif +0 -0
  137. package/docs/src/static/img/style.css +122 -0
  138. package/docs/src/static/js/animate.js +69 -0
  139. package/docs/src/static/js/editor.js +171 -0
  140. package/docs/src/static/js/hamburger.js +19 -0
  141. package/docs/src/static/js/modal.js +47 -0
  142. package/docs/src/static/js/worker.js +142 -0
  143. package/docs/src/static/py/EditorConfig-99-py3-none-any.whl +0 -0
  144. package/docs/src/static/py/PyYAML-99-py3-none-any.whl +0 -0
  145. package/docs/src/static/py/click-99-py3-none-any.whl +0 -0
  146. package/docs/src/static/py/colorama-99-py3-none-any.whl +0 -0
  147. package/docs/src/static/py/cssbeautifier-99-py3-none-any.whl +0 -0
  148. package/docs/src/static/py/djlint-99-py3-none-any.whl +0 -0
  149. package/docs/src/static/py/html_tag_names-99-py3-none-any.whl +0 -0
  150. package/docs/src/static/py/html_void_elements-99-py3-none-any.whl +0 -0
  151. package/docs/src/static/py/jsbeautifier-99-py3-none-any.whl +0 -0
  152. package/docs/src/static/py/json5-99-py3-none-any.whl +0 -0
  153. package/docs/src/static/py/pathspec-99-py3-none-any.whl +0 -0
  154. package/docs/src/static/py/regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
  155. package/docs/src/static/py/six-1.16.0-py2.py3-none-any.whl +0 -0
  156. package/docs/src/static/py/tomli-2.0.1-py3-none-any.whl +0 -0
  157. package/docs/src/static/py/tqdm-4.65.0-py3-none-any.whl +0 -0
  158. package/icon.xcf +0 -0
  159. package/package.json +4 -33
  160. package/poetry.lock +835 -0
  161. package/pyproject.toml +100 -0
  162. package/renovate.json +44 -0
  163. package/scripts/updateVersion.js +16 -0
  164. package/src/djlint/__init__.py +451 -0
  165. package/src/djlint/__main__.py +4 -0
  166. package/src/djlint/formatter/__init__.py +1 -0
  167. package/src/djlint/formatter/attributes.py +212 -0
  168. package/src/djlint/formatter/compress.py +64 -0
  169. package/src/djlint/formatter/condense.py +221 -0
  170. package/src/djlint/formatter/css.py +60 -0
  171. package/src/djlint/formatter/expand.py +111 -0
  172. package/src/djlint/formatter/indent.py +418 -0
  173. package/src/djlint/formatter/js.py +58 -0
  174. package/src/djlint/helpers.py +321 -0
  175. package/src/djlint/lint.py +128 -0
  176. package/src/djlint/output.py +220 -0
  177. package/src/djlint/reformat.py +63 -0
  178. package/src/djlint/rules/H025.py +65 -0
  179. package/src/djlint/rules.yaml +279 -0
  180. package/src/djlint/settings.py +969 -0
  181. package/src/djlint/src.py +91 -0
  182. package/tests/__init__.py +0 -0
  183. package/tests/conftest.py +239 -0
  184. package/tests/test_cli.py +71 -0
  185. package/tests/test_config/__init__.py +0 -0
  186. package/tests/test_config/test_blank_line_after_tag.py +135 -0
  187. package/tests/test_config/test_blank_line_before_tag.py +141 -0
  188. package/tests/test_config/test_close_void_tags.py +31 -0
  189. package/tests/test_config/test_custom_blocks.py +56 -0
  190. package/tests/test_config/test_custom_html.py +45 -0
  191. package/tests/test_config/test_djlintrc/.djlintrc +38 -0
  192. package/tests/test_config/test_djlintrc/__init__.py +0 -0
  193. package/tests/test_config/test_djlintrc/test_config.py +44 -0
  194. package/tests/test_config/test_djlintrc_custom/.djlint-cust +38 -0
  195. package/tests/test_config/test_djlintrc_custom/.djlintrc +2 -0
  196. package/tests/test_config/test_djlintrc_custom/__init__.py +0 -0
  197. package/tests/test_config/test_djlintrc_custom/test_config.py +48 -0
  198. package/tests/test_config/test_excludes/__init__.py +0 -0
  199. package/tests/test_config/test_excludes/excluded.html +1 -0
  200. package/tests/test_config/test_excludes/foo/excluded.html +1 -0
  201. package/tests/test_config/test_excludes/html.html +1 -0
  202. package/tests/test_config/test_excludes/pyproject.toml +3 -0
  203. package/tests/test_config/test_excludes/test_config.py +30 -0
  204. package/tests/test_config/test_extension/__init__.py +0 -0
  205. package/tests/test_config/test_extension/html.test +1 -0
  206. package/tests/test_config/test_extension/pyproject.toml +3 -0
  207. package/tests/test_config/test_extension/test_config.py +27 -0
  208. package/tests/test_config/test_files/.djlintrc_global +9 -0
  209. package/tests/test_config/test_files/test.html +3 -0
  210. package/tests/test_config/test_files/test_config.py +123 -0
  211. package/tests/test_config/test_files/test_two.html +1 -0
  212. package/tests/test_config/test_format_attribute_template_tags.py +280 -0
  213. package/tests/test_config/test_format_css.py +197 -0
  214. package/tests/test_config/test_format_js.py +220 -0
  215. package/tests/test_config/test_gitignore/__init__.py +0 -0
  216. package/tests/test_config/test_gitignore/html_one.html +1 -0
  217. package/tests/test_config/test_gitignore/html_two.html +1 -0
  218. package/tests/test_config/test_gitignore/test_config.py +142 -0
  219. package/tests/test_config/test_ignore/__init__.py +0 -0
  220. package/tests/test_config/test_ignore/html.html +1 -0
  221. package/tests/test_config/test_ignore/html_two.html +12 -0
  222. package/tests/test_config/test_ignore/pyproject.toml +3 -0
  223. package/tests/test_config/test_ignore/test_config.py +32 -0
  224. package/tests/test_config/test_ignore_blocks.py +45 -0
  225. package/tests/test_config/test_ignore_case.py +39 -0
  226. package/tests/test_config/test_indent.py +63 -0
  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 +1 -0
  229. package/tests/test_config/test_linter_output_format/html-two.html +1 -0
  230. package/tests/test_config/test_linter_output_format/pyproject.toml +3 -0
  231. package/tests/test_config/test_linter_output_format/test_config.py +34 -0
  232. package/tests/test_config/test_max_attribute_length.py +100 -0
  233. package/tests/test_config/test_max_line_length.py +94 -0
  234. package/tests/test_config/test_per_file_ignores/__init__.py +0 -0
  235. package/tests/test_config/test_per_file_ignores/html.html +2 -0
  236. package/tests/test_config/test_per_file_ignores/pyproject.toml +2 -0
  237. package/tests/test_config/test_per_file_ignores/test_config.py +25 -0
  238. package/tests/test_config/test_pragmas/__init__.py +0 -0
  239. package/tests/test_config/test_pragmas/html_five.html +2 -0
  240. package/tests/test_config/test_pragmas/html_four.html +5 -0
  241. package/tests/test_config/test_pragmas/html_one.html +1 -0
  242. package/tests/test_config/test_pragmas/html_six.html +2 -0
  243. package/tests/test_config/test_pragmas/html_three.html +4 -0
  244. package/tests/test_config/test_pragmas/html_two.html +2 -0
  245. package/tests/test_config/test_pragmas/pyproject.toml +3 -0
  246. package/tests/test_config/test_pragmas/test_config.py +142 -0
  247. package/tests/test_config/test_preserve_blank_lines.py +109 -0
  248. package/tests/test_config/test_preserve_leading_space.py +159 -0
  249. package/tests/test_config/test_profile/__init__.py +0 -0
  250. package/tests/test_config/test_profile/html.html +2 -0
  251. package/tests/test_config/test_profile/pyproject.toml +3 -0
  252. package/tests/test_config/test_profile/test_config.py +64 -0
  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 +36 -0
  256. package/tests/test_config/test_pyproject/test_config.py +44 -0
  257. package/tests/test_django/__init__.py +0 -0
  258. package/tests/test_django/test_asset.py +32 -0
  259. package/tests/test_django/test_autoescape.py +25 -0
  260. package/tests/test_django/test_block.py +29 -0
  261. package/tests/test_django/test_blocktrans.py +236 -0
  262. package/tests/test_django/test_blocktrans_trimmed.py +283 -0
  263. package/tests/test_django/test_comments.py +164 -0
  264. package/tests/test_django/test_filter.py +30 -0
  265. package/tests/test_django/test_for.py +34 -0
  266. package/tests/test_django/test_if.py +34 -0
  267. package/tests/test_django/test_ifchanged.py +37 -0
  268. package/tests/test_django/test_include.py +24 -0
  269. package/tests/test_django/test_load.py +24 -0
  270. package/tests/test_django/test_quoted.py +34 -0
  271. package/tests/test_django/test_spaceless.py +30 -0
  272. package/tests/test_django/test_tag_spaces.py +35 -0
  273. package/tests/test_django/test_templatetag.py +40 -0
  274. package/tests/test_django/test_verbatim.py +24 -0
  275. package/tests/test_django/test_with.py +32 -0
  276. package/tests/test_djlint/-.html +1 -0
  277. package/tests/test_djlint/__init__.py +0 -0
  278. package/tests/test_djlint/bad.html +6 -0
  279. package/tests/test_djlint/bad.html.dj +23 -0
  280. package/tests/test_djlint/bad.html.dj2 +2 -0
  281. package/tests/test_djlint/multiple_files/a/a.html +1 -0
  282. package/tests/test_djlint/multiple_files/b/b1.html +1 -0
  283. package/tests/test_djlint/multiple_files/b/b2.html +1 -0
  284. package/tests/test_djlint/test_djlint.py +242 -0
  285. package/tests/test_golang/__init__.py +0 -0
  286. package/tests/test_golang/test_if.py +24 -0
  287. package/tests/test_golang/test_range.py +24 -0
  288. package/tests/test_handlebars/__init__.py +0 -0
  289. package/tests/test_handlebars/test_each.py +34 -0
  290. package/tests/test_handlebars/test_else.py +24 -0
  291. package/tests/test_handlebars/test_with.py +24 -0
  292. package/tests/test_html/__init__.py +0 -0
  293. package/tests/test_html/test_alpinejs.py +65 -0
  294. package/tests/test_html/test_attributes.py +935 -0
  295. package/tests/test_html/test_aurelia.py +24 -0
  296. package/tests/test_html/test_basics.py +905 -0
  297. package/tests/test_html/test_bracket_same_line.py +177 -0
  298. package/tests/test_html/test_case.py +81 -0
  299. package/tests/test_html/test_cdata.py +34 -0
  300. package/tests/test_html/test_comments.py +333 -0
  301. package/tests/test_html/test_css.py +193 -0
  302. package/tests/test_html/test_doctype_declarations.py +202 -0
  303. package/tests/test_html/test_ignored.py +193 -0
  304. package/tests/test_html/test_interpolation.py +56 -0
  305. package/tests/test_html/test_line_break_after_multiline_tag.py +95 -0
  306. package/tests/test_html/test_next_line_empty.py +53 -0
  307. package/tests/test_html/test_selfclosing.py +55 -0
  308. package/tests/test_html/test_single_attribute_per_line.py +87 -0
  309. package/tests/test_html/test_srcset.py +43 -0
  310. package/tests/test_html/test_svg.py +104 -0
  311. package/tests/test_html/test_symbol_entities.py +34 -0
  312. package/tests/test_html/test_tag_code.py +24 -0
  313. package/tests/test_html/test_tag_dd.py +24 -0
  314. package/tests/test_html/test_tag_details_summary.py +24 -0
  315. package/tests/test_html/test_tag_dt.py +24 -0
  316. package/tests/test_html/test_tag_fig_caption.py +29 -0
  317. package/tests/test_html/test_tag_hr.py +29 -0
  318. package/tests/test_html/test_tag_picture.py +32 -0
  319. package/tests/test_html/test_tag_pre.py +45 -0
  320. package/tests/test_html/test_tag_script.py +516 -0
  321. package/tests/test_html/test_tag_small.py +24 -0
  322. package/tests/test_html/test_tag_span.py +119 -0
  323. package/tests/test_html/test_tag_textarea.py +82 -0
  324. package/tests/test_html/test_tags.py +842 -0
  325. package/tests/test_html/test_text.py +34 -0
  326. package/tests/test_html/test_whitespace.py +477 -0
  327. package/tests/test_html/test_yaml.py +156 -0
  328. package/tests/test_jinja/__init__.py +0 -0
  329. package/tests/test_jinja/test_call.py +34 -0
  330. package/tests/test_jinja/test_parenthesis.py +24 -0
  331. package/tests/test_linter/__init__.py +0 -0
  332. package/tests/test_linter/test_custom_rules/.djlint_rules.yaml +6 -0
  333. package/tests/test_linter/test_custom_rules/__init__.py +0 -0
  334. package/tests/test_linter/test_custom_rules/html.html +1 -0
  335. package/tests/test_linter/test_custom_rules/pyproject.toml +1 -0
  336. package/tests/test_linter/test_custom_rules/test_linter.py +29 -0
  337. package/tests/test_linter/test_custom_rules_bad/.djlint_rules.yaml +24 -0
  338. package/tests/test_linter/test_custom_rules_bad/__init__.py +0 -0
  339. package/tests/test_linter/test_custom_rules_bad/html.html +1 -0
  340. package/tests/test_linter/test_custom_rules_bad/pyproject.toml +1 -0
  341. package/tests/test_linter/test_custom_rules_bad/test_linter.py +29 -0
  342. package/tests/test_linter/test_django_linter.py +476 -0
  343. package/tests/test_linter/test_h005.py +45 -0
  344. package/tests/test_linter/test_h006.py +81 -0
  345. package/tests/test_linter/test_h007.py +45 -0
  346. package/tests/test_linter/test_h008.py +60 -0
  347. package/tests/test_linter/test_h009.py +45 -0
  348. package/tests/test_linter/test_h010.py +44 -0
  349. package/tests/test_linter/test_h037.py +150 -0
  350. package/tests/test_linter/test_ignore_rules.py +45 -0
  351. package/tests/test_linter/test_jinja_linter.py +227 -0
  352. package/tests/test_linter/test_linter.py +691 -0
  353. package/tests/test_linter/test_nunjucks_linter.py +59 -0
  354. package/tests/test_linter/test_python_module_rules/.djlint_rules.yaml +4 -0
  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 +3 -0
  357. package/tests/test_linter/test_python_module_rules/html_ok.html +3 -0
  358. package/tests/test_linter/test_python_module_rules/my_module.py +32 -0
  359. package/tests/test_linter/test_python_module_rules/pyproject.toml +1 -0
  360. package/tests/test_linter/test_python_module_rules/test_linter.py +26 -0
  361. package/tests/test_nunjucks/__init__.py +0 -0
  362. package/tests/test_nunjucks/test_functions.py +94 -0
  363. package/tests/test_nunjucks/test_macros.py +41 -0
  364. package/tests/test_nunjucks/test_set.py +206 -0
  365. package/tests/test_nunjucks/test_spaceless.py +24 -0
  366. package/tests/test_twig/__init__.py +0 -0
  367. package/tests/test_twig/test_comments.py +51 -0
  368. package/tox.ini +48 -0
@@ -0,0 +1,159 @@
1
+ module.exports = {
2
+ hello: {
3
+ 'en-US': 'Hello',
4
+ ru: 'Hola',
5
+ fr: 'Salut',
6
+ },
7
+ title: {
8
+ 'en-US': 'HTML Template Linter and Formatter',
9
+ ru: 'Программа проверки и форматирования шаблонов HTML',
10
+ fr: 'Linter et formateur de modèles HTML',
11
+ },
12
+ // Lang_name: {
13
+ // 'en-US': "English",
14
+ // ru: "Русский"
15
+ // },
16
+ // lang_code: {
17
+ // 'en-US': "en",
18
+ // ru: "ru"
19
+ // },
20
+ lang_code_url: {
21
+ 'en-US': '',
22
+ ru: '/ru',
23
+ fr: '/fr',
24
+ },
25
+ next_release: {
26
+ 'en-US': 'Next Release',
27
+ ru: 'Следующая публикация',
28
+ fr: 'Prochaine Version',
29
+ },
30
+ getting_started: {
31
+ 'en-US': 'Getting Started',
32
+ ru: 'Начало Работы',
33
+ fr: 'Commencer',
34
+ },
35
+ formatter: {
36
+ 'en-US': 'Formatter',
37
+ ru: 'Форматер',
38
+ fr: 'Formateur',
39
+ },
40
+ linter: {
41
+ 'en-US': 'Linter',
42
+ ru: 'Линтер',
43
+ fr: 'Linter',
44
+ },
45
+ configuration: {
46
+ 'en-US': 'Configuration',
47
+ ru: 'Конфигурация',
48
+ fr: 'Configuration',
49
+ },
50
+ integrations: {
51
+ 'en-US': 'Integrations',
52
+ ru: 'Интеграции',
53
+ fr: 'Intégrations',
54
+ },
55
+ best_practices: {
56
+ 'en-US': 'Best Practices',
57
+ ru: 'Лучшие Практики',
58
+ fr: 'Meilleures Pratiques',
59
+ },
60
+ description: {
61
+ 'en-US':
62
+ 'Find common syntax errors, reformat to make your HTML templates shine! Supports django, jinja, nunjucks, twig, handlebars, mustache, golang, and more!',
63
+ ru: 'Найдите распространенные синтаксические ошибки, переформатируйте, чтобы ваши HTML-шаблоны сияли! Поддерживает django, jinja, nunjucks, twig, handlebars, mustache, golang и многое другое!',
64
+ fr: 'Trouvez les erreurs de syntaxe courantes, reformatez pour faire briller vos modèles HTML ! Supporte django, jinja, nunjucks, twig, handlebars, mustache, golang, et plus encore !',
65
+ },
66
+ updated: {
67
+ 'en-US': 'Updated',
68
+ ru: 'Обновлен',
69
+ fr: 'Actualisé',
70
+ },
71
+ changelog: {
72
+ 'en-US': 'Changelog',
73
+ ru: 'Изменения',
74
+ fr: 'Changelog',
75
+ },
76
+ documentation: {
77
+ 'en-US': 'Documentation',
78
+ ru: 'Документация',
79
+ fr: 'Documentation',
80
+ },
81
+ index_title: {
82
+ 'en-US': 'Lint & Format HTML Templates',
83
+ ru: 'Проверка и форматирование html-шаблонов',
84
+ fr: 'Lint & Format Templates HTML',
85
+ },
86
+ index_description: {
87
+ 'en-US':
88
+ 'Once upon a time all the other programming languages had a formatter and linter. Css, javascript, python, the c suite, typescript, ruby, php, go, swift, and you know the others. <i>The cool kids on the block.</i><br>HTML templates were left out there on their own, in the cold, unformatted and unlinted :( The dirty corner in your repository. <i>Something had to change.</i><br>Welcome djLint, the free cleaning service for html templates!<br>And the html templates lived happily ever after.',
89
+ ru: 'Когда-то давно все другие языки программирования имели форматтер и линтер. Css, javascript, python, c suite, typescript, ruby, php, go, swift, и вы знаете другие. <i>Крутые ребята в квартале.</i><br>HTML-шаблоны остались там сами по себе, на холоде, неформатированные и нелинкованные :( Грязный угол в вашем репозитории. <i>Что-то должно было измениться.</i><br>Добро пожаловать djLint, бесплатный сервис очистки html-шаблонов!<br>И html-шаблоны жили долго и счастливо.',
90
+ fr: "Il était une fois, un royaume où tous les autres langages de programmation avaient un formateur et un linter. Css, javascript, python, la suite c, typescript, ruby, php, go, swift, et vous connaissez les autres. <i>Les gamins cool du quartier.</i><br>Les modèles HTML restaient là, seuls, dans le froid, non formatés et non non-lintés :( Le coin cracra de votre entrepôt. <i>Quelque chose devait changer.</i><br>Bienvenue à djLint, le service gratuit de nettoyage des modèles html !<br>Et les modèles html vécurent heureux jusqu'à la fin des temps.",
91
+ },
92
+ index_fav_lang: {
93
+ 'en-US': 'find your favorite template language!',
94
+ ru: 'найдите свой любимый язык шаблонов!',
95
+ fr: 'retrouvez votre language informatique préféré!',
96
+ },
97
+ index_show_format: {
98
+ 'en-US': 'Show your format!',
99
+ ru: 'Покажите свой формат!',
100
+ fr: 'Montre ton format!',
101
+ },
102
+ index_watch: {
103
+ 'en-US': 'Watch it run!',
104
+ ru: 'Смотрите, как он идет!',
105
+ fr: 'Regardez-le marcher!',
106
+ },
107
+ index_add_badge: {
108
+ 'en-US': 'Add a badge to your projects',
109
+ ru: 'Добавьте значок к своим проектам',
110
+ fr: 'Ajoutez un badge à vos projets',
111
+ },
112
+ index_looks_like: {
113
+ 'en-US': 'Looks like this:',
114
+ ru: 'Выглядит вот так:',
115
+ fr: 'Ça ressemble à ça:',
116
+ },
117
+ contributing: {
118
+ 'en-US': 'Contributing',
119
+ ru: 'Вклад',
120
+ fr: 'Contribuer',
121
+ },
122
+ contributing_message: {
123
+ 'en-US':
124
+ 'Contributions are welcome. Send a pr with a new feature, or checkout the <a href="https://github.com/Riverside-Healthcare/djlint/issues">issue</a> list and help where you can.',
125
+ ru: 'Вклад в работу сайта приветствуется. Пришлите письмо с новой функцией или ознакомьтесь со <a href="https://github.com/Riverside-Healthcare/djlint/issues">списком проблем</a> и помогите, чем можете.',
126
+ fr: 'Les contributions sont les bienvenues. Envoyez un pr avec une nouvelle fonctionnalité, ou consultez la <a href="https://github.com/Riverside-Healthcare/djlint/issues">liste</a> et aidez où vous pouvez.',
127
+ },
128
+ edit_page: {
129
+ 'en-US': 'Edit this page',
130
+ ru: 'Редактировать эту страницу',
131
+ fr: 'Modifier cette page',
132
+ },
133
+ ignoring_code: {
134
+ 'en-US': 'Ignoring Code',
135
+ ru: 'Игнорирование Контент',
136
+ fr: 'Ignorer le Contenu',
137
+ },
138
+ try_online: {
139
+ 'en-US': '🤩 Try Online',
140
+ fr: '🤩 Essayez Ici',
141
+ ru: '🤩 Попробуйте онлайн',
142
+ },
143
+ demo_description: {
144
+ 'en-US': 'Online HTML Template formatter using djLint!',
145
+ ru: 'Онлайн форматировщик HTML-шаблонов с использованием djLint',
146
+ fr: 'Formateur de modèles HTML en ligne utilisant djLint !',
147
+ },
148
+ footer_credits: {
149
+ 'en-US':
150
+ 'djLint was originally created for use in the <a href="https://atlas.bi" target="_blank">Atlas</a> projects by the <a href="https://github.com/riverside-Healthcare/" target="_blank">Riverside Healthcare Analytics</a> team.',
151
+ fr: 'djLint a été créé à l\'origine pour être utilisé dans les projets <a href="https://atlas.bi" target="_blank">Atlas</a> par l\'équipe <a href="https://github.com/riverside-Healthcare/" target="_blank">Riverside Healthcare Analytics</a>.',
152
+ ru: 'Изначально djLint был создан для использования в проектах <a href="https://atlas.bi" target="_blank">Atlas</a> командой <a href="https://github.com/riverside-Healthcare/" target="_blank">Riverside Healthcare Analytics</a>.',
153
+ },
154
+ site_analytics: {
155
+ 'en-US': 'Site Analytics',
156
+ fr: 'Site Analytics',
157
+ ru: 'Аналитика сайта',
158
+ },
159
+ };
@@ -0,0 +1,7 @@
1
+ const generateContentHash = require('../lib/generate-content-hash.js');
2
+
3
+ const hash = generateContentHash('src/static/js/**/*.js');
4
+
5
+ module.exports = {
6
+ scriptsJs: `/static/js/${hash}.js`,
7
+ };
@@ -0,0 +1,17 @@
1
+ module.exports = [
2
+ {
3
+ label: 'English',
4
+ code: 'en-US',
5
+ url: '',
6
+ },
7
+ {
8
+ label: 'Русский',
9
+ code: 'ru',
10
+ url: 'ru',
11
+ },
12
+ {
13
+ label: 'Français',
14
+ code: 'fr',
15
+ url: 'fr',
16
+ },
17
+ ];
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "Find common syntax errors, reformat to make your HTML templates shine! Supports django, jinja, nunjucks, twig, handlebars, mustache, golang, and more!",
3
+ "image": "/static/img/icon.png",
4
+ "keywords": "djLint, template linting, template formatting, html template linting, django template, nunjucks template, jinja template",
5
+ "title": "HTML Template Linter and Formatter",
6
+ "name": "djLint",
7
+ "url": "https://www.djlint.com"
8
+ }
@@ -0,0 +1,157 @@
1
+ ---
2
+ layout: layout.njk
3
+ date: Last Modified
4
+ description: Online HTML Template formatter. Reformat your HTML templates online with djLint.
5
+ keywords: online template formatter, djLint, HTML, templates, formatter, linter, rules, online html template formatter
6
+ ---
7
+
8
+
9
+
10
+
11
+ <div class="container is-fluid pb-5">
12
+ <hr class="mt-0" />
13
+ <h1 class="title is-3 mb-0">{{ "demo_description" | i18n | safe }}</h1>
14
+ <small class="mb-4 is-italic is-block" id="djlint-version"></small>
15
+
16
+ <div class="block" id="djlint-status">
17
+ <span class="icon-text">
18
+ <span class="icon">
19
+ <i class="fas fa-spinner fa-spin"></i>
20
+ </span>
21
+ <span><strong>Loading djLint ..</strong></span>
22
+ </span>
23
+ </div>
24
+ <div class="columns is-hidden">
25
+
26
+ <div class="column is-narrow">
27
+
28
+ <form id="djlint-settings">
29
+ <div class="field">
30
+ <label class="label">Custom Blocks <a href="/docs/configuration/#custom_blocks" target="_blank"><span class="icon has-text-grey-light">
31
+ <i class="fas fa-circle-question"></i>
32
+ </span></a></label>
33
+ <div class="control">
34
+ <input id="settings-custom-blocks" class="input" type="text" placeholder="toc,example">
35
+ </div>
36
+ </div>
37
+
38
+ <div class="field">
39
+ <label class="label">Custom HTML <a href="/docs/configuration/#custom_html" target="_blank"><span class="icon has-text-grey-light">
40
+ <i class="fas fa-circle-question"></i>
41
+ </span></a></label>
42
+ <div class="control">
43
+ <input id="settings-custom-html" class="input" type="text" placeholder="mjml,simple-greeting,mj-\w+">
44
+ </div>
45
+ </div>
46
+
47
+ <div class="field">
48
+ <label class="label">Indent <a href="/docs/configuration/#indent" target="_blank"><span class="icon has-text-grey-light">
49
+ <i class="fas fa-circle-question"></i>
50
+ </span></a></label>
51
+ <div class="control">
52
+ <input id="settings-indent" class="input" type="text" placeholder="4">
53
+ </div>
54
+ </div>
55
+
56
+ <div class="field">
57
+ <label class="label">Blank Line after Tag <a href="/docs/configuration/#blank_line_after_tag" target="_blank"><span class="icon has-text-grey-light">
58
+ <i class="fas fa-circle-question"></i>
59
+ </span></a></label>
60
+ <div class="control">
61
+ <input id="settings-blank-line-after-tag" class="input" type="text" placeholder="load,extends,include">
62
+ </div>
63
+ </div>
64
+ <div class="field">
65
+ <label class="label">Blank Line before Tag <a href="/docs/configuration/#blank_line_before_tag" target="_blank"><span class="icon has-text-grey-light">
66
+ <i class="fas fa-circle-question"></i>
67
+ </span></a></label>
68
+ <div class="control">
69
+ <input id="settings-blank-line-before-tag" class="input" type="text" placeholder="load,extends,include">
70
+ </div>
71
+ </div>
72
+
73
+ <div class="field">
74
+ <label class="label">Profile <a href="/docs/configuration/#profile" target="_blank"><span class="icon has-text-grey-light">
75
+ <i class="fas fa-circle-question"></i>
76
+ </span></a></label>
77
+ <div class="control">
78
+ <div class="select">
79
+ <select id="settings-profile" >
80
+ <option value="html">html (default)</option>
81
+ <option value="django">django</option>
82
+ <option value="jinja">jinja</option>
83
+ <option value="nunjucks">nunjucks (nunjucks and twig)</option>
84
+ <option value="handlebars">handlebars (handlebars and mustache)</option>
85
+ <option value="golang">golang</option>
86
+ <option value="angular">angular</option>
87
+ </select>
88
+ </div>
89
+ </div>
90
+ </div>
91
+
92
+ <div class="field">
93
+ <label class="label">Max Line Length <a href="/docs/configuration/#max_line_length" target="_blank"><span class="icon has-text-grey-light">
94
+ <i class="fas fa-circle-question"></i>
95
+ </span></a></label>
96
+ <div class="control">
97
+ <input id="settings-max-line-length" class="input" type="text" placeholder="80">
98
+ </div>
99
+ </div>
100
+ <div class="field">
101
+ <label class="label">Max Attribute Length <a href="/docs/configuration/#max_attribute_length" target="_blank"><span class="icon has-text-grey-light">
102
+ <i class="fas fa-circle-question"></i>
103
+ </span></a></label>
104
+ <div class="control">
105
+ <input id="settings-max-attribute-length" class="input" type="text" placeholder="0">
106
+ </div>
107
+ </div>
108
+ <div class="field">
109
+ <label class="checkbox">
110
+ <input id="settings-format-attribute-template-tags" type="checkbox">
111
+ Format Attribute Template Tags <a href="/docs/configuration/#format_attribute_template_tags" target="_blank"><span class="icon has-text-grey-light">
112
+ <i class="fas fa-circle-question"></i>
113
+ </span></a>
114
+ </label>
115
+ </div>
116
+ <div class="field">
117
+ <label class="checkbox">
118
+ <input id="settings-preserve-leading-space" type="checkbox">
119
+ Preserve Leading Space <a href="/docs/configuration/#preserve_leading_space" target="_blank"><span class="icon has-text-grey-light">
120
+ <i class="fas fa-circle-question"></i>
121
+ </span></a>
122
+ </label>
123
+ </div>
124
+ <div class="field">
125
+ <label class="checkbox">
126
+ <input id="settings-preserve-blank-space" type="checkbox">
127
+ Preserve Blank Space <a href="/docs/configuration/#preserve_blank_lines" target="_blank"><span class="icon has-text-grey-light">
128
+ <i class="fas fa-circle-question"></i>
129
+ </span></a>
130
+ </label>
131
+ </div>
132
+ <div class="field">
133
+ <label class="checkbox">
134
+ <input id="settings-format-js" type="checkbox">
135
+ Format JS <a href="/docs/configuration/#format_js" target="_blank"><span class="icon has-text-grey-light">
136
+ <i class="fas fa-circle-question"></i>
137
+ </span></a>
138
+ </label>
139
+ </div>
140
+ <div class="field">
141
+ <label class="checkbox">
142
+ <input id="settings-format-css" type="checkbox">
143
+ Format CSS <a href="/docs/configuration/#format_css" target="_blank"><span class="icon has-text-grey-light">
144
+ <i class="fas fa-circle-question"></i>
145
+ </span></a>
146
+ </label>
147
+ </div>
148
+ </form>
149
+ </div>
150
+ <div class="column" id="djlint-input">
151
+ </div>
152
+ <div class="column" id="djlint-output">
153
+ </div>
154
+ </div>
155
+ </div>
156
+
157
+ {% rollup "src/static/js/editor.js" | url %}
@@ -0,0 +1,34 @@
1
+ ---
2
+ layout: layout.njk
3
+ ---
4
+
5
+ <div class="container">
6
+ <div class="columns">
7
+ <div class="column is-narrow mr-5">
8
+ <aside class="menu is-sticky">
9
+ <p class="menu-label">
10
+ {{ "documentation" | i18n }}
11
+ </p>
12
+ <ul class="menu-list">
13
+ <li>
14
+
15
+ <a class="{% if page.url == "lang_code_url" | i18n + "/docs/getting-started/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/getting-started/"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "getting_started" | i18n }}</a></li>
16
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/formatter/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/formatter/"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "formatter" | i18n }}</a></li>
17
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/linter/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/linter"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "linter" | i18n }}</a></li>
18
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/ignoring-code/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/ignoring-code/"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "ignoring_code" | i18n }}</a></li>
19
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/configuration/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/configuration/"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "configuration" | i18n }}</a></li>
20
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/integrations/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/integrations"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "integrations" | i18n }}</a></li>
21
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/best-practices/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/best-practices/"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "best_practices" | i18n }}</a></li>
22
+ <li><a class="{% if page.url == "lang_code_url" | i18n + "/docs/changelog/" %}is-active{% endif %}" href="{{ "lang_code_url" | i18n }}/docs/changelog"><span class="icon mr-1"><i class="fa-solid fa-code-commit"></i></span>{{ "changelog" | i18n }}</a></li>
23
+ </ul>
24
+ </aside>
25
+ </div>
26
+ <div class="column mb-5">
27
+ {{ content | safe }}
28
+ <div class="is-flex is-justify-content-space-between">
29
+ <span>{% gh_edit page %}</span>
30
+ <em><small>{{ "updated" | i18n }} <strong>{{ page.date | niceDate }}</strong></small></em>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
@@ -0,0 +1,26 @@
1
+ <footer class="footer">
2
+ <div class="container">
3
+ <div class="columns">
4
+ <div class="column is-one-third">
5
+ <figure class="image" style="max-width: 100px;">
6
+ {% image "./src/static/img/icon.png", "djlint icon", "(min-width:100px) 50vw, 100vw" %}
7
+ </figure>
8
+ <p class="my-4">
9
+ {{ "description" | i18n }}
10
+ </p>
11
+ </div>
12
+ <div class="column"></div>
13
+ <div class="column">
14
+ <p class="copyright has-text-grey-dark has-text-right">
15
+ djLint | ©{{ page.date | year }} Riverside Healthcare
16
+ </p>
17
+ <p class="has-text-grey-dark has-text-right mt-2">
18
+ <small>{{ "footer_credits" | i18n | safe }}</small>
19
+ </p>
20
+ <p class="has-text-right pt-3">
21
+ <a href="https://analytics.djlint.com/share/fdd3vGz2/djlint.com" target="_blank"><small>{{ "site_analytics" | i18n }}</small></a>
22
+ </p>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </footer>
@@ -0,0 +1,187 @@
1
+ ---
2
+ layout: layout.njk
3
+ date: Last Modified
4
+
5
+ ---
6
+ {% block body %}
7
+ <div class="section">
8
+ <div class="container has-text-centered">
9
+ <h1 class="title huge mt-5">dj<span class="has-text-weight-light">&#8201;Lint</span></h1>
10
+
11
+ <h2 class="title is-2">
12
+ {{ "index_title" |i18n }}</h2>
13
+
14
+ <p class="story my-5 has-text-left">{{ "index_description" | i18n | safe }}
15
+
16
+ <h2 class="title is-2 has-text-centered mb-5">{{ "index_fav_lang" | i18n }}</h2>
17
+ <div class="columns is-multiline">
18
+ <div class="column is-one-quarter">
19
+ <a class="is-block card animated fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/django/">
20
+ <div class="card-content" >
21
+ <div class="content">
22
+ <figure class="image brand">
23
+ {% image "./src/static/img/logos/django.png", "django logo", "(min-width:300px) 50vw, 100vw" %}
24
+ </figure>
25
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">Django</h3>
26
+ </div>
27
+ </div>
28
+ </a>
29
+ </div>
30
+
31
+ <div class="column is-one-quarter">
32
+ <a class="is-block card animated fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/jinja/">
33
+ <div class="card-content">
34
+ <div class="content">
35
+ <figure class="image brand">
36
+ {% image "./src/static/img/logos/jinja.png", "jinja logo", "(min-width:300px) 50vw, 100vw" %}
37
+ </figure>
38
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">jinja</h3>
39
+ </div>
40
+ </div>
41
+ </a>
42
+ </div>
43
+
44
+ <div class="column is-one-quarter">
45
+ <a class="is-block card animated fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/nunjucks/">
46
+ <div class="card-content">
47
+ <div class="content">
48
+ <figure class="image brand">
49
+ {% image "./src/static/img/logos/nunjucks.png", "nunjucks logo", "(min-width:300px) 50vw, 100vw" %}
50
+ </figure>
51
+
52
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">nunjucks</h3>
53
+ </div>
54
+ </div>
55
+ </a>
56
+ </div>
57
+
58
+ <div class="column is-one-quarter">
59
+ <a class="is-block card animated fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/twig/">
60
+ <div class="card-content">
61
+ <div class="content">
62
+ <figure class="image brand">
63
+ {% image "./src/static/img/logos/twig.png", "twig logo", "(min-width:300px) 50vw, 100vw" %}
64
+ </figure>
65
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">twig</h3>
66
+ </div>
67
+ </div>
68
+ </a>
69
+ </div>
70
+
71
+ <div class="column is-one-quarter">
72
+ <a class="is-block card animated animated" data-animate="fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/handlebars/">
73
+ <div class="card-content">
74
+ <div class="content">
75
+ <figure class="image brand">
76
+ {% image "./src/static/img/logos/handlebars.png", "handlebars logo", "(min-width:300px) 50vw, 100vw" %}
77
+ </figure>
78
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">handlebars</h3>
79
+ </div>
80
+ </div>
81
+ </a>
82
+ </div>
83
+
84
+ <div class="column is-one-quarter">
85
+ <a class="is-block card animated" data-animate="fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/mustache/">
86
+ <div class="card-content">
87
+ <div class="content">
88
+ <figure class="image brand">
89
+ {% image "./src/static/img/logos/mustache.png", "mustache logo", "(min-width:300px) 50vw, 100vw" %}
90
+ </figure>
91
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">mustache</h3>
92
+ </div>
93
+ </div>
94
+ </a>
95
+ </div>
96
+
97
+ <div class="column is-one-quarter">
98
+ <a class="is-block card animated" data-animate="fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/golang/">
99
+ <div class="card-content">
100
+ <div class="content">
101
+ <figure class="image brand">
102
+ {% image "./src/static/img/logos/golang.png", "golang logo", "(min-width:300px) 50vw, 100vw" %}
103
+ </figure>
104
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">golang</h3>
105
+ </div>
106
+ </div>
107
+ </a>
108
+ </div>
109
+ <div class="column is-one-quarter">
110
+ <a class="is-block card animated" data-animate="fadeInUp" href="{{ "lang_code_url" | i18n }}/docs/languages/angular/">
111
+ <div class="card-content">
112
+ <div class="content">
113
+ <figure class="image brand">
114
+ {% image "./src/static/img/logos/angular.png", "angular logo", "(min-width:300px) 50vw, 100vw" %}
115
+ </figure>
116
+ <h3 class="title is-4 my-0 is-uppercase has-text-weight-light is-family-sans-serif has-text-grey">angular</h3>
117
+ </div>
118
+ </div>
119
+ </a>
120
+ </div>
121
+
122
+ </div>
123
+ </div>
124
+ </div>
125
+
126
+ <div class="container has-text-centered">
127
+ <h2 class="title is-2">{{ "index_watch" | i18n }}</h2>
128
+
129
+ <figure class="image animated mx-auto is-framed" style="max-width:800px" data-animate="headShake">
130
+ <video autoplay loop muted playsinline>
131
+ <source src="/static/img/demo.webm" type="video/webm">
132
+ <img src="/static/img/demo.gif" alt="djlint html template formatter demo" loading="lazy" decoding="async">
133
+ </video>
134
+ </figure>
135
+
136
+ <h2 class="title is-2 mt-5">{{ "index_show_format" | i18n }}</h2>
137
+ </div>
138
+ <div class="container">
139
+
140
+
141
+ {{ "index_add_badge" | i18n }} <code>readme.md</code>:
142
+
143
+ {% highlight "md" %}
144
+ [![Code style: djLint](https://img.shields.io/badge/html%20style-djLint-blue.svg)](https://github.com/Riverside-Healthcare/djlint)
145
+ {% endhighlight %}
146
+
147
+ {{ "index_add_badge" | i18n }} <code>readme.rst</code>:
148
+
149
+ {% highlight "md" %}
150
+
151
+ .. image:: https://img.shields.io/badge/html%20style-djLint-blue.svg
152
+ :target: https://github.com/Riverside-Healthcare/djlint
153
+ {% endhighlight %}
154
+
155
+ <p>{{ "index_looks_like" | i18n }}</p>
156
+
157
+ <figure class="image" style="max-width:120px;"><img width="120" height="22.64" src="https://img.shields.io/badge/html%20style-djLint-blue.svg" alt="https://github.com/Riverside-Healthcare/djlint" /></figure>
158
+
159
+ </div>
160
+ <div class="container has-text-centered mb-5">
161
+ <h2 class="title is-2 mt-5">{{ "contributing" | i18n }}</h2>
162
+ <p class="has-text-left">
163
+ {{ "contributing_message" | i18n | safe }}</p>
164
+
165
+ {% highlight "bash" %}
166
+ # install poetry
167
+ curl -sSL https://install.python-poetry.org | python3 -
168
+
169
+ # install project deps
170
+ poetry install
171
+
172
+ # run tests
173
+ poetry run pytest tests
174
+ # or
175
+ poetry run tox -e test-fast
176
+ {% endhighlight %}
177
+ </div>
178
+ </div>
179
+
180
+ <div class="container">
181
+ <div class="is-flex is-justify-content-space-between mb-3">
182
+ <span>{% gh_edit page %}</span>
183
+ <em><small>{{ "updated" | i18n }} <strong>{{ page.date | niceDate }}</strong></small></em>
184
+ </div>
185
+ </div>
186
+
187
+ {% endblock body %}
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: layout.njk
3
+ ---
4
+
5
+ <div class="container">
6
+ {{ content | safe }}
7
+ <div class="is-flex is-justify-content-space-between">
8
+ <span>{% gh_edit page %}</span>
9
+ <em><small>{{ "updated" | i18n }} <strong>{{ page.date | niceDate }}</strong></small></em>
10
+ </div>
11
+ </div>