From eba05825bf4191d9f7d99d7c0f0e893641d645d8 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 19:23:48 +0000 Subject: [PATCH 1/5] fix(no-dead-urls): suppress false positives for mailto, anchors, and redirects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add /^mailto:/ to skipUrlPatterns so email links are never checked - Add checkAnchor: false to stop anchor fragment verification in page HTML - Rename followRedirect → followRedirects (correct dead-or-alive option name) so HTTP→HTTPS redirects are followed instead of flagged Fixes #86 Co-authored-by: jiangy10 --- bin/runLint.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/bin/runLint.js b/bin/runLint.js index a44b49e..109243b 100644 --- a/bin/runLint.js +++ b/bin/runLint.js @@ -181,14 +181,15 @@ function createProcessor(includeFrontmatterCheck) { if (externalLinksOnly) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns, + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], deadOrAliveOptions: { - maxRetries: 0, // Disable retries - sleep: 0, // Disable sleep + maxRetries: 0, + sleep: 0, + checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, - followRedirect: true, // Allow redirects (don't treat as dead links) + followRedirects: true, // Allow redirects (don't treat as dead links) }, }); } @@ -229,14 +230,15 @@ function createProcessor(includeFrontmatterCheck) { if (!skipDeadLinks) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns, + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], deadOrAliveOptions: { - maxRetries: 0, // Disable retries - sleep: 0, // Disable sleep + maxRetries: 0, + sleep: 0, + checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, - followRedirect: true, // Allow redirects (don't treat as dead links) + followRedirects: true, // Allow redirects (don't treat as dead links) }, }); } From f9c273e4773133b8371327ffa95a088dcfd78beb Mon Sep 17 00:00:00 2001 From: yuxuanj Date: Tue, 19 May 2026 00:55:44 -0700 Subject: [PATCH 2/5] replaced checkAnchor --- bin/runLint.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bin/runLint.js b/bin/runLint.js index 109243b..ab89314 100644 --- a/bin/runLint.js +++ b/bin/runLint.js @@ -181,11 +181,10 @@ function createProcessor(includeFrontmatterCheck) { if (externalLinksOnly) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/, /^#/], deadOrAliveOptions: { maxRetries: 0, sleep: 0, - checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, @@ -230,11 +229,10 @@ function createProcessor(includeFrontmatterCheck) { if (!skipDeadLinks) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/, /^#/], deadOrAliveOptions: { maxRetries: 0, sleep: 0, - checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, From 55e34f74801c0efde8f6af159c0a14ac52a6d802 Mon Sep 17 00:00:00 2001 From: timkim Date: Fri, 1 May 2026 15:04:03 -0700 Subject: [PATCH 3/5] Set to node 24 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 52b480f..9e0b6b9 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "author": "", "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": "^24.11.08" }, "dependencies": { "dotenv": "^17.2.2", From 38d0217563f11b6b0e6e032e8411c7385e6b630e Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 19:23:48 +0000 Subject: [PATCH 4/5] fix(no-dead-urls): suppress false positives for mailto, anchors, and redirects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add /^mailto:/ to skipUrlPatterns so email links are never checked - Add checkAnchor: false to stop anchor fragment verification in page HTML - Rename followRedirect → followRedirects (correct dead-or-alive option name) so HTTP→HTTPS redirects are followed instead of flagged Fixes #86 Co-authored-by: jiangy10 --- bin/runLint.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/bin/runLint.js b/bin/runLint.js index a44b49e..109243b 100644 --- a/bin/runLint.js +++ b/bin/runLint.js @@ -181,14 +181,15 @@ function createProcessor(includeFrontmatterCheck) { if (externalLinksOnly) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns, + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], deadOrAliveOptions: { - maxRetries: 0, // Disable retries - sleep: 0, // Disable sleep + maxRetries: 0, + sleep: 0, + checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, - followRedirect: true, // Allow redirects (don't treat as dead links) + followRedirects: true, // Allow redirects (don't treat as dead links) }, }); } @@ -229,14 +230,15 @@ function createProcessor(includeFrontmatterCheck) { if (!skipDeadLinks) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns, + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], deadOrAliveOptions: { - maxRetries: 0, // Disable retries - sleep: 0, // Disable sleep + maxRetries: 0, + sleep: 0, + checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, - followRedirect: true, // Allow redirects (don't treat as dead links) + followRedirects: true, // Allow redirects (don't treat as dead links) }, }); } From a4c8a91611c105f60a5571e49a7d53bbc9cb5fbf Mon Sep 17 00:00:00 2001 From: yuxuanj Date: Tue, 19 May 2026 00:55:44 -0700 Subject: [PATCH 5/5] replaced checkAnchor --- bin/runLint.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bin/runLint.js b/bin/runLint.js index 109243b..ab89314 100644 --- a/bin/runLint.js +++ b/bin/runLint.js @@ -181,11 +181,10 @@ function createProcessor(includeFrontmatterCheck) { if (externalLinksOnly) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/, /^#/], deadOrAliveOptions: { maxRetries: 0, sleep: 0, - checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues }, @@ -230,11 +229,10 @@ function createProcessor(includeFrontmatterCheck) { if (!skipDeadLinks) { processors = processors .use(remarkLintNoDeadUrls, { - skipUrlPatterns: [...skipUrlPatterns, /^mailto:/], + skipUrlPatterns: [...skipUrlPatterns, /^mailto:/, /^#/], deadOrAliveOptions: { maxRetries: 0, sleep: 0, - checkAnchor: false, https: { rejectUnauthorized: false, // Don't fail on SSL cert issues },