---
title: "markdown/no-empty-links"
description: "Disallow empty links"
# Generated by src/codegen/lint-rule-docs.ts. Do not edit below this line.
plugin: "markdown"
aliases: []
kind: "problem"
category: null
default: "off"
fixable: "no"
typeAware: false
deprecated: false
---

A link without a URL, or with just `#`, looks like a link and leads nowhere. It's usually a placeholder that was never filled in.

{/* Generated by src/codegen/lint-rule-docs.ts. Do not edit this section. */}

## Configure

Off by default. It needs an ESLint config that says which files are in the language:

{/* skip */}

```js eslint.config.js
import markdown from "@eslint/markdown";

export default [
  {
    files: ["**/*.md"],
    plugins: { markdown },
    language: "markdown/commonmark",
    rules: { "markdown/no-empty-links": "error" },
  },
];
```

It also works with `markdown/gfm`.

{/* End of the generated section. */}

## Examples

Reported:

{/* bad {"count": 3} */}

```md
Read the [guide]().

Read the [guide](#).

Read the [guide](<>).
```

Not reported:

{/* good */}

```md
Read the [guide](https://example.com/guide) or jump to [usage](#usage).
```
