Changelog
All notable changes to this project will be documented in this file.
See Conventional Commits for commit guidelines.
6.0.0
1 Dec 2022
💥 BREAKING CHANGES
- Minimum supported Node version is v14.18; we’re dropping v12 support
5.1.0
12 Aug 2022
✨ Features
- export types (11b5fb9)
5.0.0
9 Sept 2021
✨ Features
- migrate to ES Modules (8c9d95d)
💥 BREAKING CHANGES
- programs now are in ES Modules and won’t work with Common JS
require()
4.7.0
24 May 2021
🔧 Fixed
- tweak issue labels (8d65ea3)
✨ Features
- config file based major bump blacklisting (e15f9bb)
- logic improvements around inline CSS and ESP tokens (4334454)
4.6.0
11 Apr 2021
🔧 Fixed
- decommission
attribute-enforce-img-alt
in favor of more genericattribute-required
(197a4f6) - export the JSON of every single rule possibly reported by emlint (e048195)
- improve
attribute-align-mismatch
to flag up any amount of child table nodes (906ff9f)
✨ Features
- new rule,
attribute-align-mismatch
(c785678) - new rule,
attribute-required
(6bdd17e) - new rule,
css-required
(5edda75) - prevent
character-encode
andbad-character-*
from clashing (19d6709)
⏪ Reverts
- Revert “chore: setup refresh” (23cf206)
4.5.0
23 Mar 2021
🔧 Fixed
attribute-validate-style
the case of a missing value (efcefa7)- improve
tag-malformed
, detect missing opening brackets too (d71f957) - remove the rule
character-unspaced-punctuation
because it’s not set up right conceptually (424e530) - update the compilation script to include newest families of rules, plus generate a list of all (cc9fae0)
✨ Features
attribute-malformed
to recognise unencoded quotes within values and encode them (b98d58c)tag-table
to detect emptytd
tags (9d1980b)tag-table
to detect intra-tag text tokens within tables (84a5d7e)tag-table
to recognise the absence oftr
ortd
tags (eaa4676)- new rule,
tag-malformed
(1cca505)
4.4.0
14 Mar 2021
🔧 Fixed
- apply attr equal character checks on empty value too (0f2732a)
- improvements to
tag-table
(1510cdf) - improvements to
tag-table
— fix the error by deleting a bad colspan (a197d07)
✨ Features
attribute-malformed
does not enforce attr leading whitespace if HTML is not pure (490d8bb)attribute-malformed
to detect malformed leading space (e054789)- improvements to
attribute-malformed
(b60adbe) - improvements to
attribute-malformed
(a2e694f) - improvements to
attribute-malformed
(c2da4bb) - merge rule
tag-space-before-closing-slash
intotag-space-before-closing-bracket
(e66f448) - new rule,
attribute-enforce-img-alt
(a83236f) - new rule,
tag-table
(035ac70)
4.3.0
7 Mar 2021
🔧 Fixed
- extend the reporting range in
tag-void-slash
(b8fae83) - prevent
attribute-duplicate
reporting non-attributes: ESP tokens, comments etc (110d1f4)
✨ Features
- improve
tag-void-slash
rule to detect rogue closing void tags (48c894e) - merge head CSS style validation with inline HTML style-one, separate trailing semi rules (8d8291d)
- new rule,
format-prettier
(08ff4f0) - rewrite
css-trailing-semi
to tend both HTML head CSS and the inline HTML style attrs (5b82c6b) - set rule
format-prettier
to detect missing space after semi in CSS (df53bec)
4.2.0
27 Feb 2021
🔧 Fixed
✨ Features
css-rule-malformed
detect colon character replacement in CSS rules (e6f2ed6)css-rule-malformed
to catch gaps in front of semicolon or colon in CSS rules (ca9fe11)css-rule-malformed
to report missing CSS rule values (59a3690)- improvements to
css-rule-malformed
, catch rogue characters present instead of a rule (34209f9) - new rule,
css-rule-malformed
(cfa77e2) - new rule,
trailing-semi
(a47bdfb) - rule
css-rule-malformed
: add mis-typed!important
recognition (428a6f0) - salvage a rare case with rogue semi in front of
!important
in CSS rule (424dc7b) - wire up and run the helper script to compile aggregate rule sets (2673c8c)
4.1.0
7 Feb 2021
🔧 Fixed
- stop
attribute-validate-alt
flagging up empty alt attribute values (14b0160)
✨ Features
- improvements to
attribute-validate-style
(7a2e9e2) - new rule,
attribute-on-closing-tag
(cd9615a) - new rule,
email-td-sibling-padding
(49ef0bb)
4.0.1
28 Jan 2021
🔧 Fixed
- add
testStats
to npmignore (f3c84e9)
4.0.0
23 Jan 2021
✨ Features
- rewrite in TS
2.19.0
12 Oct 2020
✨ Features
- update to the latest tokenizer, improve attribute-* rules (deea2ce)
2.18.0
6 May 2020
✨ Features
- update the deps (01ac915)
2.17.0
13 Apr 2020
✨ Features
- new rule,
tag-space-before-closing-bracket
(77dc417)
2.16.0
4 Apr 2020
🔧 Fixed
- don’t raise alerts on doctype case in rule
tag-name-case
(4d5c2a7) - fix a few premature exiting functions (f8ad307)
- stop validateDigitAndUnit() breaking on falsey inputs, thanks to dev UMD build (ad1fb8f)
- support
tel:*
forhref
value (fa9d649)
✨ Features
- add Apple-specific link types (5148bf8)
- add more known link types such as
rel=“icon”
(0756ad0) - introduce new key in reported messages,
keepSeparateWhenFixing
(f27a756) - mention attribute’s name in
attribute-validate-*
error messages (6801b6e) - recognise IE attribute in
attribute-validate-http-equiv
(a85496c)
2.15.0
24 Mar 2020
✨ Features
- improvements to
attribute-malformed
— detect repeated opening quotes on attributes (c4db5bf) - improvements to
attribute-malformed
— recognise repeated double quotes instead of equal (f7d487e) - new rule,
comment-conditional-nested
(b5de5b9) - new rule,
tag-bad-self-closing
(1d6c1db) - new rule,
tag-void-frontal-slash
; recognise HTML attr missing quotes (attribute-malformed
) (7de6964) - recognise errors on the opening “only”-kind comment tag endings (abf504c)
- recognise wrong brackets in comment tags (both closing and opening) (e97dccb)
- tweaks to
comment-mismatching-pair
to mind malformed closing tags to prevent fixes clashes (5f389b5)
2.14.0
16 Mar 2020
🔧 Fixed
- fix the severity reporting for
character-unspaced-punctuation
rule (dce4064)
✨ Features
- correctly recognise
!--
pattern, don’t trigger unspaced-punctuation (d3ae0d8) - emit token events from the traversed AST (instead of directly from tokenizer) (ee460c0)
- improvements to opening comment tag recognition (9dfacc4)
- make
character-encode
rule to consume text type nodes, to traverse them (d5ee8b5) - new rule,
comment-mismatching-pair
(72bcb44) - tap
string-find-malformed
and implement the broken simple opening comment search (53807d0)
2.13.0
24 Feb 2020
✨ Features
- new rule,
media-malformed
(cac1c17) - new rules,
comment-only-closing-malformed
&comment-only-opening-malformed
(84f9319) - recognise broken html simple closing comments with missing dashes (88874b6)
- recognise more broken closing comment tag cases (fe77d70)
2.12.0
9 Feb 2020
✨ Features
2.11.0
26 Jan 2020
✨ Features
- improve whitespace recognition within URI’s (ba3446b)
2.10.0
11 Jan 2020
✨ Features
- extend “onunload” attribute validation to body tag (81a9e5a)
- extend onload attribute validation to body tag (a6c61f8)
- extend rule
attribute-validate-size
(72502c6) - improvements to
attribute-validate-width
(f50e6e7) - migrate all URI value type attributes to consume validateUri() (2ab3631)
- new rule,
attribute-validate-method
(b233e92) - new rule,
attribute-validate-multiple
(2465441) - new rule,
attribute-validate-name
(8870abe) - new rule,
attribute-validate-nohref
(dadcb16) - new rule,
attribute-validate-noresize
(73a63a7) - new rule,
attribute-validate-noshade
(250f786) - new rule,
attribute-validate-nowrap
(cfea63e) - new rule,
attribute-validate-object
(7f1fed3) - new rule,
attribute-validate-onblur
(3b464bc) - new rule,
attribute-validate-onchange
(188d5b6) - new rule,
attribute-validate-onfocus
(1db2ebe) - new rule,
attribute-validate-onkeydown
(19c091a) - new rule,
attribute-validate-onkeypress
(c5d465a) - new rule,
attribute-validate-onkeyup
(9cdb2ed) - new rule,
attribute-validate-onload
(f231e11) - new rule,
attribute-validate-onmousedown
(d7323a0) - new rule,
attribute-validate-onmousemove
(a64c6a0) - new rule,
attribute-validate-onmouseout
(64115da) - new rule,
attribute-validate-onmouseover
(9fd7b85) - new rule,
attribute-validate-onmouseup
(9118dbb) - new rule,
attribute-validate-onreset
(4cdb742) - new rule,
attribute-validate-onselect
(3834290) - new rule,
attribute-validate-onsubmit
(f23640a) - new rule,
attribute-validate-onunload
(582be1f) - new rule,
attribute-validate-profile
(c1e8ba1) - new rule,
attribute-validate-prompt
(003c04f) - new rule,
attribute-validate-readonly
(5b2f921) - new rule,
attribute-validate-rel
(4c991d8) - new rule,
attribute-validate-rev
(868fdbb) - new rule,
attribute-validate-rows
(f3fa9e1) - new rule,
attribute-validate-scheme
(2d85432) - new rule,
attribute-validate-scope
(666fe2b) - new rule,
attribute-validate-scrolling
(e89d60b) - new rule,
attribute-validate-selected
(ed3d264) - new rule,
attribute-validate-shape
(6ed0bf4) - new rule,
attribute-validate-size
and some rebasing (b11c805) - new rule,
attribute-validate-span
(c03a6bb) - new rule,
attribute-validate-src
(38a3154) - new rule,
attribute-validate-start
(4a9d387) - new rule,
attribute-validate-style
(basic level) (293fa79) - new rule,
attribute-validate-summary
(a4a0e6e) - new rule,
attribute-validate-tabindex
(d9299d8) - new rule,
attribute-validate-target
(d996417) - new rule,
attribute-validate-title
(251b854) - new rule,
attribute-validate-type
(29ef159) - new rule,
attribute-validate-usemap
(6a33365) - new rule,
attribute-validate-valign
(83e80a9) - new rule,
attribute-validate-value
(716f7f6) - new rule,
attribute-validate-valuetype
(fd68ed7) - new rule,
attribute-validate-version
(e524e00) - new rule,
attribute-validate-vspace
(e99b727) - new rules,
attribute-validate-onclick
andattribute-validate-ondblclick
(b5d797c) - separate relative URI checking into a standalone package and then tap it (c48a622)
2.9.0
5 Jan 2020
✨ Features
- add xmlns (7154f5f)
- new rule,
attribute-validate-alt
(6ec507e) - new rule,
attribute-validate-frameborder
(c8e580a) - new rule,
attribute-validate-headers
(d582b8a) - new rule,
attribute-validate-height
(09732a9) - new rule,
attribute-validate-href
(73148d7) - new rule,
attribute-validate-hreflang
(a19c9d2) - new rule,
attribute-validate-hspace
(eed294b) - new rule,
attribute-validate-http-equiv
(b6436bc) - new rule,
attribute-validate-ismap
(e5df842) - new rule,
attribute-validate-label
(5409a92) - new rule,
attribute-validate-lang
(dd0f9d2) - new rule,
attribute-validate-language
(06d4312) - new rule,
attribute-validate-link
(e37e2e0) - new rule,
attribute-validate-longdesc
(702fbd2) - new rule,
attribute-validate-marginheight
(e1f024f) - new rule,
attribute-validate-marginwidth
(47860e4) - new rule,
attribute-validate-maxlength
(e7401c0) - new rule,
attribute-validate-media
(2d77259) - new rule,
attribute-validate-text
(57f7d8e) - new rule,
attribute-validate-vlink
(55ff0db) - new rules,
attribute-validate-frame
andattribute-validate-rules
(1d12ae4)
2.8.0
1 Jan 2020
✨ Features
- harden the rule
attribute-malformed
, flag up all non-recognised attrs (fc949a7) - improvements to attribute-validate-archive and others (f8b35fe)
- new rule,
attribute-validate-cols
(05fb199) - new rule,
attribute-validate-colspan
(e72fa98) - new rule,
attribute-validate-compact
(ec7e4f3) - new rule,
attribute-validate-content
(a076d71) - new rule,
attribute-validate-coords
(f3baa58) - new rule,
attribute-validate-data
(3cd016a) - new rule,
attribute-validate-datetime
(62b8776) - new rule,
attribute-validate-declare
(e16fd80) - new rule,
attribute-validate-defer
(52d0acd) - new rule,
attribute-validate-dir
(086a83d) - new rule,
attribute-validate-disabled
(45bb607) - new rule,
attribute-validate-enctype
(5f1098c) - new rule,
attribute-validate-for
(7a53a41) - new rule,
attribute-validate-rowspan
(a234874) - show all permitted values in error messages instead of complaining about wrong value (a5ee245)
2.7.0
27 Dec 2019
✨ Features
- levenshtein distance for attribute names (3ab2e83)
- new rule,
attribute-duplicate
(1fc32a5) - new rule,
attribute-validate-axis
(9da98c7) - new rule,
attribute-validate-background
(6628374) - new rule,
attribute-validate-bgcolor
(bfa84e7) - new rule,
attribute-validate-cellpadding
(47a927f) - new rule,
attribute-validate-cellspacing
(273d551) - new rule,
attribute-validate-char
(d3eef87) - new rule,
attribute-validate-charoff
(4528a17) - new rule,
attribute-validate-charset
(c2749c2) - new rule,
attribute-validate-checked
(29a7047) - new rule,
attribute-validate-cite
(ec72be6) - new rule,
attribute-validate-class
(de68974) - new rule,
attribute-validate-classid
(4de2985) - new rule,
attribute-validate-clear
(9997520) - new rule,
attribute-validate-code
(60b085b) - new rule,
attribute-validate-codebase
(08ccf17) - new rule,
attribute-validate-codetype
(228e3bc) - new rule,
attribute-validate-color
(8f174c6) - new rule,
attribute-validate-id
(6cb9ba8) - rules
attribute-validate-class
/id
, detect duplicateclass
/id
names (dfe570d)
2.6.0
21 Dec 2019
✨ Features
- add parent tag validation for
attribute-validate-accept
(bc23026) - new rule,
attribute-validate-archive
(7fa39f3) - new rule,
attribute-validate-abbr
(168009c) - new rule,
attribute-validate-accept
(4993b5a) - new rule,
attribute-validate-accept-charset
(d5a52cb) - new rule,
attribute-validate-accesskey
(d83018c) - new rule,
attribute-validate-action
(8e18a6f) - new rule,
attribute-validate-align
(632b758) - new rule,
attribute-validate-alink
(9f9a94b) - new rule,
attribute-validate-border
+ some housekeeping (d245a14) - new rule,
attribute-validate-width
(4929609) - parent tag validation for attributes (788157f)
2.5.0
9 Dec 2019
✨ Features
- new rule,
attribute-malformed
+ new emitted event type, ”attribute
“ (6afac3d) - new rule,
bad-character-replacement-character
(82b24b8) - new rule,
character-unspaced-punctuation
(e60a806) - new rule,
tag-bold
(bb907cd) - new rule,
tag-is-present
(e627c14) - rename and beef up rule:
bad-character-tabulation
(cd4d0a0)
2.4.0
27 Nov 2019
✨ Features
- improvements to ESP tag recognition (8ac47b1)
- make rules more composable (7cf3cbf)
- new rule, all — plus removing all listeners in the end of a program (d6bc792)
- new rule,
character-encode
(17c35ad) - new rule,
tag-name-case
(503ac91) - put names on the most common entities in error description (69233df)
- rule tag-name-case — doctype and cdata wrong case (being not uppercase) (da9f68a)
2.3.0
21 Nov 2019
🔧 Fixed
- when bad entity rules are disabled, they do not raise any issues (6f06ce2)
✨ Features
- new rules,
bad-malformed-numeric-character-entity
andbad-named-html-entity-multiple-encoding
(d071749) - new rule,
bad-named-html-entity-not-email-friendly
(0a72fdc) - improvements in malformed entity reporting rules (d807a45)
2.2.0
20 Nov 2019
✨ Features
- add safegard type checks on
linter.verify()
inputs (fc4f30f) - detect backslashes in front of a tag (eba7347)
- new rule,
bad-named-html-entity-malformed-nbsp
(75f232f) - new rule,
bad-named-html-entity-unrecognised
(9ea399d) - set up broken named html entity rules (a490e90)
- tap the new codsen-tokenizer’s API where it pings the characters, remove character emits here (9f4a2c5)
2.1.0
18 Nov 2019
✨ Features
- add few more character rules (8a14f7c)
- add few more character rules (2f06a84)
- add few more character rules (e80737f)
- complete creating rules for all ASCII range invisible characters (3abb85b)
- few more character rules (e9048ca)
- few more rules (8a347be)
- first rule with config,
tag-space-before-closing-slash
, also addstring-left-right
as a dep (e6b6adb) - grouped rules —
tag
andbad-character
(6aa5096) - new rules
tag-void-slash
andtag-closing-backslash
(adce05d) - two more character rules (3e7516f)
- update config on tap to consume all grouped rules (98d6af4)
2.0.0
11 Nov 2019
✨ Features
- add more bad character rules (4b5ae71)
- make it pluggable — rewrite in observer pattern, separate the tokenizer and tap it (1c0a0eb)
- set up the tag-level processing, add the first character-level rule (fc9a89f)
💥 BREAKING CHANGES
- rewrite in observer pattern
1.8.0
9 Oct 2019
🔧 Fixed
- make rule tag-space-after-opening-bracket not applicable for HTML comments (3fac2f6)
✨ Features
- improvements for recognition of ESP tags within attributes (0c1e42c)
1.7.0
24 Aug 2019
✨ Features
- flags up characters outside of ASCII and suggests HTML (only, so far) encoding (3e04e9e)
- recognise email-unfriendly named HTML entities and suggest fixes (8b9d2c8)
- when character outside ASCII is encoded, email-pattern encoding is considered (80f516c)
1.6.0
15 Aug 2019
✨ Features
- recognise tags with no attributes and with missing closing bracket (08fe678)
1.5.0
1 Jun 2019
✨ Features
- Algorithm tweaks to correspond to the latest API’s of all deps (7de00c2)
1.4.0
10 Apr 2019
✨ Features
- Algorithm improvements (634dde7)
- Dedupe repeated slash errors, now there’s only one reported per tag (bb53589)
- Improve closing slash error reporting consistency and rule name precision (a3d7570)
- Rule tag-duplicate-closing-slash (8887552)
1.3.0
6 Apr 2019
✨ Features
- Broken
CDATA
recognition improvements (a130abc) - Detect excessive whitespace in front of ESP tag (b659586)
- Heuristical ESP tag recognition (ef69bf7)
- Improvements to CDATA rules and 4 new rules to cater HTML comments (65e23c9)
- Improvements to malformed
CDATA
tag recognition algorithm (8bc571f) - Nested function-based ESP templating tag support (ab86a85)
- Recognise ESP tags within HTML tags (764ee1d)
- Recognise single character ESP closing tag endings (ee4fe96)
- Rudimentary protection against CSS false positive display:block (8c14b90)
- Rule esp-line-break-within-templating-tag (b3cc442)
- Rules esp-more-closing-parentheses-than-opening & esp-more-opening-parentheses-than-closing (5235b15)
1.2.0
17 Mar 2019
✨ Features
- Implement opts for each rule (f2be977)
res.applicableRules
— reports what rules could be applicable for given input (d5fb5a0)
1.0.0
4 Mar 2019
✨ Features
- Integrate package
string-fix-broken-named-entities
(bf26962) - Rule
tag-generic-error
(70dd628) - Rules
tag-missing-space-before-attribute
andtag-stray-quotes
(fe7c5af)
0.8.0
26 Feb 2019
🔧 Fixed
✨ Features
- Rule
tag-attribute-repeated-equal
(cdcbe09) - Rule
tag-missing-closing-bracket
(6f495c5) - Rules combo: missing closing quotes and whitespace between slash and bracket (960a0f2)
- Correctly recognises brackets within attribute values (836bfe2)
- Excessive whitespace before missing closing bracket (b7ecdc9)
- Excessive whitespace instead of a missing closing quotes (0bf97ed)
- Excessive whitespace then slash instead of closing quotes (68da8b5)
0.7.0
10 Feb 2019
✨ Features
- Improve recognition of attribute sequences (998f718)
- Rule
tag-attribute-missing-equal
tweaks (06c5992) - Rules
tag-attribute-missing-equal
andtag-attribute-opening-quotation-mark-missing
(5f2f0d4)
🔧 Fixed
- Add more false-outcome unit tests and tweak the algorithm edge cases to pass all tests (3563c3e)
- Algorithm tweaks to pass all unit tests (d576d39)
- Fix the Create New Issue URLs (c5ee4a6)
- Treats legit quotes of the opposite kind within healthy quotes correctly (a390e6d)
- Tweak the detection algorithm of some false cases (18c368d)
0.6.0
5 Feb 2019
✨ Features
- Rule
tag-attribute-space-between-name-and-equals
(11653a9) - Improvements to rules
*-double-quotation-mark
(d6f3307) - Rule
tag-attribute-closing-quotation-mark-missing
(f3ef429) - Rule
tag-whitespace-tags-closing-slash-and-bracket
(b65ee11) - Rules
*-double-quotation-mark
(e744a27) - Rules
tag-attribute-*-single-quotation-mark
(7ec9b49) - Rules
tag-attribute-mismatching-quotes-is-*
(1f8ca9e) - Rules
tag-attribute-quote-and-onwards-missing
andtag-generic-error
(5182c0f) - Rules:
tag-attribute-space-between-equals-and-opening-quotes
andtag-excessive-whitespace-inside-tag
(1da021b)
0.5.0
31 Jan 2019
✨ Features
- New rule —
tag-name-lowercase
(dfead6d) - New rules
file-mixed-line-endings-file-is-\*-mainly
to cater mixed EOL files with no opts for EOL (25e21ef) - Wired up basic unit test cases for rule
file-mixed-line-endings-file-is-\*-mainly
(46a549e)
0.4.0
27 Jan 2019
✨ Features
- Add rules to identify non-printable low-range ASCII characters (5471ccc)
0.1.0
27 Aug 2018
- First public release