diff options
author | Antoine du Hamel <duhamelantoine1995@gmail.com> | 2021-06-30 13:19:24 +0300 |
---|---|---|
committer | Michaƫl Zasso <targos@protonmail.com> | 2021-09-04 16:14:34 +0300 |
commit | c6ccd97fe28f2c00dccf65f3532d0a6d75d16fe0 (patch) | |
tree | e97d421b5e5ce30d62484c318e67a444485bb021 /tools | |
parent | 985ec4897537891ba7e6752956ab28930380d4bd (diff) |
doc,tools: remove `checkLinks.mjs`
The checks made by this are now integrated to `remark-preset-lint-node`,
there are no reason to keep it around anymore.
PR-URL: https://github.com/nodejs/node/pull/39206
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/doc/checkLinks.mjs | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/tools/doc/checkLinks.mjs b/tools/doc/checkLinks.mjs deleted file mode 100644 index cb302ea27fe..00000000000 --- a/tools/doc/checkLinks.mjs +++ /dev/null @@ -1,77 +0,0 @@ -import fs from 'fs'; -import { extname, join, resolve } from 'path'; -import { pathToFileURL } from 'url'; - -import gfm from 'remark-gfm'; -import markdown from 'remark-parse'; -import unified from 'unified'; - -const DIR = resolve(process.argv[2]); - -console.log('Running Markdown link checker...'); -findMarkdownFilesRecursively(DIR); - -function* getLinksRecursively(node) { - if (node.url && !node.url.startsWith('#')) { - yield node; - } - for (const child of node.children || []) { - yield* getLinksRecursively(child); - } -} - -function findMarkdownFilesRecursively(dirPath) { - const entries = fs.readdirSync(dirPath, { withFileTypes: true }); - - for (const entry of entries) { - const path = join(dirPath, entry.name); - - if ( - entry.isDirectory() && - entry.name !== 'build' && - entry.name !== 'changelogs' && - entry.name !== 'deps' && - entry.name !== 'fixtures' && - entry.name !== 'gyp' && - entry.name !== 'node_modules' && - entry.name !== 'out' && - entry.name !== 'tmp' - ) { - findMarkdownFilesRecursively(path); - } else if (entry.isFile() && extname(entry.name) === '.md') { - checkFile(path); - } - } -} - -function checkFile(path) { - const tree = unified() - .use(markdown) - .use(gfm) - .parse(fs.readFileSync(path)); - - const base = pathToFileURL(path); - let previousDefinitionLabel; - for (const node of getLinksRecursively(tree)) { - const targetURL = new URL(node.url, base); - if (targetURL.protocol === 'file:' && !fs.existsSync(targetURL)) { - const { line, column } = node.position.start; - console.error((process.env.GITHUB_ACTIONS ? - `::error file=${path},line=${line},col=${column}::` : '') + - `Broken link at ${path}:${line}:${column} (${node.url})`); - process.exitCode = 1; - } - if (node.type === 'definition') { - if (previousDefinitionLabel && - previousDefinitionLabel > node.label) { - const { line, column } = node.position.start; - console.error( - (process.env.GITHUB_ACTIONS ? `::error file=${path},line=${line},col=${column}::` : '') + - `Unordered reference at ${path}:${line}:${column} ("${node.label}" should be before "${previousDefinitionLabel}")` - ); - process.exitCode = 1; - } - previousDefinitionLabel = node.label; - } - } -} |