Markuplint
SkillDocs & knowledgeReference knowledge for Markuplint HTML linter. Covers violation interpretation, CLI usage, config patterns, and documentation URLs. Auto-loaded when working with HTML linting.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Markuplint skill
What this skill tells your AI
The instructions your AI receives, as published by markuplint/markuplint in skills/markuplint/SKILL.md and read by ahel’s review.
Reference knowledge for working with Markuplint.
What is Markuplint
An HTML linter that checks conformance with HTML Standard, WAI-ARIA, and project-specific rules. Supports JSX, Vue, Svelte, Astro, Pug, PHP, and more via parser plugins.
- Official site: https://markuplint.dev
- GitHub: https://github.com/markuplint/markuplint
- Playground: https://playground.markuplint.dev
Documentation base URL: check the installed version with npx markuplint --version. If it contains alpha, beta, or rc, replace https://markuplint.dev with https://next.markuplint.dev in every documentation URL below — the stable site does not document prerelease behavior.
Reading Violation Messages
Format: message (ruleId) [named-rule]
The attribute name is duplicated (no-duplicate-attr) [html-standard/attr-duplication]
ruleId(no-duplicate-attr) — the base rule. Always present.named-rule(html-standard/attr-duplication) — preset-defined alias. Present only for named rules. Thenamespace/prefix indicates which preset defined it (e.g.,a11y/,html-standard/,performance/).severity—error(exit code 1),warning(exit code 0 by default), orinfo.
To look up any rule: https://markuplint.dev/docs/rules/{ruleId}
CLI Quick Reference
# Basic lint
npx markuplint "src/**/*.html"
# JSON output (for programmatic use)
npx markuplint "src/**/*.html" --format JSON
# Auto-fix (rules that support it)
npx markuplint "src/**/*.html" --fix
# Preview fixes without writing
npx markuplint "src/**/*.html" --fix-dry-run
# Suppress current violations for gradual adoption
npx markuplint "src/**/*.html" --suppress
# Clean up fixed suppressions
npx markuplint "src/**/*.html" --prune-suppressions
# GitHub Actions annotations
npx markuplint "src/**/*.html" --format GitHub
# Limit output for large projects
npx markuplint "src/**/*.html" --max-count=50
Always quote glob patterns to prevent shell expansion.
Config Patterns
Disable a named rule
{ "rules": { "a11y/html-lang": false } }
Disable all rules in a namespace
{ "rules": { "a11y/*": false } }
Change severity
{ "rules": { "a11y/html-lang": "warning" } }
Element-specific rules
nodeRules — targets the matched element. childNodeRules — targets descendants (add "inheritance": true for all descendants, not just direct children).
Ancestor matching
Use :is(selector *). Do NOT use :closest() — it is deprecated.
{ "selector": "div:is(nav *)" }
Common Issues and Fixes
OGP / Open Graph property attribute
The property attribute is not in the HTML spec. See: https://markuplint.dev/docs/rules/no-unknown-attr#the-open-graph-protocol
no-unknown-attr with frameworks
Install the framework's spec plugin (e.g., @markuplint/react-spec). See: https://markuplint.dev/docs/guides/beyond-html#why-need-the-spec-plugins
no-unescaped-char false positives with template engines
Default mode only flags a literal <. The strict option (also flagging >, ", a bare &) can trigger false positives with some template syntaxes. Disable partially, turn off strict, or report: https://markuplint.dev/docs/rules/no-unescaped-char
--init is interactive only
npx markuplint --init requires terminal input. AI agents should write .markuplintrc directly.
Documentation URLs
| Topic | URL |
|---|---|
| All rules | https://markuplint.dev/docs/rules |
| Specific rule | https://markuplint.dev/docs/rules/{rule-id} |
| Presets | https://markuplint.dev/docs/guides/presets |
| Framework setup | https://markuplint.dev/docs/guides/beyond-html |
| Config properties | https://markuplint.dev/docs/configuration/properties |
| Selectors | https://markuplint.dev/docs/guides/selectors |
| CLI options | https://markuplint.dev/docs/guides/cli |
| FAQ | https://markuplint.dev/docs/guides/faq |
| Migration (v4→v5) | https://markuplint.dev/docs/migration/v4-to-v5 |
Use WebFetch on these URLs when you need current details.
Signals
- GitHub stars
- 614
- Forks
- 63
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
markuplint- Source
- github.com/markuplint/markuplint