{"id":13752638,"url":"https://github.com/thibaudcolas/curlylint","last_synced_at":"2025-04-12T21:33:49.274Z","repository":{"id":40337704,"uuid":"236965316","full_name":"thibaudcolas/curlylint","owner":"thibaudcolas","description":"Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid","archived":false,"fork":false,"pushed_at":"2024-01-28T07:42:30.000Z","size":1886,"stargazers_count":245,"open_issues_count":48,"forks_count":26,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-04T02:08:16.438Z","etag":null,"topics":["django","django-templates","html","jinja","jinja2","linter","linting","liquid","nunjucks","twig"],"latest_commit_sha":null,"homepage":"https://www.curlylint.org/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thibaudcolas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":"docs/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-29T11:18:14.000Z","updated_at":"2025-03-30T00:46:26.000Z","dependencies_parsed_at":"2023-10-03T00:20:10.380Z","dependency_job_id":"9fe55849-fc09-42fc-96a5-5a08d5761660","html_url":"https://github.com/thibaudcolas/curlylint","commit_stats":{"total_commits":304,"total_committers":15,"mean_commits":"20.266666666666666","dds":0.3125,"last_synced_commit":"4c36043873f973aa49ed471c238a1de17d603db5"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Fcurlylint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Fcurlylint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Fcurlylint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Fcurlylint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thibaudcolas","download_url":"https://codeload.github.com/thibaudcolas/curlylint/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248636173,"owners_count":21137392,"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","html","jinja","jinja2","linter","linting","liquid","nunjucks","twig"],"created_at":"2024-08-03T09:01:08.640Z","updated_at":"2025-04-12T21:33:49.243Z","avatar_url":"https://github.com/thibaudcolas.png","language":"HTML","funding_links":[],"categories":["HTML","html"],"sub_categories":[],"readme":"# [curlylint](https://www.curlylint.org/) [\u003cimg src=\"https://raw.githubusercontent.com/thibaudcolas/curlylint/main/.github/curlylint-logo.svg?sanitize=true\" width=\"250\" height=\"100\" align=\"right\" alt=\"\"\u003e](https://www.curlylint.org/)\n\n[![PyPI](https://img.shields.io/pypi/v/curlylint.svg)](https://pypi.org/project/curlylint/) [![PyPI downloads](https://img.shields.io/pypi/dm/curlylint.svg)](https://pypi.org/project/curlylint/) [![Build status](https://github.com/thibaudcolas/curlylint/workflows/CI/badge.svg)](https://github.com/thibaudcolas/curlylint/actions) [![Coverage Status](https://coveralls.io/repos/github/thibaudcolas/curlylint/badge.svg?branch=main)](https://coveralls.io/github/thibaudcolas/curlylint?branch=main) [![Total alerts](https://img.shields.io/lgtm/alerts/g/thibaudcolas/curlylint.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/thibaudcolas/curlylint/alerts/)\n\n\u003e **{{ 🎀}}** Experimental HTML templates linting for [Jinja](https://jinja.palletsprojects.com/), [Nunjucks](https://mozilla.github.io/nunjucks/), [Django templates](https://docs.djangoproject.com/en/dev/topics/templates/), [Twig](https://twig.symfony.com/), [Liquid](https://shopify.github.io/liquid/).\n\u003e Forked from [jinjalint](https://github.com/motet-a/jinjalint).\n\n## Features\n\n[Curlylint](https://www.curlylint.org/) is an HTML linter for [“curly braces”](https://www.curlylint.org/docs/template-languages) templates, and their HTML. It focuses on [rules](https://www.curlylint.org/docs/rules/all) to check for common accessibility issues.\n\n![Screenshot of the curlylint CLI, with an example invocation raising a parsing issue and a rule error](.github/curlylint-screenshot.png)\n\nOn the roadmap:\n\n- More checks for common accessibility issues in HTML.\n- Checks for common security issues – for example `rel=\"noopener noreferrer\"`, or known sources of XSS vulnerabilities.\n- More [ideas welcome](https://www.curlylint.org/docs/reference/ideas)!\n\n## Usage\n\nCurlylint is available on [PyPI](\u003c(https://pypi.org/project/curlylint/)\u003e), grab it and you can start linting:\n\n```bash\n# Assuming you’re using Python 3.6+,\npip install curlylint\n# Now time to lint those templates!\ncurlylint template-directory/\n```\n\nHave a look at our [documentation](https://www.curlylint.org/docs/) to make the most of it:\n\n- [Getting Started](https://www.curlylint.org/)\n- [Command Line Usage](https://www.curlylint.org/docs/command-line-usage)\n- [Configuration](https://www.curlylint.org/docs/configuration)\n- [Template Languages](https://www.curlylint.org/docs/template-languages)\n- [Rules](https://www.curlylint.org/docs/rules/all)\n\n## Contributing\n\nSee anything you like in here? Anything missing? We welcome all support, whether on bug reports, feature requests, code, design, reviews, tests, documentation, and more. Please have a look at our [contribution guidelines](CONTRIBUTING.md).\n\nIf you just want to set up the project on your own computer, the contribution guidelines also contain all of the setup commands.\n\n## Credits\n\nThis project started as a fork of [jinjalint](https://github.com/motet-a/jinjalint). Image credit: [FxEmojis](https://github.com/mozilla/fxemoji). [Test templates](tests/README.md) extracted from third-party projects. Website hosted by [Netlify](https://www.netlify.com/).\n\nView the full list of [contributors](https://github.com/thibaudcolas/curlylint/graphs/contributors). [MIT](LICENSE) licensed. Website content available as [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthibaudcolas%2Fcurlylint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthibaudcolas%2Fcurlylint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthibaudcolas%2Fcurlylint/lists"}