On this page
Overview
Markuplint is a markup linter for HTML and framework templates. It applies rules based on the HTML Standard, WAI-ARIA, ARIA in HTML, and related specifications, while parser and spec packages add support for JSX, Vue, Svelte, Astro, Pug, PHP, and other syntaxes. It includes a CLI and VS Code integration.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Validate HTML structure, attributes, and ARIA through configurable rules
The CLI detects element, attribute, and accessibility-related violations against HTML specifications. Rules can be selected in configuration and scoped to particular elements with CSS selectors.
Sources: [2]
Switch parsers for frameworks and template engines
Dedicated parser and specification packages support JSX, Vue, Svelte, Astro, Alpine.js, Pug, PHP, and other non-plain-HTML syntaxes so linting can follow the project's template model.
Sources: [2]
Best fit
Fits frontend teams that want consistent markup and basic accessibility checks in local development and CI
It is useful when HTML or component-template violations should be caught through the same rules in the CLI, npm scripts, editor, and CI.
Sources: [2]
Before adoption
Markuplint v5.0.1 requires Node.js 24 or newer
The v5.0.1 package metadata and README require Node.js 24.0.0+. Existing CI and developer machines should be aligned before upgrading.
Framework directives need the matching parser and specification
Version 5.0.1 fixed no-event-handler-attr so Vue, Alpine.js, htmx, and Svelte event directives are not treated as literal HTML event-handler attributes. Correct parser and spec configuration remains important in framework projects.
Sources: [4]
Official sources
- [1]markuplint repository(2026-09-30)
- [2]markuplint package README(2026-09-30)
- [3]markuplint v5.0.1 package metadata(2026-09-30)
- [4]markuplint v5.0.1 release(2026-09-30)
- [5]markuplint MIT license(2026-09-30)
Supplemental curator note
Markuplint is valuable when teams want one markup policy across plain HTML and framework templates. Version 5 requires Node.js 24+, so adopting the linter can also require a CI runtime upgrade.
Try it in 3 steps
- 1
Initialize configuration interactively
Answer the prompts to install the parser and specification packages the project needs. Version 5.0.1 requires Node.js 24+.
npx markuplint@5.0.1 --init - 2
Lint HTML files
Start with plain HTML and inspect reported rule violations. Framework templates use the parser and spec selected during setup.
npx markuplint@5.0.1 "src/**/*.html" - 3
Pin a script for CI
Add the command to package.json scripts so local development and CI use the same configuration.
"lint:html": "markuplint "src/**/*.html""
Growth
Growth trends · Last 30 days
619 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- alpinejs
- custom-elements
- html
- htmx
- jsx-templates
- linter
- liquid
- mustache-templates
- nunjucks
- php
- pug
- react
- Stars
- 619
- Forks
- 63
- Watchers
- 2
- Open issues
- 41
- Owner type
- Organization
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Sep 29, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Builder.io SDKs8,856 Stars
3 shared tag(s) · 1 shared category(s) · Same language
Connect a hosted visual-development platform to existing React, Vue, Svelte, and other frontends through open SDKs
TypeScript - Prettier52,319 Stars
3 shared tag(s) · 1 shared category(s)
an opinionated formatter that parses code and reprints a consistent style
JavaScript - Biome25,880 Stars
3 shared tag(s) · 1 shared category(s)
combine formatting, linting, fixes, and editor diagnostics in one fast tool
Rust - Onsen UI8,856 Stars
3 shared tag(s) · 1 shared category(s)
build iOS- and Android-style interfaces from shared HTML and JavaScript with Web Components
JavaScript - Frontman707 Stars
3 shared tag(s) · 1 shared category(s)
Trace selected browser UI through live DOM, CSS, and source maps and let an AI agent edit the owning source
ReScript - Vue 2212,485 Stars
3 shared tag(s) · Same language
Maintain Vue 2 as an EOL legacy framework while planning Vue 3 migration and security or compliance handling
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.