fulldecent/html-validate-nice-checkers

bug: canonical-link false positive on root URLs with multi-character TLDs (.app, .io, .dev, etc.)

Fermée

#28 ouverte le 24 juin 2026

 (3 commentaires) (0 réaction) (0 personne assignée)TypeScript (1 fork)github user discovery
help wanted

Métriques du dépôt

Stars
 (2 étoiles)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

Bug report

The nice-checkers/canonical-link rule incorrectly flags root canonical URLs when the TLD is multi-character (.app, .io, .dev, .ai, etc.).

Root cause

The extension check runs against the full URL string:

if (/\.\w+$/.test(href)) {

https://webscore.app matches because .app satisfies \.\w+$, even though the pathname has no extension.

Suggested fix

Test only url.pathname instead:

const url = new URL(href)
if (/\.\w+$/.test(url.pathname)) {

https://webscore.app has pathname /, so it passes. https://example.com/page.html has pathname /page.html, so extensions are still caught correctly.

Relates to #26

Guide contributeur