fulldecent/html-validate-nice-checkers

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

Fechada

#28 aberto em 24 de jun. de 2026

 (3 comentários) (0 reação) (0 responsável)TypeScript (1 fork)github user discovery
help wanted

Métricas do repositório

Stars
 (2 estrelas)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

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

Guia do colaborador