diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..0bfd9ad
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,17 @@
+; http://editorconfig.org
+
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.{go,py,rb,php}]
+indent_size = 4
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..2509782
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,16 @@
+name: Test
+on:
+ push:
+ branches: [main]
+ pull_request:
+ branches: [main]
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: actions/setup-node@v6
+ with:
+ node-version: 24
+ - run: npm ci
+ - run: npm test
diff --git a/.gitignore b/.gitignore
index cfd1fbc..8d0502c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,6 @@
node_modules/
-yarn.lock
.DS_Store
Thumbs.db
-.idea
-*.sublime*
.idea/
-*.lock
-.publish
+*.sublime*
+.vscode/
diff --git a/.htmlhintrc b/.htmlhintrc
index b3d5927..c41d216 100644
--- a/.htmlhintrc
+++ b/.htmlhintrc
@@ -1,24 +1,30 @@
{
"doctype-first": true,
"doctype-html5": true,
+ "html-lang-require": true,
"head-script-disabled": true,
"style-disabled": false,
"title-require": true,
+ "meta-charset-require": true,
+ "meta-viewport-require": true,
+ "main-require": true,
+ "h1-require": true,
- "attr-lowercase": ["viewBox", "preserveAspectRatio"],
+ "attr-lowercase": ["viewBox", "preserveAspectRatio"],
"attr-no-duplication": true,
"attr-no-unnecessary-whitespace": true,
"attr-unsafe-chars": true,
"attr-value-double-quotes": true,
"attr-value-not-empty": false,
+ "attr-sorted": false,
"alt-require": true,
- "input-requires-label": false,
+ "input-requires-label": true,
"tags-check": false,
"tag-pair": true,
"tag-self-close": false,
"tagname-lowercase": true,
- "empty-tag-not-self-closed": false,
+ "empty-tag-not-self-closed": true,
"src-not-empty": true,
"href-abs-or-rel": false,
@@ -30,5 +36,8 @@
"inline-style-disabled": false,
"space-tab-mixed-disabled": "space",
- "spec-char-escape": true
+ "spec-char-escape": true,
+
+ "button-type-require": true,
+ "form-method-require": true
}
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000..a45fd52
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+24
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..4cc9451
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,18 @@
+# Changelog
+
+## 2.0.0
+
+- Update HTMLHint to 1.8.0
+- `html-lang-require`: `` must have `lang` attribute
+- `meta-charset-require`: `` required
+- `meta-viewport-require`: `` required
+- `main-require`: `` required on page
+- `h1-require`: `` required on page
+- `button-type-require`: `