{"id":15018083,"url":"https://github.com/djlint/djlint","last_synced_at":"2025-05-13T21:08:01.219Z","repository":{"id":36973553,"uuid":"385344359","full_name":"djlint/djLint","owner":"djlint","description":"✨ HTML Template Linter and Formatter. Django - Jinja - Nunjucks - Handlebars - GoLang","archived":false,"fork":false,"pushed_at":"2025-05-12T19:31:48.000Z","size":34956,"stargazers_count":777,"open_issues_count":124,"forks_count":93,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-12T20:46:55.915Z","etag":null,"topics":["django","django-templates","golang","golang-template","handlebars-js","handlebars-templates","html","html-linter","html-templates","jinja2","jinja2-templates","linter","mustache-js","nunjucks","nunjucks-templates","python","twig","twig-templates"],"latest_commit_sha":null,"homepage":"https://djLint.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djlint.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"christopherpickering","custom":"https://venmo.com/code?user_id=3118520086822912596\u0026created=1655827155"}},"created_at":"2021-07-12T18:23:55.000Z","updated_at":"2025-05-12T19:31:52.000Z","dependencies_parsed_at":"2024-06-18T12:42:35.599Z","dependency_job_id":"c8074890-b6a6-429f-9637-f86750db0371","html_url":"https://github.com/djlint/djLint","commit_stats":{"total_commits":1368,"total_committers":56,"mean_commits":"24.428571428571427","dds":0.8092105263157895,"last_synced_commit":"a87f293ea0d3eb8003e36ff3ad5c62810cbb965b"},"previous_names":["riverside-healthcare/djlint"],"tags_count":177,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djlint%2FdjLint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djlint%2FdjLint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djlint%2FdjLint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djlint%2FdjLint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djlint","download_url":"https://codeload.github.com/djlint/djLint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254028930,"owners_count":22002282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","django-templates","golang","golang-template","handlebars-js","handlebars-templates","html","html-linter","html-templates","jinja2","jinja2-templates","linter","mustache-js","nunjucks","nunjucks-templates","python","twig","twig-templates"],"created_at":"2024-09-24T19:51:25.235Z","updated_at":"2025-05-13T21:07:56.190Z","avatar_url":"https://github.com/djlint.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://www.djlint.com\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/djlint/djLint/master/docs/src/static/img/icon.png\" alt=\"djLint Logo\" width=\"270\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003e🏗️ Maintainers needed, please reach out on discord or email!\u003c/h3\u003e\n\u003ch4 align=\"center\"\u003eThe missing formatter and linter for HTML templates.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://twitter.com/intent/tweet?text=djLint%20%7C%20The%20missing%20formatter%20and%20linter%20for%20HTML%20templates.\u0026url=https://djlint.com/\u0026hashtags=djlint,html-templates,django,jinja,developers\"\u003e\u003cimg alt=\"tweet\" src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://discord.gg/taghAqebzU\"\u003e\n     \u003cimg src=\"https://badgen.net/discord/online-members/taghAqebzU?icon=discord\u0026label\" alt=\"Discord Chat\"\u003e\n   \u003c/a\u003e\n    \u003c/p\u003e\n    \u003cp align=\"center\"\u003e\n   \u003ca href=\"https://codecov.io/gh/djlint/djlint\"\u003e\n     \u003cimg src=\"https://codecov.io/gh/djlint/djlint/branch/master/graph/badge.svg?token=eNTG721BAA\" alt=\"Codecov Status\"\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://www.codacy.com/gh/djlint/djlint/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=djlint/djlint\u0026amp;utm_campaign=Badge_Grade\"\u003e\n     \u003cimg src=\"https://app.codacy.com/project/badge/Grade/dba6338b0e7a4de896b45b382574f369\" alt=\"Codacy Status\"\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://pepy.tech/project/djlint\"\u003e\n     \u003cimg src=\"https://pepy.tech/badge/djlint\" alt=\"Downloads\"\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://www.npmjs.com/package/djlint\"\u003e\n       \u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/dt/djlint?label=npm%20downloads\"\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://pypi.org/project/djlint/\"\u003e\n     \u003cimg src=\"https://img.shields.io/pypi/v/djlint\" alt=\"Pypi Download\"\u003e\n   \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\u003ca href=\"https://www.djlint.com\"\u003eHow to use\u003c/a\u003e • \u003ca href=\"https://www.djlint.com/ru/\"\u003eКак пользоваться\u003c/a\u003e • \u003ca href=\"https://www.djlint.com/fr/\"\u003eUtilisation\u003c/a\u003e\u003c/h4\u003e\n\u003ch4 align=\"center\"\u003eWhat lang are you using?\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n   \u003ca href=\"https://djlint.com/docs/languages/django/\"\u003eDjango\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/jinja/\"\u003eJinja\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/nunjucks/\"\u003eNunjucks\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/twig/\"\u003eTwig\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/handlebars/\"\u003eHandlebars\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/mustach/\"\u003eMustache\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/golang/\"\u003eGoLang\u003c/a\u003e • \u003ca href=\"https://djlint.com/docs/languages/angular/\"\u003eAngular\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/djlint/djLint/blob/aa9097660d4a2e840450de5456f656c42bc7dd34/docs/src/static/img/demo-min.gif\" alt=\"demo\" width=\"600\"\u003e\n\u003c/p\u003e\n\n## 🤔 For What?\n\nOnce 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. The cool kids on the block.\n\nHTML templates were left out there on their own, in the cold, unformatted and unlinted :( The dirty corner in your repository. Something had to change.\n\n**djLint is a community build project to and add consistency to html templates.**\n\n## ✨ How?\n\nGrab it with `pip`\n\n```bash\npip install djlint\n```\n\n_Or with the npm experimental install - Note, this requires python and pip to be on your system path._\n\n```bash\nnpm i djlint\n```\n\nLint your project\n\n```bash\ndjlint . --extension=html.j2 --lint\n```\n\nCheck your format\n\n```bash\ndjlint . --extension=html.j2 --check\n```\n\nFix my format!\n\n```bash\ndjlint . --extension=html.j2 --reformat\n```\n\n## 💙 Like it?\n\nAdd a badge to your projects `readme.md`:\n\n```md\n[![Code style: djlint](https://img.shields.io/badge/html%20style-djlint-blue.svg)](https://www.djlint.com)\n```\n\nAdd a badge to your `readme.rst`:\n\n```rst\n.. image:: https://img.shields.io/badge/html%20style-djlint-blue.svg\n   :target: https://www.djlint.com\n```\n\nLooks like this:\n\n[![djLint](https://img.shields.io/badge/html%20style-djLint-blue.svg)](https://github.com/djlint/djlint)\n\n## 🛠️ Can I help?\n\nYes!\n\n_Would you like to add a rule to the linter?_ Take a look at the [linter docs](https://djlint.com/docs/linter/) and [source code](https://github.com/djlint/djLint/blob/master/djlint/rules.yaml)\n\n_Are you a regex pro?_ Benchmark and submit a pr with improved regex for the [linter rules](https://github.com/djlint/djLint/blob/master/djlint/rules.yaml)\n\n**⚠️ Help Needed! ⚠️** _Good with python?_ djLint was an experimental project and is catching on with other devs. Help out with a rewrite of the formatter to improve speed and html style for edge cases. Contribute on the [2.0 branch](https://github.com/djlint/djLint/tree/block_indent)\n\n## 🏃 Other Tools Of Note\n\n- [DjHTML](https://github.com/rtts/djhtml) A pure-Python Django/Jinja template indenter without dependencies.\n- [HTMLHint](https://htmlhint.com) Static code analysis tool you need for your HTML\n- [curlylint](https://www.curlylint.org) Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid\n","funding_links":["https://github.com/sponsors/christopherpickering","https://venmo.com/code?user_id=3118520086822912596\u0026created=1655827155"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjlint%2Fdjlint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjlint%2Fdjlint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjlint%2Fdjlint/lists"}