Fix bin/publish: copy docs.dist from project root

Fix bin/publish: use correct .env path for rspade_system
Fix bin/publish script: prevent grep exit code 1 from terminating script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-10-21 02:08:33 +00:00
commit f6fac6c4bc
79758 changed files with 10547827 additions and 0 deletions

5
vendor/spatie/ignition/node_modules/lowlight/changelog.md generated vendored Executable file
View File

@@ -0,0 +1,5 @@
# Changelog
See [GitHub Releases][releases] for the changelog.
[releases]: https://github.com/wooorm/lowlight/releases

299
vendor/spatie/ignition/node_modules/lowlight/index.js generated vendored Executable file
View File

@@ -0,0 +1,299 @@
'use strict'
var low = require('./lib/core.js')
module.exports = low
low.registerLanguage('1c', require('highlight.js/lib/languages/1c'))
low.registerLanguage('abnf', require('highlight.js/lib/languages/abnf'))
low.registerLanguage(
'accesslog',
require('highlight.js/lib/languages/accesslog')
)
low.registerLanguage(
'actionscript',
require('highlight.js/lib/languages/actionscript')
)
low.registerLanguage('ada', require('highlight.js/lib/languages/ada'))
low.registerLanguage(
'angelscript',
require('highlight.js/lib/languages/angelscript')
)
low.registerLanguage('apache', require('highlight.js/lib/languages/apache'))
low.registerLanguage(
'applescript',
require('highlight.js/lib/languages/applescript')
)
low.registerLanguage('arcade', require('highlight.js/lib/languages/arcade'))
low.registerLanguage('arduino', require('highlight.js/lib/languages/arduino'))
low.registerLanguage('armasm', require('highlight.js/lib/languages/armasm'))
low.registerLanguage('xml', require('highlight.js/lib/languages/xml'))
low.registerLanguage('asciidoc', require('highlight.js/lib/languages/asciidoc'))
low.registerLanguage('aspectj', require('highlight.js/lib/languages/aspectj'))
low.registerLanguage(
'autohotkey',
require('highlight.js/lib/languages/autohotkey')
)
low.registerLanguage('autoit', require('highlight.js/lib/languages/autoit'))
low.registerLanguage('avrasm', require('highlight.js/lib/languages/avrasm'))
low.registerLanguage('awk', require('highlight.js/lib/languages/awk'))
low.registerLanguage('axapta', require('highlight.js/lib/languages/axapta'))
low.registerLanguage('bash', require('highlight.js/lib/languages/bash'))
low.registerLanguage('basic', require('highlight.js/lib/languages/basic'))
low.registerLanguage('bnf', require('highlight.js/lib/languages/bnf'))
low.registerLanguage(
'brainfuck',
require('highlight.js/lib/languages/brainfuck')
)
low.registerLanguage('c-like', require('highlight.js/lib/languages/c-like'))
low.registerLanguage('c', require('highlight.js/lib/languages/c'))
low.registerLanguage('cal', require('highlight.js/lib/languages/cal'))
low.registerLanguage(
'capnproto',
require('highlight.js/lib/languages/capnproto')
)
low.registerLanguage('ceylon', require('highlight.js/lib/languages/ceylon'))
low.registerLanguage('clean', require('highlight.js/lib/languages/clean'))
low.registerLanguage('clojure', require('highlight.js/lib/languages/clojure'))
low.registerLanguage(
'clojure-repl',
require('highlight.js/lib/languages/clojure-repl')
)
low.registerLanguage('cmake', require('highlight.js/lib/languages/cmake'))
low.registerLanguage(
'coffeescript',
require('highlight.js/lib/languages/coffeescript')
)
low.registerLanguage('coq', require('highlight.js/lib/languages/coq'))
low.registerLanguage('cos', require('highlight.js/lib/languages/cos'))
low.registerLanguage('cpp', require('highlight.js/lib/languages/cpp'))
low.registerLanguage('crmsh', require('highlight.js/lib/languages/crmsh'))
low.registerLanguage('crystal', require('highlight.js/lib/languages/crystal'))
low.registerLanguage('csharp', require('highlight.js/lib/languages/csharp'))
low.registerLanguage('csp', require('highlight.js/lib/languages/csp'))
low.registerLanguage('css', require('highlight.js/lib/languages/css'))
low.registerLanguage('d', require('highlight.js/lib/languages/d'))
low.registerLanguage('markdown', require('highlight.js/lib/languages/markdown'))
low.registerLanguage('dart', require('highlight.js/lib/languages/dart'))
low.registerLanguage('delphi', require('highlight.js/lib/languages/delphi'))
low.registerLanguage('diff', require('highlight.js/lib/languages/diff'))
low.registerLanguage('django', require('highlight.js/lib/languages/django'))
low.registerLanguage('dns', require('highlight.js/lib/languages/dns'))
low.registerLanguage(
'dockerfile',
require('highlight.js/lib/languages/dockerfile')
)
low.registerLanguage('dos', require('highlight.js/lib/languages/dos'))
low.registerLanguage('dsconfig', require('highlight.js/lib/languages/dsconfig'))
low.registerLanguage('dts', require('highlight.js/lib/languages/dts'))
low.registerLanguage('dust', require('highlight.js/lib/languages/dust'))
low.registerLanguage('ebnf', require('highlight.js/lib/languages/ebnf'))
low.registerLanguage('elixir', require('highlight.js/lib/languages/elixir'))
low.registerLanguage('elm', require('highlight.js/lib/languages/elm'))
low.registerLanguage('ruby', require('highlight.js/lib/languages/ruby'))
low.registerLanguage('erb', require('highlight.js/lib/languages/erb'))
low.registerLanguage(
'erlang-repl',
require('highlight.js/lib/languages/erlang-repl')
)
low.registerLanguage('erlang', require('highlight.js/lib/languages/erlang'))
low.registerLanguage('excel', require('highlight.js/lib/languages/excel'))
low.registerLanguage('fix', require('highlight.js/lib/languages/fix'))
low.registerLanguage('flix', require('highlight.js/lib/languages/flix'))
low.registerLanguage('fortran', require('highlight.js/lib/languages/fortran'))
low.registerLanguage('fsharp', require('highlight.js/lib/languages/fsharp'))
low.registerLanguage('gams', require('highlight.js/lib/languages/gams'))
low.registerLanguage('gauss', require('highlight.js/lib/languages/gauss'))
low.registerLanguage('gcode', require('highlight.js/lib/languages/gcode'))
low.registerLanguage('gherkin', require('highlight.js/lib/languages/gherkin'))
low.registerLanguage('glsl', require('highlight.js/lib/languages/glsl'))
low.registerLanguage('gml', require('highlight.js/lib/languages/gml'))
low.registerLanguage('go', require('highlight.js/lib/languages/go'))
low.registerLanguage('golo', require('highlight.js/lib/languages/golo'))
low.registerLanguage('gradle', require('highlight.js/lib/languages/gradle'))
low.registerLanguage('groovy', require('highlight.js/lib/languages/groovy'))
low.registerLanguage('haml', require('highlight.js/lib/languages/haml'))
low.registerLanguage(
'handlebars',
require('highlight.js/lib/languages/handlebars')
)
low.registerLanguage('haskell', require('highlight.js/lib/languages/haskell'))
low.registerLanguage('haxe', require('highlight.js/lib/languages/haxe'))
low.registerLanguage('hsp', require('highlight.js/lib/languages/hsp'))
low.registerLanguage('htmlbars', require('highlight.js/lib/languages/htmlbars'))
low.registerLanguage('http', require('highlight.js/lib/languages/http'))
low.registerLanguage('hy', require('highlight.js/lib/languages/hy'))
low.registerLanguage('inform7', require('highlight.js/lib/languages/inform7'))
low.registerLanguage('ini', require('highlight.js/lib/languages/ini'))
low.registerLanguage('irpf90', require('highlight.js/lib/languages/irpf90'))
low.registerLanguage('isbl', require('highlight.js/lib/languages/isbl'))
low.registerLanguage('java', require('highlight.js/lib/languages/java'))
low.registerLanguage(
'javascript',
require('highlight.js/lib/languages/javascript')
)
low.registerLanguage(
'jboss-cli',
require('highlight.js/lib/languages/jboss-cli')
)
low.registerLanguage('json', require('highlight.js/lib/languages/json'))
low.registerLanguage('julia', require('highlight.js/lib/languages/julia'))
low.registerLanguage(
'julia-repl',
require('highlight.js/lib/languages/julia-repl')
)
low.registerLanguage('kotlin', require('highlight.js/lib/languages/kotlin'))
low.registerLanguage('lasso', require('highlight.js/lib/languages/lasso'))
low.registerLanguage('latex', require('highlight.js/lib/languages/latex'))
low.registerLanguage('ldif', require('highlight.js/lib/languages/ldif'))
low.registerLanguage('leaf', require('highlight.js/lib/languages/leaf'))
low.registerLanguage('less', require('highlight.js/lib/languages/less'))
low.registerLanguage('lisp', require('highlight.js/lib/languages/lisp'))
low.registerLanguage(
'livecodeserver',
require('highlight.js/lib/languages/livecodeserver')
)
low.registerLanguage(
'livescript',
require('highlight.js/lib/languages/livescript')
)
low.registerLanguage('llvm', require('highlight.js/lib/languages/llvm'))
low.registerLanguage('lsl', require('highlight.js/lib/languages/lsl'))
low.registerLanguage('lua', require('highlight.js/lib/languages/lua'))
low.registerLanguage('makefile', require('highlight.js/lib/languages/makefile'))
low.registerLanguage(
'mathematica',
require('highlight.js/lib/languages/mathematica')
)
low.registerLanguage('matlab', require('highlight.js/lib/languages/matlab'))
low.registerLanguage('maxima', require('highlight.js/lib/languages/maxima'))
low.registerLanguage('mel', require('highlight.js/lib/languages/mel'))
low.registerLanguage('mercury', require('highlight.js/lib/languages/mercury'))
low.registerLanguage('mipsasm', require('highlight.js/lib/languages/mipsasm'))
low.registerLanguage('mizar', require('highlight.js/lib/languages/mizar'))
low.registerLanguage('perl', require('highlight.js/lib/languages/perl'))
low.registerLanguage(
'mojolicious',
require('highlight.js/lib/languages/mojolicious')
)
low.registerLanguage('monkey', require('highlight.js/lib/languages/monkey'))
low.registerLanguage(
'moonscript',
require('highlight.js/lib/languages/moonscript')
)
low.registerLanguage('n1ql', require('highlight.js/lib/languages/n1ql'))
low.registerLanguage('nginx', require('highlight.js/lib/languages/nginx'))
low.registerLanguage('nim', require('highlight.js/lib/languages/nim'))
low.registerLanguage('nix', require('highlight.js/lib/languages/nix'))
low.registerLanguage(
'node-repl',
require('highlight.js/lib/languages/node-repl')
)
low.registerLanguage('nsis', require('highlight.js/lib/languages/nsis'))
low.registerLanguage(
'objectivec',
require('highlight.js/lib/languages/objectivec')
)
low.registerLanguage('ocaml', require('highlight.js/lib/languages/ocaml'))
low.registerLanguage('openscad', require('highlight.js/lib/languages/openscad'))
low.registerLanguage('oxygene', require('highlight.js/lib/languages/oxygene'))
low.registerLanguage('parser3', require('highlight.js/lib/languages/parser3'))
low.registerLanguage('pf', require('highlight.js/lib/languages/pf'))
low.registerLanguage('pgsql', require('highlight.js/lib/languages/pgsql'))
low.registerLanguage('php', require('highlight.js/lib/languages/php'))
low.registerLanguage(
'php-template',
require('highlight.js/lib/languages/php-template')
)
low.registerLanguage(
'plaintext',
require('highlight.js/lib/languages/plaintext')
)
low.registerLanguage('pony', require('highlight.js/lib/languages/pony'))
low.registerLanguage(
'powershell',
require('highlight.js/lib/languages/powershell')
)
low.registerLanguage(
'processing',
require('highlight.js/lib/languages/processing')
)
low.registerLanguage('profile', require('highlight.js/lib/languages/profile'))
low.registerLanguage('prolog', require('highlight.js/lib/languages/prolog'))
low.registerLanguage(
'properties',
require('highlight.js/lib/languages/properties')
)
low.registerLanguage('protobuf', require('highlight.js/lib/languages/protobuf'))
low.registerLanguage('puppet', require('highlight.js/lib/languages/puppet'))
low.registerLanguage(
'purebasic',
require('highlight.js/lib/languages/purebasic')
)
low.registerLanguage('python', require('highlight.js/lib/languages/python'))
low.registerLanguage(
'python-repl',
require('highlight.js/lib/languages/python-repl')
)
low.registerLanguage('q', require('highlight.js/lib/languages/q'))
low.registerLanguage('qml', require('highlight.js/lib/languages/qml'))
low.registerLanguage('r', require('highlight.js/lib/languages/r'))
low.registerLanguage('reasonml', require('highlight.js/lib/languages/reasonml'))
low.registerLanguage('rib', require('highlight.js/lib/languages/rib'))
low.registerLanguage('roboconf', require('highlight.js/lib/languages/roboconf'))
low.registerLanguage('routeros', require('highlight.js/lib/languages/routeros'))
low.registerLanguage('rsl', require('highlight.js/lib/languages/rsl'))
low.registerLanguage(
'ruleslanguage',
require('highlight.js/lib/languages/ruleslanguage')
)
low.registerLanguage('rust', require('highlight.js/lib/languages/rust'))
low.registerLanguage('sas', require('highlight.js/lib/languages/sas'))
low.registerLanguage('scala', require('highlight.js/lib/languages/scala'))
low.registerLanguage('scheme', require('highlight.js/lib/languages/scheme'))
low.registerLanguage('scilab', require('highlight.js/lib/languages/scilab'))
low.registerLanguage('scss', require('highlight.js/lib/languages/scss'))
low.registerLanguage('shell', require('highlight.js/lib/languages/shell'))
low.registerLanguage('smali', require('highlight.js/lib/languages/smali'))
low.registerLanguage(
'smalltalk',
require('highlight.js/lib/languages/smalltalk')
)
low.registerLanguage('sml', require('highlight.js/lib/languages/sml'))
low.registerLanguage('sqf', require('highlight.js/lib/languages/sqf'))
low.registerLanguage('sql_more', require('highlight.js/lib/languages/sql_more'))
low.registerLanguage('sql', require('highlight.js/lib/languages/sql'))
low.registerLanguage('stan', require('highlight.js/lib/languages/stan'))
low.registerLanguage('stata', require('highlight.js/lib/languages/stata'))
low.registerLanguage('step21', require('highlight.js/lib/languages/step21'))
low.registerLanguage('stylus', require('highlight.js/lib/languages/stylus'))
low.registerLanguage('subunit', require('highlight.js/lib/languages/subunit'))
low.registerLanguage('swift', require('highlight.js/lib/languages/swift'))
low.registerLanguage(
'taggerscript',
require('highlight.js/lib/languages/taggerscript')
)
low.registerLanguage('yaml', require('highlight.js/lib/languages/yaml'))
low.registerLanguage('tap', require('highlight.js/lib/languages/tap'))
low.registerLanguage('tcl', require('highlight.js/lib/languages/tcl'))
low.registerLanguage('thrift', require('highlight.js/lib/languages/thrift'))
low.registerLanguage('tp', require('highlight.js/lib/languages/tp'))
low.registerLanguage('twig', require('highlight.js/lib/languages/twig'))
low.registerLanguage(
'typescript',
require('highlight.js/lib/languages/typescript')
)
low.registerLanguage('vala', require('highlight.js/lib/languages/vala'))
low.registerLanguage('vbnet', require('highlight.js/lib/languages/vbnet'))
low.registerLanguage('vbscript', require('highlight.js/lib/languages/vbscript'))
low.registerLanguage(
'vbscript-html',
require('highlight.js/lib/languages/vbscript-html')
)
low.registerLanguage('verilog', require('highlight.js/lib/languages/verilog'))
low.registerLanguage('vhdl', require('highlight.js/lib/languages/vhdl'))
low.registerLanguage('vim', require('highlight.js/lib/languages/vim'))
low.registerLanguage('x86asm', require('highlight.js/lib/languages/x86asm'))
low.registerLanguage('xl', require('highlight.js/lib/languages/xl'))
low.registerLanguage('xquery', require('highlight.js/lib/languages/xquery'))
low.registerLanguage('zephir', require('highlight.js/lib/languages/zephir'))

207
vendor/spatie/ignition/node_modules/lowlight/lib/core.js generated vendored Executable file
View File

@@ -0,0 +1,207 @@
'use strict'
var high = require('highlight.js/lib/core')
var fault = require('fault')
exports.highlight = highlight
exports.highlightAuto = highlightAuto
exports.registerLanguage = registerLanguage
exports.listLanguages = listLanguages
exports.registerAlias = registerAlias
Emitter.prototype.addText = text
Emitter.prototype.addKeyword = addKeyword
Emitter.prototype.addSublanguage = addSublanguage
Emitter.prototype.openNode = open
Emitter.prototype.closeNode = close
Emitter.prototype.closeAllNodes = noop
Emitter.prototype.finalize = noop
Emitter.prototype.toHTML = toHtmlNoop
var defaultPrefix = 'hljs-'
// Highlighting `value` in the language `name`.
function highlight(name, value, options) {
var before = high.configure({})
var settings = options || {}
var prefix = settings.prefix
var result
if (typeof name !== 'string') {
throw fault('Expected `string` for name, got `%s`', name)
}
if (!high.getLanguage(name)) {
throw fault('Unknown language: `%s` is not registered', name)
}
if (typeof value !== 'string') {
throw fault('Expected `string` for value, got `%s`', value)
}
if (prefix === null || prefix === undefined) {
prefix = defaultPrefix
}
high.configure({__emitter: Emitter, classPrefix: prefix})
result = high.highlight(value, {language: name, ignoreIllegals: true})
high.configure(before || {})
/* istanbul ignore if - Highlight.js seems to use this (currently) for broken
* grammars, so lets keep it in there just to be sure. */
if (result.errorRaised) {
throw result.errorRaised
}
return {
relevance: result.relevance,
language: result.language,
value: result.emitter.rootNode.children
}
}
function highlightAuto(value, options) {
var settings = options || {}
var subset = settings.subset || high.listLanguages()
var prefix = settings.prefix
var length = subset.length
var index = -1
var result
var secondBest
var current
var name
if (prefix === null || prefix === undefined) {
prefix = defaultPrefix
}
if (typeof value !== 'string') {
throw fault('Expected `string` for value, got `%s`', value)
}
secondBest = {relevance: 0, language: null, value: []}
result = {relevance: 0, language: null, value: []}
while (++index < length) {
name = subset[index]
if (!high.getLanguage(name)) {
continue
}
current = highlight(name, value, options)
current.language = name
if (current.relevance > secondBest.relevance) {
secondBest = current
}
if (current.relevance > result.relevance) {
secondBest = result
result = current
}
}
if (secondBest.language) {
result.secondBest = secondBest
}
return result
}
// Register a language.
function registerLanguage(name, syntax) {
high.registerLanguage(name, syntax)
}
// Get a list of all registered languages.
function listLanguages() {
return high.listLanguages()
}
// Register more aliases for an already registered language.
function registerAlias(name, alias) {
var map = name
var key
if (alias) {
map = {}
map[name] = alias
}
for (key in map) {
high.registerAliases(map[key], {languageName: key})
}
}
function Emitter(options) {
this.options = options
this.rootNode = {children: []}
this.stack = [this.rootNode]
}
function addKeyword(value, name) {
this.openNode(name)
this.addText(value)
this.closeNode()
}
function addSublanguage(other, name) {
var stack = this.stack
var current = stack[stack.length - 1]
var results = other.rootNode.children
var node = name
? {
type: 'element',
tagName: 'span',
properties: {className: [name]},
children: results
}
: results
current.children = current.children.concat(node)
}
function text(value) {
var stack = this.stack
var current
var tail
if (value === '') return
current = stack[stack.length - 1]
tail = current.children[current.children.length - 1]
if (tail && tail.type === 'text') {
tail.value += value
} else {
current.children.push({type: 'text', value: value})
}
}
function open(name) {
var stack = this.stack
var className = this.options.classPrefix + name
var current = stack[stack.length - 1]
var child = {
type: 'element',
tagName: 'span',
properties: {className: [className]},
children: []
}
current.children.push(child)
stack.push(child)
}
function close() {
this.stack.pop()
}
function toHtmlNoop() {
return ''
}
function noop() {}

22
vendor/spatie/ignition/node_modules/lowlight/license generated vendored Executable file
View File

@@ -0,0 +1,22 @@
(The MIT License)
Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

339
vendor/spatie/ignition/node_modules/lowlight/readme.md generated vendored Executable file
View File

@@ -0,0 +1,339 @@
# lowlight
[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Size][size-badge]][size]
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][],
thats [191 languages][names] (and all 94 themes).
Want to use [Prism][] instead?
Try [`refractor`][refractor]!
## Contents
* [Install](#install)
* [Use](#use)
* [API](#api)
* [`low.highlight(language, value[, options])`](#lowhighlightlanguage-value-options)
* [`low.highlightAuto(value[, options])`](#lowhighlightautovalue-options)
* [`Result`](#result)
* [`low.registerLanguage(name, syntax)`](#lowregisterlanguagename-syntax)
* [`low.registerAlias(name[, alias])`](#lowregisteraliasname-alias)
* [`low.listLanguages()`](#lowlistlanguages)
* [Browser](#browser)
* [Related](#related)
* [Projects](#projects)
* [License](#license)
## Install
[npm][]:
```sh
npm install lowlight
```
[Usage in the browser »][browser]
## Use
Highlight:
```js
var low = require('lowlight')
var tree = low.highlight('js', '"use strict";').value
console.log(tree)
```
Yields:
```js
[
{
type: 'element',
tagName: 'span',
properties: {className: ['hljs-meta']},
children: [{type: 'text', value: '"use strict"'}]
},
{type: 'text', value: ';'}
]
```
Or, serialized with [rehype-stringify][]:
```js
var unified = require('unified')
var rehypeStringify = require('rehype-stringify')
var processor = unified().use(rehypeStringify)
var html = processor.stringify({type: 'root', children: tree}).toString()
console.log(html)
```
Yields:
```html
<span class="hljs-meta">"use strict"</span>;
```
> **Tip**: Use [`hast-to-hyperscript`][to-hyperscript] to transform to other
> virtual DOMs, or DIY.
## API
### `low.highlight(language, value[, options])`
Parse `value` (`string`) according to the [`language`][names] grammar.
###### `options`
* `prefix` (`string?`, default: `'hljs-'`) — Class prefix
###### Returns
[`Result`][result].
###### Example
```js
var low = require('lowlight')
console.log(low.highlight('css', 'em { color: red }'))
```
Yields:
```js
{relevance: 4, language: 'css', value: [Array]}
```
### `low.highlightAuto(value[, options])`
Parse `value` by guessing its grammar.
###### `options`
* `prefix` (`string?`, default: `'hljs-'`)
— Class prefix
* `subset` (`Array.<string>?` default: all registered languages)
— List of allowed languages
###### Returns
[`Result`][result], with a `secondBest` if found.
###### Example
```js
var low = require('lowlight')
console.log(low.highlightAuto('"hello, " + name + "!"'))
```
Yields:
```js
{
relevance: 3,
language: 'applescript',
value: [Array],
secondBest: {relevance: 3, language: 'basic', value: [Array]}
}
```
### `Result`
`Result` is a highlighting result object.
###### Properties
* `relevance` (`number`)
— How sure **low** is that the given code is in the found language
* `language` (`string`)
— The detected `language`
* `value` ([`Array.<Node>`][hast-node])
— Virtual nodes representing the highlighted given code
* `secondBest` ([`Result?`][result])
— Result of the second-best (based on `relevance`) match.
Only set by `highlightAuto`, but can still be `null`.
### `low.registerLanguage(name, syntax)`
Register a [syntax][] as `name` (`string`).
Useful in the browser or with custom grammars.
###### Example
```js
var low = require('lowlight/lib/core')
var xml = require('highlight.js/lib/languages/xml')
low.registerLanguage('xml', xml)
console.log(low.highlight('html', '<em>Emphasis</em>'))
```
Yields:
```js
{relevance: 2, language: 'html', value: [Array]}
```
### `low.registerAlias(name[, alias])`
Register a new `alias` for the `name` language.
###### Signatures
* `registerAlias(name, alias|list)`
* `registerAlias(aliases)`
###### Parameters
* `name` (`string`) — [Name][names] of a registered language
* `alias` (`string`) — New alias for the registered language
* `list` (`Array.<alias>`) — List of aliases
* `aliases` (`Object.<alias|list>`) — Map where each key is a `name` and each
value an `alias` or a `list`
###### Example
```js
var low = require('lowlight/lib/core')
var md = require('highlight.js/lib/languages/markdown')
low.registerLanguage('markdown', md)
// low.highlight('mdown', '<em>Emphasis</em>')
// ^ would throw: Error: Unknown language: `mdown` is not registered
low.registerAlias({markdown: ['mdown', 'mkdn', 'mdwn', 'ron']})
low.highlight('mdown', '<em>Emphasis</em>')
// ^ Works!
```
### `low.listLanguages()`
List all registered languages.
###### Returns
`Array.<string>`.
###### Example
```js
var low = require('lowlight/lib/core')
var md = require('highlight.js/lib/languages/markdown')
console.log(low.listLanguages()) // => []
low.registerLanguage('markdown', md)
console.log(low.listLanguages()) // => ['markdown']
```
## Browser
It is not suggested to use the pre-built files or requiring `lowlight` in the
browser as that would include 916kB (260kB GZipped) of code.
Instead, require `lowlight/lib/core`, and include only the used highlighters.
For example:
```js
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][] and minifying with [tinyify][] this results in 24kB
of code (9kB with GZip).
## Related
* [`refractor`][refractor] — Same, but based on [Prism][]
## Projects
* [`emphasize`](https://github.com/wooorm/emphasize)
— Syntax highlighting in ANSI, for the terminal
* [`react-lowlight`](https://github.com/rexxars/react-lowlight)
— Syntax highlighter for [React][]
* [`react-syntax-highlighter`](https://github.com/conorhastings/react-syntax-highlighter)
— [React][] component for syntax highlighting
* [`rehype-highlight`](https://github.com/rehypejs/rehype-highlight)
— Syntax highlighting in [**rehype**](https://github.com/rehypejs/rehype)
* [`remark-highlight.js`](https://github.com/ben-eb/remark-highlight.js)
— Syntax highlighting in [**remark**](https://github.com/remarkjs/remark)
* [`jstransformer-lowlight`](https://github.com/ai/jstransformer-lowlight)
— Syntax highlighting for [JSTransformers](https://github.com/jstransformers)
and [Pug](https://pugjs.org/language/filters.html)
## License
[MIT][license] © [Titus Wormer][author]
<!-- Definitions -->
[build-badge]: https://github.com/wooorm/lowlight/workflows/main/badge.svg
[build]: https://github.com/wooorm/lowlight/actions
[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/lowlight.svg
[coverage]: https://codecov.io/github/wooorm/lowlight
[downloads-badge]: https://img.shields.io/npm/dm/lowlight.svg
[downloads]: https://www.npmjs.com/package/lowlight
[size-badge]: https://img.shields.io/bundlephobia/minzip/lowlight.svg
[size]: https://bundlephobia.com/result?p=lowlight
[npm]: https://docs.npmjs.com/cli/install
[license]: license
[author]: https://wooorm.com
[rehype-stringify]: https://github.com/rehypejs/rehype/tree/main/packages/rehype-stringify
[hast-node]: https://github.com/syntax-tree/hast#ast
[highlight.js]: https://github.com/highlightjs/highlight.js
[syntax]: https://github.com/highlightjs/highlight.js/blob/main/docs/language-guide.rst
[names]: https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md
[react]: https://facebook.github.io/react/
[vdom]: https://github.com/Matt-Esch/virtual-dom
[to-hyperscript]: https://github.com/syntax-tree/hast-to-hyperscript
[browser]: #browser
[result]: #result
[prism]: https://github.com/PrismJS/prism
[refractor]: https://github.com/wooorm/refractor
[browserify]: https://github.com/browserify/browserify
[tinyify]: https://github.com/browserify/tinyify