Home

Awesome

remark-lint-no-dead-urls

Build Coverage Downloads Size Sponsors Backers Chat

remark-lint rule to warn when URLs are dead.

Contents

What is this?

This package checks whether URLs are alive or not.

When should I use this?

You can use this package to check that URLs are alive.

It’s similar to remark-validate-links, but there’s an important difference. That package checks the file system locally: whether path/to/example.md exists. But remark-lint-no-dead-urls checks the internet: whether https://a.com is alive, /docs/example is reachable on https://mydomain.com, and even whether certain IDs exist on a web page.

This package uses dead-or-alive. You can use it when you want to check URLs programmatically yourself.

Install

This package is ESM only. In Node.js (version 16+), install with npm:

npm install remark-lint-no-dead-urls

In Deno with esm.sh:

import remarkLintNoDeadUrls from 'https://esm.sh/remark-lint-no-dead-urls@1'

In browsers with esm.sh:

<script type="module">
  import remarkLintNoDeadUrls from 'https://esm.sh/remark-lint-no-dead-urls@1?bundle'
</script>

Use

On the API:

import remarkLint from 'remark-lint'
import remarkLintNoDeadUrls from 'remark-lint-no-dead-urls'
import remarkParse from 'remark-parse'
import remarkStringify from 'remark-stringify'
import {read} from 'to-vfile'
import {unified} from 'unified'
import {reporter} from 'vfile-reporter'

const file = await read('example.md')

await unified()
  .use(remarkParse)
  .use(remarkLint)
  .use(remarkLintNoDeadUrls)
  .use(remarkStringify)
  .process(file)

console.error(reporter(file))

On the CLI:

remark --frail --use remark-lint --use remark-lint-no-dead-urls .

On the CLI in a config file (here a package.json):

 …
 "remarkConfig": {
   "plugins": [
     …
     "remark-lint",
+    "remark-lint-no-dead-urls",
     …
   ]
 }
 …

API

This package exports no identifiers. It exports the additional TypeScript type Options. The default export is remarkLintNoDeadUrls.

Options

Configuration (TypeScript type).

Fields

unified().use(remarkLintNoDeadUrls[, options])

Warn when URLs are dead.

Notes

To improve performance, decrease deadOrAliveOptions.maxRetries and/or decrease the value used for deadOrAliveOptions.sleep. The normal behavior is to assume connections might be flakey and to sleep a while and retry a couple times.

If you do not care about whether anchors work and HTML redirects you can pass deadOrAliveOptions.checkAnchor: false and deadOrAliveOptions.followMetaHttpEquiv: false, which enables a fast path without parsing HTML.

Parameters
Returns

Transform ((tree: Root, file: VFile) => Promise<Root>).

Related

Contribute

See contributing.md in remarkjs/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © David Clark