This project provides an
Asciidoctor.js extension
for highlighting source listing blocks using
highlight.js right during document conversion
(instead of in browser on client-side as the built-in highlight.js
support).
It supports all Asciidoctor features such as
callouts,
passthroughs
inside a code and all other substitutions, except highlighting of
specified lines (attribute highlight
).
Requirements
Installation
Install asciidoctor-highlight.js from npmjs.com:
npm install --save asciidoctor-highlight.js
Usage
Assign highlightjs-ext
to the source-highlighter
attribute in your
document’s header or via Asciidoctor.js parameters.
Node.js
Using global extensions registry.
const asciidoctor = require('@asciidoctor/core')()
const highlightJsExt = require('asciidoctor-highlight.js')
highlightJsExt.register(asciidoctor.Extensions)
const content = `
[source, js]
console.log('Hello, world!')
`
const html = asciidoctor.convert(content, {
attributes: { 'source-highlighter': 'highlightjs-ext' },
})
console.log(html)
Using custom extensions registry.
const asciidoctor = require('@asciidoctor/core')()
const highlightJsExt = require('asciidoctor-highlight.js')
const registry = asciidoctor.Extensions.create()
highlightJsExt.register(registry)
const content = `
[source, js]
console.log('Hello, world!')
`
const html = asciidoctor.convert(content, {
'extension_registry': registry,
attributes: { 'source-highlighter': 'highlightjs-ext' },
})
console.log(html)
Attributes
You can further customize the source block output with additional
highlight.js attributes:
- highlightjs-default-lang
Controls the default source code language for fallback when the
language is not specified in a source block or with attribute
source-language
. It can be any language name or alias supported by
highlight.js, none
to skip highlighting, or auto
to use
highlight.js’s auto-detection. The default is none
.
License
This project is licensed under MIT
License. For the full text of the
license, see the LICENSE file.