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
Bug report
The
nice-checkers/canonical-linkrule 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:
https://webscore.appmatches because.appsatisfies\.\w+$, even though the pathname has no extension.Suggested fix
Test only
url.pathnameinstead:https://webscore.apphas pathname/, so it passes.https://example.com/page.htmlhas pathname/page.html, so extensions are still caught correctly.Relates to #26