Skip to content

Commit

Permalink
Update to 11.0.0-alpha0
Browse files Browse the repository at this point in the history
  • Loading branch information
wooorm committed Apr 21, 2021
1 parent 934a473 commit 2c1ec1f
Show file tree
Hide file tree
Showing 10 changed files with 79 additions and 82 deletions.
38 changes: 16 additions & 22 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@ import bash from 'highlight.js/lib/languages/bash.js'
import basic from 'highlight.js/lib/languages/basic.js'
import bnf from 'highlight.js/lib/languages/bnf.js'
import brainfuck from 'highlight.js/lib/languages/brainfuck.js'
import l23 from 'highlight.js/lib/languages/c-like.js'
import c from 'highlight.js/lib/languages/c.js'
import cal from 'highlight.js/lib/languages/cal.js'
import capnproto from 'highlight.js/lib/languages/capnproto.js'
import ceylon from 'highlight.js/lib/languages/ceylon.js'
import clean from 'highlight.js/lib/languages/clean.js'
import clojure from 'highlight.js/lib/languages/clojure.js'
import l30 from 'highlight.js/lib/languages/clojure-repl.js'
import l29 from 'highlight.js/lib/languages/clojure-repl.js'
import cmake from 'highlight.js/lib/languages/cmake.js'
import coffeescript from 'highlight.js/lib/languages/coffeescript.js'
import coq from 'highlight.js/lib/languages/coq.js'
Expand Down Expand Up @@ -57,7 +56,7 @@ import elixir from 'highlight.js/lib/languages/elixir.js'
import elm from 'highlight.js/lib/languages/elm.js'
import ruby from 'highlight.js/lib/languages/ruby.js'
import erb from 'highlight.js/lib/languages/erb.js'
import l58 from 'highlight.js/lib/languages/erlang-repl.js'
import l57 from 'highlight.js/lib/languages/erlang-repl.js'
import erlang from 'highlight.js/lib/languages/erlang.js'
import excel from 'highlight.js/lib/languages/excel.js'
import fix from 'highlight.js/lib/languages/fix.js'
Expand All @@ -79,7 +78,6 @@ import handlebars from 'highlight.js/lib/languages/handlebars.js'
import haskell from 'highlight.js/lib/languages/haskell.js'
import haxe from 'highlight.js/lib/languages/haxe.js'
import hsp from 'highlight.js/lib/languages/hsp.js'
import htmlbars from 'highlight.js/lib/languages/htmlbars.js'
import http from 'highlight.js/lib/languages/http.js'
import hy from 'highlight.js/lib/languages/hy.js'
import inform7 from 'highlight.js/lib/languages/inform7.js'
Expand All @@ -88,10 +86,10 @@ import irpf90 from 'highlight.js/lib/languages/irpf90.js'
import isbl from 'highlight.js/lib/languages/isbl.js'
import java from 'highlight.js/lib/languages/java.js'
import javascript from 'highlight.js/lib/languages/javascript.js'
import l89 from 'highlight.js/lib/languages/jboss-cli.js'
import l87 from 'highlight.js/lib/languages/jboss-cli.js'
import json from 'highlight.js/lib/languages/json.js'
import julia from 'highlight.js/lib/languages/julia.js'
import l92 from 'highlight.js/lib/languages/julia-repl.js'
import l90 from 'highlight.js/lib/languages/julia-repl.js'
import kotlin from 'highlight.js/lib/languages/kotlin.js'
import lasso from 'highlight.js/lib/languages/lasso.js'
import latex from 'highlight.js/lib/languages/latex.js'
Expand Down Expand Up @@ -120,7 +118,7 @@ import n1ql from 'highlight.js/lib/languages/n1ql.js'
import nginx from 'highlight.js/lib/languages/nginx.js'
import nim from 'highlight.js/lib/languages/nim.js'
import nix from 'highlight.js/lib/languages/nix.js'
import l121 from 'highlight.js/lib/languages/node-repl.js'
import l119 from 'highlight.js/lib/languages/node-repl.js'
import nsis from 'highlight.js/lib/languages/nsis.js'
import objectivec from 'highlight.js/lib/languages/objectivec.js'
import ocaml from 'highlight.js/lib/languages/ocaml.js'
Expand All @@ -130,7 +128,7 @@ import parser3 from 'highlight.js/lib/languages/parser3.js'
import pf from 'highlight.js/lib/languages/pf.js'
import pgsql from 'highlight.js/lib/languages/pgsql.js'
import php from 'highlight.js/lib/languages/php.js'
import l131 from 'highlight.js/lib/languages/php-template.js'
import l129 from 'highlight.js/lib/languages/php-template.js'
import plaintext from 'highlight.js/lib/languages/plaintext.js'
import pony from 'highlight.js/lib/languages/pony.js'
import powershell from 'highlight.js/lib/languages/powershell.js'
Expand All @@ -142,7 +140,7 @@ import protobuf from 'highlight.js/lib/languages/protobuf.js'
import puppet from 'highlight.js/lib/languages/puppet.js'
import purebasic from 'highlight.js/lib/languages/purebasic.js'
import python from 'highlight.js/lib/languages/python.js'
import l143 from 'highlight.js/lib/languages/python-repl.js'
import l141 from 'highlight.js/lib/languages/python-repl.js'
import q from 'highlight.js/lib/languages/q.js'
import qml from 'highlight.js/lib/languages/qml.js'
import r from 'highlight.js/lib/languages/r.js'
Expand All @@ -163,7 +161,6 @@ import smali from 'highlight.js/lib/languages/smali.js'
import smalltalk from 'highlight.js/lib/languages/smalltalk.js'
import sml from 'highlight.js/lib/languages/sml.js'
import sqf from 'highlight.js/lib/languages/sqf.js'
import sqlMore from 'highlight.js/lib/languages/sql_more.js'
import sql from 'highlight.js/lib/languages/sql.js'
import stan from 'highlight.js/lib/languages/stan.js'
import stata from 'highlight.js/lib/languages/stata.js'
Expand All @@ -182,7 +179,7 @@ import typescript from 'highlight.js/lib/languages/typescript.js'
import vala from 'highlight.js/lib/languages/vala.js'
import vbnet from 'highlight.js/lib/languages/vbnet.js'
import vbscript from 'highlight.js/lib/languages/vbscript.js'
import l183 from 'highlight.js/lib/languages/vbscript-html.js'
import l180 from 'highlight.js/lib/languages/vbscript-html.js'
import verilog from 'highlight.js/lib/languages/verilog.js'
import vhdl from 'highlight.js/lib/languages/vhdl.js'
import vim from 'highlight.js/lib/languages/vim.js'
Expand Down Expand Up @@ -214,14 +211,13 @@ lowlight.registerLanguage('bash', bash)
lowlight.registerLanguage('basic', basic)
lowlight.registerLanguage('bnf', bnf)
lowlight.registerLanguage('brainfuck', brainfuck)
lowlight.registerLanguage('c-like', l23)
lowlight.registerLanguage('c', c)
lowlight.registerLanguage('cal', cal)
lowlight.registerLanguage('capnproto', capnproto)
lowlight.registerLanguage('ceylon', ceylon)
lowlight.registerLanguage('clean', clean)
lowlight.registerLanguage('clojure', clojure)
lowlight.registerLanguage('clojure-repl', l30)
lowlight.registerLanguage('clojure-repl', l29)
lowlight.registerLanguage('cmake', cmake)
lowlight.registerLanguage('coffeescript', coffeescript)
lowlight.registerLanguage('coq', coq)
Expand Down Expand Up @@ -249,7 +245,7 @@ lowlight.registerLanguage('elixir', elixir)
lowlight.registerLanguage('elm', elm)
lowlight.registerLanguage('ruby', ruby)
lowlight.registerLanguage('erb', erb)
lowlight.registerLanguage('erlang-repl', l58)
lowlight.registerLanguage('erlang-repl', l57)
lowlight.registerLanguage('erlang', erlang)
lowlight.registerLanguage('excel', excel)
lowlight.registerLanguage('fix', fix)
Expand All @@ -271,7 +267,6 @@ lowlight.registerLanguage('handlebars', handlebars)
lowlight.registerLanguage('haskell', haskell)
lowlight.registerLanguage('haxe', haxe)
lowlight.registerLanguage('hsp', hsp)
lowlight.registerLanguage('htmlbars', htmlbars)
lowlight.registerLanguage('http', http)
lowlight.registerLanguage('hy', hy)
lowlight.registerLanguage('inform7', inform7)
Expand All @@ -280,10 +275,10 @@ lowlight.registerLanguage('irpf90', irpf90)
lowlight.registerLanguage('isbl', isbl)
lowlight.registerLanguage('java', java)
lowlight.registerLanguage('javascript', javascript)
lowlight.registerLanguage('jboss-cli', l89)
lowlight.registerLanguage('jboss-cli', l87)
lowlight.registerLanguage('json', json)
lowlight.registerLanguage('julia', julia)
lowlight.registerLanguage('julia-repl', l92)
lowlight.registerLanguage('julia-repl', l90)
lowlight.registerLanguage('kotlin', kotlin)
lowlight.registerLanguage('lasso', lasso)
lowlight.registerLanguage('latex', latex)
Expand Down Expand Up @@ -312,7 +307,7 @@ lowlight.registerLanguage('n1ql', n1ql)
lowlight.registerLanguage('nginx', nginx)
lowlight.registerLanguage('nim', nim)
lowlight.registerLanguage('nix', nix)
lowlight.registerLanguage('node-repl', l121)
lowlight.registerLanguage('node-repl', l119)
lowlight.registerLanguage('nsis', nsis)
lowlight.registerLanguage('objectivec', objectivec)
lowlight.registerLanguage('ocaml', ocaml)
Expand All @@ -322,7 +317,7 @@ lowlight.registerLanguage('parser3', parser3)
lowlight.registerLanguage('pf', pf)
lowlight.registerLanguage('pgsql', pgsql)
lowlight.registerLanguage('php', php)
lowlight.registerLanguage('php-template', l131)
lowlight.registerLanguage('php-template', l129)
lowlight.registerLanguage('plaintext', plaintext)
lowlight.registerLanguage('pony', pony)
lowlight.registerLanguage('powershell', powershell)
Expand All @@ -334,7 +329,7 @@ lowlight.registerLanguage('protobuf', protobuf)
lowlight.registerLanguage('puppet', puppet)
lowlight.registerLanguage('purebasic', purebasic)
lowlight.registerLanguage('python', python)
lowlight.registerLanguage('python-repl', l143)
lowlight.registerLanguage('python-repl', l141)
lowlight.registerLanguage('q', q)
lowlight.registerLanguage('qml', qml)
lowlight.registerLanguage('r', r)
Expand All @@ -355,7 +350,6 @@ lowlight.registerLanguage('smali', smali)
lowlight.registerLanguage('smalltalk', smalltalk)
lowlight.registerLanguage('sml', sml)
lowlight.registerLanguage('sqf', sqf)
lowlight.registerLanguage('sql_more', sqlMore)
lowlight.registerLanguage('sql', sql)
lowlight.registerLanguage('stan', stan)
lowlight.registerLanguage('stata', stata)
Expand All @@ -374,7 +368,7 @@ lowlight.registerLanguage('typescript', typescript)
lowlight.registerLanguage('vala', vala)
lowlight.registerLanguage('vbnet', vbnet)
lowlight.registerLanguage('vbscript', vbscript)
lowlight.registerLanguage('vbscript-html', l183)
lowlight.registerLanguage('vbscript-html', l180)
lowlight.registerLanguage('verilog', verilog)
lowlight.registerLanguage('vhdl', vhdl)
lowlight.registerLanguage('vim', vim)
Expand Down
12 changes: 9 additions & 3 deletions lib/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
* @typedef {import('hast').Element} Element
* @typedef {import('hast').Text} Text
*
* @typedef {import('highlight.js').HighlightResult} HighlightResult
* @typedef {import('highlight.js').LanguageFn} LanguageFn
* @typedef {import('highlight.js').HLJSOptions} HLJSOptions
* @typedef {import('highlight.js').Emitter} Emitter
*
* @typedef {Omit<Element, 'children'> & {children: Array.<LowlightElement|Text>}} LowlightElement
* @typedef {Omit<Root, 'children'> & {children: Array.<LowlightElement|Text>}} LowlightRoot
*
Expand Down Expand Up @@ -76,7 +81,8 @@ function highlight(language, value, options = {}) {
return {
relevance: result.relevance,
language: result.language,
value: result.emitter.root.children
// @ts-ignore types wrong.
value: result._emitter.root.children
}
}

Expand Down Expand Up @@ -260,12 +266,12 @@ class HastEmitter {
* @param {string} name
*/
openNode(name) {
var className = this.options.classPrefix + name
var className = name.split('.').map((d) => this.options.classPrefix + d)
var current = this.stack[this.stack.length - 1]
var child = {
type: 'element',
tagName: 'span',
properties: {className: [className]},
properties: {className},
children: []
}

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"dependencies": {
"@types/hast": "^2.0.0",
"fault": "^2.0.0",
"highlight.js": "~10.7.0"
"highlight.js": "~11.0.0-alpha0"
},
"devDependencies": {
"@types/tape": "^4.0.0",
Expand Down
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ auto-detection.
Perfect for [React][], [VDOM][], and others.

Lowlight is built to work with all syntaxes supported by [highlight.js][],
that’s [191 languages][names] (and all 94 themes).
that’s [188 languages][names] (and all 94 themes).

Want to use [Prism][] instead?
Try [`refractor`][refractor]!
Expand Down
2 changes: 1 addition & 1 deletion test/fixture/js-class/output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<span class="hljs-keyword">var</span> c = <span class="hljs-built_in">Symbol</span>(<span class="hljs-string">'cost'</span>);
<span class="hljs-built_in">this</span>[c] = cost;

<span class="hljs-built_in">this</span>.intro = <span class="hljs-string">`This is a car runs at
<span class="hljs-built_in">this</span>.<span class="hljs-property">intro</span> = <span class="hljs-string">`This is a car runs at
<span class="hljs-subst">${speed}</span>.`</span>;
}
}
14 changes: 7 additions & 7 deletions test/fixture/js-default-parameters/output.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">visibleTodoFilter</span>(<span class="hljs-params">state = <span class="hljs-string">'watch'</span>, action</span>) </span>{
<span class="hljs-keyword">switch</span> (action.type) {
<span class="hljs-keyword">switch</span> (action.<span class="hljs-property">type</span>) {
<span class="hljs-keyword">case</span> <span class="hljs-string">'CHANGE_VISIBLE_FILTER'</span>:
<span class="hljs-keyword">return</span> action.filter;
<span class="hljs-keyword">return</span> action.<span class="hljs-property">filter</span>;
<span class="hljs-keyword">default</span>:
<span class="hljs-keyword">return</span> state;
}
}

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">todos</span>(<span class="hljs-params">state, action</span>) </span>{
<span class="hljs-keyword">switch</span> (action.type) {
<span class="hljs-keyword">switch</span> (action.<span class="hljs-property">type</span>) {
<span class="hljs-keyword">case</span> <span class="hljs-string">'ADD_TODO'</span>:
<span class="hljs-keyword">return</span> [...state, {
<span class="hljs-attr">text</span>: action.text,
<span class="hljs-attr">text</span>: action.<span class="hljs-property">text</span>,
<span class="hljs-attr">completed</span>: <span class="hljs-literal">false</span>
}];
<span class="hljs-keyword">case</span> <span class="hljs-string">'COMPLETE_TODO'</span>:
<span class="hljs-keyword">return</span> [
...state.slice(<span class="hljs-number">0</span>, action.index),
<span class="hljs-built_in">Object</span>.assign({}, state[action.index], {
...state.<span class="hljs-property">slice</span>(<span class="hljs-number">0</span>, action.<span class="hljs-property">index</span>),
<span class="hljs-built_in">Object</span>.<span class="hljs-property">assign</span>({}, state[action.<span class="hljs-property">index</span>], {
<span class="hljs-attr">completed</span>: <span class="hljs-literal">true</span>
}),
...state.slice(action.index + <span class="hljs-number">1</span>)
...state.<span class="hljs-property">slice</span>(action.<span class="hljs-property">index</span> + <span class="hljs-number">1</span>)
]
<span class="hljs-attr">default</span>:
<span class="hljs-keyword">return</span> state;
Expand Down
4 changes: 2 additions & 2 deletions test/fixture/js-keywords/output.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">$initHighlight</span>(<span class="hljs-params">block, cls</span>) </span>{
<span class="hljs-keyword">try</span> {
<span class="hljs-keyword">if</span> (cls.search(<span class="hljs-regexp">/\bno\-highlight\b/</span>) != -<span class="hljs-number">1</span>)
<span class="hljs-keyword">if</span> (cls.<span class="hljs-property">search</span>(<span class="hljs-regexp">/\bno\-highlight\b/</span>) != -<span class="hljs-number">1</span>)
<span class="hljs-keyword">return</span> process(block, <span class="hljs-literal">true</span>, <span class="hljs-number">0x0F</span>) +
<span class="hljs-string">' class=""'</span>;
} <span class="hljs-keyword">catch</span> (e) {
<span class="hljs-comment">/* handle exception */</span>
}
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">var</span> i = <span class="hljs-number">0</span> / <span class="hljs-number">2</span>; i &lt; classes.length; i++) {
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">var</span> i = <span class="hljs-number">0</span> / <span class="hljs-number">2</span>; i &lt; classes.<span class="hljs-property">length</span>; i++) {
<span class="hljs-keyword">if</span> (checkCondition(classes[i]) === <span class="hljs-literal">undefined</span>)
<span class="hljs-keyword">return</span> <span class="hljs-regexp">/\d+[\s/]/g</span>;
}
Expand Down
6 changes: 3 additions & 3 deletions test/fixture/rust-traits/output.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<span class="hljs-function"><span class="hljs-keyword">fn</span> <span class="hljs-title">sqr</span></span>(i: <span class="hljs-built_in">i32</span>) { i * i }
<span class="hljs-class"><span class="hljs-keyword">trait</span> <span class="hljs-title">Minimum</span></span> : <span class="hljs-built_in">Copy</span> {}
<span class="hljs-keyword">pub</span> <span class="hljs-class"><span class="hljs-keyword">trait</span> <span class="hljs-title">Builder</span></span> <span class="hljs-keyword">where</span> <span class="hljs-keyword">Self</span>: <span class="hljs-built_in">Sized</span> + <span class="hljs-built_in">Iterator</span>&lt;Item=Event> {}
<span class="hljs-keyword">fn</span> <span class="hljs-title hljs-function">sqr</span>(i: <span class="hljs-type">i32</span>) { i * i }
<span class="hljs-keyword">trait</span> <span class="hljs-title hljs-class">Minimum</span> : <span class="hljs-built_in">Copy</span> {}
<span class="hljs-keyword">pub</span> <span class="hljs-keyword">trait</span> <span class="hljs-title hljs-class">Builder</span> <span class="hljs-keyword">where</span> <span class="hljs-keyword">Self</span>: <span class="hljs-built_in">Sized</span> + <span class="hljs-built_in">Iterator</span>&lt;Item=Event> {}
6 changes: 3 additions & 3 deletions test/fixture/rust-variables/output.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<span class="hljs-keyword">let</span> foo;
<span class="hljs-keyword">let</span> <span class="hljs-keyword">mut</span> bar;
<span class="hljs-keyword">let</span> _foo_bar;
<span class="hljs-keyword">let</span> <span class="hljs-keyword"></span><span class="hljs-variable">foo</span>;
<span class="hljs-keyword">let</span> <span class="hljs-keyword">mut </span><span class="hljs-variable">bar</span>;
<span class="hljs-keyword">let</span> <span class="hljs-keyword"></span><span class="hljs-variable">_foo_bar</span>;
Loading

0 comments on commit 2c1ec1f

Please sign in to comment.