All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
v0.13.1 2022-03-30
- Update
patch_click
to fix compatibility issue with click 8.1.0. Fix #132 (#133). Thanks to @jmsmkn and @adamchainz! - Fix incorrect documentation for
no_autofocus
andtabindex_no_positive
.
v0.13.0 2021-04-25
This release comes with a blog post! Read on Quality-of-life improvements.
- Add more descriptive error message for missing whitespace between HTML attributes (#23 (comment), #68).
- Move development dependencies from extras to separate
requirements.txt
(#68). - Declare support for Python 3.9.
- Tentatively declare support for Python 3.10 (tested with
Python 3.10.0a6+
).
- Fix Python 3.10 deprecation warning by importing Iterable from collections.abc (#68).
v0.12.2 2021-03-06
- The
image_alt
rule no longer crashes when encountering template conditionals in img attributes (#57). Thanks to @adrien-delhorme.
v0.12.1 2021-03-06
- The project’s sdist now includes all needed files to run the test suite (#49, #50). Thanks to @jayvdb.
v0.12.0 2020-07-26
Release notes from the blog: Accessibility linting rules
- Add experimental
django_forms_rendering
rule. - Add experimental
image_alt
rule. - Add experimental
no_autofocus
rule. - Add experimental
tabindex_no_positive
rule. - Add experimental
meta_viewport
rule.
- Support parsing HTML elements with UPPERCASE or camelCase tag names, for example
clipPath
.
v0.11.0 2020-05-21
- Add helpful error message when curlylint can’t find any configuration with
--print-config
.
- Fix
--print-config
flag running linting when no config is found for the given file. - Clarify error message for invalid
--rule
declarations. - Publish package with Python wheels as well as egg.
- Fix
html_has_lang
not raising an error when the HTML element has nolang
but has other attributes.
v0.10.0 2020-05-21
- Add
--print-config
CLI flag to print the configuration for the given file. - Add experimental
html_has_lang
rule. - Add experimental
aria_role
rule.
- Show a warning when attempting to use a rule that does not exist.
- Rename
parse-error
errors toparse_error
.
- Fix parsing failing for self-closing SVG elements, e.g.
<path />
.
v0.9.0 2020-05-14
- Add support for configuring and disabling individual rules via configuration file, under
[tool.curlylint.rules]
. - Add support for tabs as indentation, with
indent = 'tab'
. - Add a way to configure rules via CLI parameters, with
--rule
:curlylint --rule 'indent: 2' template-directory/
. - Support piping template contents from stdin with "-" as the file path.
- Publish curlylint as typed with a
py.typed
file andTyping :: Typed
classifier. - Add
--stdin-filepath
CLI flag to provide a pretend path when linting standard input.
- Indentation is now enforced via the rules configuration, e.g.
indent = 4
underneath[tool.curlylint.rules]
, instead of a top-levelindent-size
configuration.
v0.8.0 2020-05-04
- Add support for configurable formatters with
--format
CLI parameter /format
config attribute. - Add support for JSON formatting with
--format json --quiet
. - Add new
stylish
reporter and make it the default.compact
is still available via--format compact
. - Add codes for rules –
indent
andparse-error
for the two existing checks.
v0.7.0 2020-04-16
Generally reworked the CLI to match the experience of black.
- Improve command line output, matching experience provided by black.
- Add dependencies on
toml
,pathspec
,dataclasses
. - Automatically look for the configuration based on provided source paths.
- Add support for excluding files from linting with the
--exclude
/exclude
config. - Add support for including files for linting with the
--include
/include
config. - Add automatic reading of
.gitignore
and exclusion of all files ignored there. - Add excludes for more common build tool folders:
venv
,myvenv
,coverage_html_report
,node_modules
.
- Add a
python_requires
to enforce support of Python 3.6+ only. - Switch from docopt to click, like black, with an open-end version range.
- Change curlylint to abort if no input is provided.
- Add
-q
/--quiet
CLI flag. - Switch from Python config files to
pyproject.toml
- Remove support for
--extension
flag. Use--include
(orinclude
in the config file) instead.
v0.6.0 2020-03-30
- Open
attrs
dependency fromattrs==17.2.0
toattrs>=17.2.0
. - Support parsing attributes with uppercase letters (e.g.
viewBox
).
v0.5.0 2020-03-24
First usable release as curlylint
! This release is functionally equivalent to jinjalint 0.5, with different metadata, and a different package & executable name.
- Uninstall jinjalint from your project.
- If needed, make sure to also uninstall its dependencies:
parsy==1.1.0
,attrs==17.2.0
,docopt==0.6.2
. - Install curlylint from PyPI.
- Replace the
jinjalint
executable withcurlylint
wherever necessary.
v0.5.0-jinjalint 2018-11-10
- c60bea7: Fix a few edge cases with attribute parsing.
- 402130a: Fix parser bug with some tags like , tags beginning with col or br were parsed incorrectly.
v0.4.0-jinjalint 2018-11-04
v0.3.0-jinjalint 2018-11-04
- 0abd2c2: Optional Jinja containers support:
{% if something %}<a href="somewhere"
>{% endif %}
<p>something</p>
{% if something %}</a
>{% endif %}
This pattern is pretty common in real-world projects. I finally found a way to parse it.
- fa60351, #11: Jinja whitespace control syntax support:
{%- foo -%} {%- foo %} {{- bar -}} {{ bar -}} {%+ foo %} {{+ bar }}
There is no such thing in the Django flavor.
v0.2.0-jinjalint 2018-11-04
v0.1.0-jinjalint 2017-11-10
vx.y.z (Template: https://keepachangelog.com/en/1.0.0/)
- Something was added to the API / a new feature was introduced.