# markdown-it-highlightjs

> Preset to use highlight.js with markdown-it.

Latest version **4.3.0** (published 2026-02-06) · Unlicense license · 0 weekly downloads

## Install

```sh
npm install markdown-it-highlightjs
pnpm add markdown-it-highlightjs
yarn add markdown-it-highlightjs
bun add markdown-it-highlightjs
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 4.3.0 |
| Published | 2026-02-06 |
| First published | 2015-03-17 |
| Weekly downloads | 0 |
| License | Unlicense |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 33 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 71 |
| Author | Val |
| Maintainers | valeriangalliat |
| Keywords | markdown-it-plugin |

## Links

- npm: https://www.npmjs.com/package/markdown-it-highlightjs
- Repository: https://github.com/valeriangalliat/markdown-it-highlightjs
- Homepage: https://github.com/valeriangalliat/markdown-it-highlightjs#readme
- Issues: https://github.com/valeriangalliat/markdown-it-highlightjs/issues
- npm.io page: https://npm.io/package/markdown-it-highlightjs

## Dependencies (1)

- [highlight.js](https://npm.io/package/highlight.js.md) ^11.9.0

## Alternatives

- [@mdxeditor/editor](https://npm.io/package/@mdxeditor/editor.md) — 962.4K weekly downloads
- [mmdb-lib](https://npm.io/package/mmdb-lib.md) — 680.9K weekly downloads
- [playcanvas](https://npm.io/package/playcanvas.md) — 36.2K weekly downloads
- [@glw907/cairn-cms](https://npm.io/package/@glw907/cairn-cms.md) — 967 weekly downloads
- [markdown-to-confluence](https://npm.io/package/markdown-to-confluence.md) — 103 weekly downloads

## Recent versions

- 4.3.0 (latest) — 2026-02-06
- 4.2.0 — 2024-09-18
- 4.1.0 — 2024-05-16
- 4.0.1 — 2022-04-11
- 4.0.0 — 2022-04-11
- 3.6.0 — 2021-12-26
- 3.5.0 — 2021-05-16
- 3.4.0 — 2020-12-04
- 3.3.1 — 2020-11-15
- 3.3.0 — 2020-09-25
- 3.2.0 — 2020-07-01
- 3.1.0 — 2020-03-05
- 3.0.0 — 2017-02-26
- 2.0.0 — 2015-06-29
- 1.1.2 — 2015-05-25
- … 3 more at https://npm.io/package/markdown-it-highlightjs/versions

## README

# markdown-it-highlightjs [![npm version](https://img.shields.io/npm/v/markdown-it-highlightjs.svg?style=flat-square)](https://www.npmjs.org/package/markdown-it-highlightjs)

> Preset to use [highlight.js] with [markdown-it].

[highlight.js]: https://highlightjs.org/
[markdown-it]: https://github.com/markdown-it/markdown-it

## Usage

```js
const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs'), opts)
```

This will process all code blocks with highlight.js to add `span`
elements around grammatical keywords with specific classes, that can
then be syled with CSS. You can find a list of preset highlighting
styles [here](https://github.com/highlightjs/highlight.js/tree/main/src/styles).

The `opts` object can contain:

| Name              | Type    | Description                                                                                                               | Default                   |
|-------------------|---------|---------------------------------------------------------------------------------------------------------------------------|---------------------------|
| `auto`            | boolean | Whether to automatically detect language if not specified.                                                                | `true`                    |
| `code`            | boolean | Whether to add the `hljs` class to raw code blocks (not fenced blocks).                                                   | `true`                    |
| `register`        | object  | Register other languages which are not included in the standard pack.                                                     | `null`                    |
| `registerAliases` | object  | Register aliases to languages which are included in the standard pack.                                                    | `null`                    |
| `inline`          | boolean | Whether to highlight inline code.                                                                                         | `false`                   |
| `hljs`            | object  | Provide the instance of [highlight.js] to use for highlighting                                                            | `require('highlight.js')` |
| `ignoreIllegals`  | boolean | Forces highlighting to finish even in case of detecting illegal syntax for the language instead of throwing an exception. | `true`                    |

## Register languages

```js
const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs'), {
    register: {
      cypher: require('highlightjs-cypher')
    }
  })
```

## Register language aliases

```js
const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs'), {
    registerAliases: {
      js: ['jquery', 'jqueryui']
    }
  })
```

## Inline code highlighting

You can enable inline code highlighting by setting `inline` to true:

```js
const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs'), { inline: true })
```

You can specify the language for inline code using
[Pandoc syntax](https://pandoc.org/MANUAL.html#extension-inline_code_attributes):

```markdown
`x=4`{.js}
```

Or [kramdown IAL syntax](https://kramdown.gettalong.org/syntax.html#inline-attribute-lists):

```markdown
`x=4`{:.js}
```

If you do not specify a language, then highlight.js will attempt to
guess the language if `auto` is true (which it is by default).

### Usage with markdown-it-attrs

If you use markdown-it-attrs, make sure to include it *after*
markdown-it-highlightjs if you want inline code highlighting to work:

```js
const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs'), { inline: true })
  .use(require('markdown-it-attrs'))
```

## Provide the [highlight.js] instance

You can specify the `hljs` option to override the default [highlight.js]
instance with your own:

```js
const hljs = require('highlight.js/lib/core')

hljs.registerLanguage(
  'javascript',
  require('highlight.js/lib/languages/javascript')
)

const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs'), { hljs })
```

## Core plugin

You may import the core `markdown-it-highlightjs` plugin directly,
without any default options. You must specify an instance of
[highlight.js] for the `hljs` option.

```js
const hljs = require('highlight.js/lib/core')

const md = require('markdown-it')()
  .use(require('markdown-it-highlightjs/core'), { hljs })
```

---
_Source: https://npm.io/package/markdown-it-highlightjs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
