Syntax highlighting for rehype.
npm:
npm install rehype-highlight
Say example.html
looks as follows:
<h1>Hello World!</h1>
<pre><code class="language-js">var name = "World";
console.warn("Hello, " + name + "!")</code></pre>
...and example.js
like this:
var vfile = require('to-vfile')
var report = require('vfile-reporter')
var rehype = require('rehype')
var highlight = require('rehype-highlight')
rehype()
.data('settings', {fragment: true})
.use(highlight)
.process(vfile.readSync('example.html'), function(err, file) {
console.error(report(err || file))
console.log(String(file))
})
Now, running node example
yields:
example.html: no issues found
<h1>Hello World!</h1>
<pre><code class="hljs language-js"><span class="hljs-keyword">var</span> name = <span class="hljs-string">"World"</span>;
<span class="hljs-built_in">console</span>.warn(<span class="hljs-string">"Hello, "</span> + name + <span class="hljs-string">"!"</span>)</code></pre>
Syntax highlight pre > code
. Uses lowlight under
the hood, which is a virtual version of highlight.js
.
Configure the language by using a lang-js
or language-js
class.
Ignore code
with a no-highlight
or nohighlight
class.
Will auto-detect the syntax language otherwise.
string
, default: 'hljs-'
— Prefix to use before classes.
boolean
or Array.<string>
, default: all languages — Scope of languages to
check when auto-detecting. Pass false
to not highlight code without
language classes.
boolean
, default: false
. By default, unregistered syntaxes throw an error
when they are used. Pass true
to swallow those errors and thus ignore code
with unknown code languages.
Array.<string>
, default: []
. Pass any languages you would like to be kept
as plain-text instead of getting highlighted.
Object<string | Array.<string>>
, default: {}
.
Register more aliases.
Passed to lowlight.registerAlias
.
See contributing.md
in rehypejs/rehype
for ways to get
started.
This organisation has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.