Package Exports
- lowlight
- lowlight/lib/core
- lowlight/lib/core.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lowlight) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
lowlight

Virtual syntax highlighting for virtual DOMs and non-HTML things, with language auto-detection. Perfect for React, VDOM, and others.
Lowlight is built to work with all syntaxes supported by highlight.js, that’s 146 languages (and all 66 themes).
Installation
npm:
npm install lowlight
lowlight is also available for duo, and as an AMD, CommonJS, and globals module, uncompressed and compressed. Read more about usage in the browser.
Usage
Dependencies:
var hast = require('hast');
var low = require('lowlight');
Compile:
var ast = low.highlight('js', '"use strict";').value;
var html = hast.stringify({'type': 'root', 'children': ast});
Yields:
[
{
"type": "element",
"tagName": "span",
"properties": {
"className": [
"hljs-meta"
]
},
"children": [
{
"type": "text",
"value": "\"use strict\""
}
]
},
{
"type": "text",
"value": ";"
}
]
Or, stringified with hast:
<span class="hljs-meta">"use strict"</span>;
API
low.highlight(language, value[, options])
Parse value
according to the language
grammar.
Parameters
name
(string
) — See list of names and aliases;value
(string
) — Source to highlight;options
(Object?
, optional):prefix
(string?
, default:'hljs-'
) — Class prefix.
Returns: Object
:
relevance
(number
) — Integer representing how sure low is the given code is in the given language;language
(string
) — The givenlanguage
;value
(Array.<Node>
) — Hast nodes representing the highlighted given code.
low.highlightAuto(value[, options])
Parse value
by guessing its grammar.
Parameters
value
(string
) — Source to highlight;options
(Object?
, optional):prefix
(string?
, default:'hljs-'
) — Class prefix;subset
(Array.<string>?
, optional, defaults to all registered languages.) — List of allowed languages.
Returns: Object
:
relevance
(number
) — Integer representing how sure low is the given code is in the detected language;language
(string
) — The givenlanguage
;value
(Array.<Node>
) — Hast nodes representing the highlighted given code.secondBest
(Object?
) — Object with the same structure as the top returned object, but containing information for the second-best result. Can benull
.
low.registerLanguage(name, syntax)
Register a syntax. Useful in the browser or with custom grammars.
Parameters
name
(string
) — Name of language;syntax
(Function
) — Syntax highlighter, seehighlight.js
s docs for more information.
Lowlight in the browser
I do not suggest using the pre-built files or requiring lowlight
in
the browser as that would include a 530kb (170kb with GZIP) file.
Instead, require lowlight/lib/core
, and include only the used
highlighters. For example:
var low = require('lowlight/lib/core');
var js = require('highlight.js/lib/languages/javascript');
low.registerLanguage('javascript', js);
low.highlight('js', '"use strict";');
// See `Usage` for the results.
...When using browserify, minifying, and GZIP that results in just 17kb of code (7kb with GZIP).