@arborium/arborium 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/arborium.iife.js +2 -2
- package/dist/arborium.iife.js.map +1 -1
- package/dist/arborium.js +1066 -196
- package/dist/arborium.js.map +1 -1
- package/dist/loader.d.ts +2 -1
- package/dist/plugins-manifest.d.ts +14 -0
- package/dist/themes/base-rustdoc.css +429 -0
- package/dist/themes/rustdoc-ayu.css +72 -0
- package/dist/themes/rustdoc-dark.css +72 -0
- package/dist/themes/rustdoc-light.css +72 -0
- package/dist/types.d.ts +1 -1
- package/package.json +7 -6
- package/dist/themes/base-docsrs.css +0 -74
- package/dist/themes/docsrs-ayu.css +0 -72
- package/dist/themes/docsrs-dark.css +0 -72
- package/dist/themes/docsrs-light.css +0 -72
package/dist/arborium.iife.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var arborium=(function(v){"use strict";class R extends Error{constructor(e){super(e),this.name="WasiError"}}class E{write(e){return BigInt(0)}blockingWriteAndFlush(e){}blockingFlush(){}checkWrite(){return BigInt(1048576)}subscribe(){}}class B{read(e){return new Uint8Array(0)}blockingRead(e){return new Uint8Array(0)}subscribe(){}}function Z(){const t=new E,e=new E,s=new B,n={getEnvironment:()=>[],getArguments:()=>[]},r={exit:i=>{if(i.tag==="err")throw new R(`WASI exit with error: ${i.val}`)}},o={getStdin:()=>s},c={getStdout:()=>t},u={getStderr:()=>e},y={now:()=>{const i=Date.now();return{seconds:BigInt(Math.floor(i/1e3)),nanoseconds:i%1e3*1e6}},resolution:()=>({seconds:BigInt(0),nanoseconds:1e6})},p={Descriptor:class{},DirectoryEntryStream:class{},filesystemErrorCode:()=>null},m={getDirectories:()=>[]},a={Error:R},l={InputStream:B,OutputStream:E},g={getRandomBytes:i=>{const d=new Uint8Array(Number(i));return crypto.getRandomValues(d),d},getRandomU64:()=>{const i=new Uint8Array(8);return crypto.getRandomValues(i),new DataView(i.buffer).getBigUint64(0,!0)}};return{"wasi:cli/environment":n,"wasi:cli/exit":r,"wasi:cli/stdin":o,"wasi:cli/stdout":c,"wasi:cli/stderr":u,"wasi:clocks/wall-clock":y,"wasi:filesystem/types":p,"wasi:filesystem/preopens":m,"wasi:io/error":a,"wasi:io/streams":l,"wasi:random/random":g,"wasi:cli/environment@0.2.3":n,"wasi:cli/exit@0.2.3":r,"wasi:cli/stdin@0.2.3":o,"wasi:cli/stdout@0.2.3":c,"wasi:cli/stderr@0.2.3":u,"wasi:clocks/wall-clock@0.2.3":y,"wasi:filesystem/types@0.2.3":p,"wasi:filesystem/preopens@0.2.3":m,"wasi:io/error@0.2.3":a,"wasi:io/streams@0.2.3":l,"wasi:random/random@0.2.3":g}}const tt={"arborium:grammar/types@0.1.0":{}},et={manual:!1,theme:"one-dark",selector:"pre code",cdn:"jsdelivr",version:"1",pluginsUrl:"https://arborium.bearcove.eu/plugins.json",hostUrl:""};let k=null,$=null,f={...et};const j=new Map;let L=null,C=new Set;async function st(){if(L)return;console.debug(`[arborium] Loading plugins manifest: ${f.pluginsUrl}`);const t=await fetch(f.pluginsUrl);if(!t.ok)throw new Error(`Failed to load plugins.json: ${t.status}`);L=await t.json(),C=new Set(L.entries.map(e=>e.language)),console.debug(`[arborium] Available languages: ${Array.from(C).join(", ")}`)}async function U(t){const e=j.get(t);if(e)return console.debug(`[arborium] Grammar '${t}' found in cache`),e;await st();const s=L?.entries.find(n=>n.language===t);if(!s)return console.debug(`[arborium] Grammar '${t}' not found in manifest`),null;try{const n=s.cdn_js,r=n.substring(0,n.lastIndexOf("/"));console.debug(`[arborium] Loading grammar '${t}' from ${n}`);const o=await import(n),c=async l=>{const g=`${r}/${l}`,i=await fetch(g);if(!i.ok)throw new Error(`Failed to fetch WASM ${l}: ${i.status}`);const d=await i.arrayBuffer();return WebAssembly.compile(d)},y={...Z(),...tt},p=await o.instantiate(c,y),m=p.plugin||p["arborium:grammar/plugin@0.1.0"];if(!m)return console.error(`Grammar '${t}' missing plugin interface`),null;const a={languageId:t,injectionLanguages:m.injectionLanguages?.()??[],parse:l=>{const g=m.createSession();try{m.setText(g,l);const i=m.parse(g);if(i.tag==="err"){const ht=i.val;return console.error(`[arborium] Parse error: ${ht?.message}`),{spans:[],injections:[]}}const d=i.tag==="ok"?i.val:i;if(!d||typeof d!="object")return console.error("[arborium] Unexpected parse result:",i),{spans:[],injections:[]};const X=d;return{spans:X.spans||[],injections:X.injections||[]}}finally{m.freeSession(g)}}};return j.set(t,a),console.debug(`[arborium] Grammar '${t}' loaded successfully`),a}catch(n){return console.error(`[arborium] Failed to load grammar '${t}':`,n),null}}const T=new Map;let nt=1;function rt(){window.arboriumHost={isLanguageAvailable(t){return C.has(t)||j.has(t)},async loadGrammar(t){const e=await U(t);if(!e)return 0;for(const[n,r]of T)if(r===e)return n;const s=nt++;return T.set(s,e),s},parse(t,e){const s=T.get(t);return s?s.parse(e):{spans:[],injections:[]}}}}function ot(){if(f.hostUrl)return f.hostUrl;const t=f.cdn,e=f.version;let s;t==="jsdelivr"?s="https://cdn.jsdelivr.net/npm":t==="unpkg"?s="https://unpkg.com":s=t;const n=e==="latest"?"":`@${e}`;return`${s}/@arborium/arborium${n}/dist`}async function it(){return k||$||($=(async()=>{rt();const t=ot(),e=`${t}/arborium_host.js`,s=`${t}/arborium_host_bg.wasm`;console.debug(`[arborium] Loading host from ${e}`);try{const n=await import(e);return await n.default(s),k={highlight:n.highlight,isLanguageAvailable:n.isLanguageAvailable},console.debug("[arborium] Host loaded successfully"),k}catch(n){return console.error("[arborium] Failed to load host:",n),null}})(),$)}async function M(t,e,s){const n=await it();if(n)try{return n.highlight(t,e)}catch(c){console.warn("Host highlight failed, falling back to JS:",c)}const r=await U(t);if(!r)return S(e);const o=r.parse(e);return P(e,o.spans)}async function W(t,e){const s=await U(t);return s?{languageId:()=>s.languageId,injectionLanguages:()=>s.injectionLanguages,highlight:async n=>{const r=s.parse(n);return P(n,r.spans)},parse:n=>s.parse(n),dispose:()=>{}}:null}function P(t,e){const s=[...e].sort((o,c)=>o.start-c.start);let n="",r=0;for(const o of s){if(o.start<r)continue;o.start>r&&(n+=S(t.slice(r,o.start)));const c=at(o.capture),u=S(t.slice(o.start,o.end));c?n+=`<a-${c}>${u}</a-${c}>`:n+=u,r=o.end}return r<t.length&&(n+=S(t.slice(r))),n}function at(t){return t.startsWith("keyword")||t==="include"||t==="conditional"?"k":t.startsWith("function")||t.startsWith("method")?"f":t.startsWith("string")||t==="character"?"s":t.startsWith("comment")?"c":t.startsWith("type")?"t":t.startsWith("variable")?"v":t.startsWith("number")||t==="float"?"n":t.startsWith("operator")?"o":t.startsWith("punctuation")?"p":t.startsWith("tag")?"tg":t.startsWith("attribute")?"at":null}function S(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function x(t){return t?{...f,...t}:{...f}}function F(t){f={...f,...t}}const ct=[[/^#!.*\bpython[23]?\b/,"python"],[/^#!.*\bnode\b/,"javascript"],[/^#!.*\bdeno\b/,"typescript"],[/^#!.*\bbun\b/,"typescript"],[/^#!.*\bruby\b/,"ruby"],[/^#!.*\bperl\b/,"perl"],[/^#!.*\bphp\b/,"php"],[/^#!.*\bbash\b/,"bash"],[/^#!.*\bzsh\b/,"zsh"],[/^#!.*\bsh\b/,"bash"],[/^#!.*\blua\b/,"lua"],[/^#!.*\bawk\b/,"awk"]],lt=[[/\b(fn|impl|trait|pub\s+fn|let\s+mut|&mut|->)\b/,"rust"],[/\b(func|package\s+\w+|import\s+\(|go\s+func|chan\s+\w+)\b/,"go"],[/\b(def\s+\w+\s*\(|import\s+\w+|from\s+\w+\s+import|class\s+\w+:)\b/,"python"],[/:\s*(string|number|boolean|void)\b|\binterface\s+\w+\s*\{/,"typescript"],[/\b(const|let|var)\s+\w+\s*=|function\s+\w+\s*\(|=>\s*\{/,"javascript"],[/\b(def\s+\w+|end\b|do\s*\|.*\||puts\s+|require\s+['"])\b/,"ruby"],[/\b(public\s+class|private\s+\w+|System\.out\.println)\b/,"java"],[/\b(#include\s*<|std::|template\s*<|nullptr|cout\s*<<)\b/,"cpp"],[/\b(#include\s*[<"]|printf\s*\(|int\s+main\s*\(|void\s+\w+\s*\()\b/,"c"],[/\b(namespace\s+\w+|using\s+System|public\s+static\s+void)\b/,"c-sharp"],[/<\?php|\$\w+\s*=/,"php"],[/\b(func\s+\w+|var\s+\w+:\s*\w+|let\s+\w+:\s*\w+|@objc)\b/,"swift"],[/\b(fun\s+\w+|val\s+\w+|var\s+\w+:|data\s+class)\b/,"kotlin"],[/\b(def\s+\w+|val\s+\w+|var\s+\w+|object\s+\w+|case\s+class)\b/,"scala"],[/\b(module\s+\w+|import\s+qualified|data\s+\w+\s*=|::\s*\w+\s*->)\b/,"haskell"],[/\b(defmodule\s+\w+|def\s+\w+|defp\s+\w+|\|>)\b/,"elixir"],[/\b(local\s+\w+\s*=|function\s+\w+\.\w+|require\s*\()\b/,"lua"],[/\b(SELECT\s+.*\s+FROM|INSERT\s+INTO|CREATE\s+TABLE|ALTER\s+TABLE)\b/i,"sql"],[/\b(if\s+\[\s*|then\b|fi\b|echo\s+["']|export\s+\w+=)\b/,"bash"],[/^\s*[\w-]+:\s*[\w\-"'[{]|^---\s*$/,"yaml"],[/^\s*\{[\s\S]*"[\w-]+":\s*/,"json"],[/^\s*\[[\w.-]+\]\s*$|^\s*\w+\s*=\s*["'\d\[]/,"toml"],[/<(!DOCTYPE|html|head|body|div|span|p|a\s)/i,"html"],[/^\s*[\w.#@][\w\s,#.:>+~-]*\{[^}]*\}|@media\s|@import\s/,"css"],[/^#{1,6}\s+\w|^\s*[-*+]\s+\w|^\s*\d+\.\s+\w|```\w*\n/,"markdown"],[/<\?xml|<[\w:-]+\s+xmlns/,"xml"],[/^FROM\s+\w+|^RUN\s+|^COPY\s+|^ENTRYPOINT\s+/m,"dockerfile"],[/\b(server\s*\{|location\s+[\/~]|proxy_pass\s+)\b/,"nginx"],[/\b(pub\s+fn|const\s+\w+\s*=|@import\(|comptime)\b/,"zig"]];function H(t){const e=t.split(`
|
|
2
|
-
`)[0];for(const[s,n]of
|
|
1
|
+
var arborium=(function(_){"use strict";class T extends Error{constructor(r){super(r),this.name="WasiError"}}class L{write(r){return BigInt(0)}blockingWriteAndFlush(r){}blockingFlush(){}checkWrite(){return BigInt(1048576)}subscribe(){}}class I{read(r){return new Uint8Array(0)}blockingRead(r){return new Uint8Array(0)}subscribe(){}}function aa(){const a=new L,r=new L,s=new I,n={getEnvironment:()=>[],getArguments:()=>[]},m={exit:o=>{if(o.tag==="err")throw new T(`WASI exit with error: ${o.val}`)}},e={getStdin:()=>s},l={getStdout:()=>a},i={getStderr:()=>r},v={now:()=>{const o=Date.now();return{seconds:BigInt(Math.floor(o/1e3)),nanoseconds:o%1e3*1e6}},resolution:()=>({seconds:BigInt(0),nanoseconds:1e6})},h={Descriptor:class{},DirectoryEntryStream:class{},filesystemErrorCode:()=>null},g={getDirectories:()=>[]},t={Error:T},c={InputStream:I,OutputStream:L},u={getRandomBytes:o=>{const d=new Uint8Array(Number(o));return crypto.getRandomValues(d),d},getRandomU64:()=>{const o=new Uint8Array(8);return crypto.getRandomValues(o),new DataView(o.buffer).getBigUint64(0,!0)}};return{"wasi:cli/environment":n,"wasi:cli/exit":m,"wasi:cli/stdin":e,"wasi:cli/stdout":l,"wasi:cli/stderr":i,"wasi:clocks/wall-clock":v,"wasi:filesystem/types":h,"wasi:filesystem/preopens":g,"wasi:io/error":t,"wasi:io/streams":c,"wasi:random/random":u,"wasi:cli/environment@0.2.3":n,"wasi:cli/exit@0.2.3":m,"wasi:cli/stdin@0.2.3":e,"wasi:cli/stdout@0.2.3":l,"wasi:cli/stderr@0.2.3":i,"wasi:clocks/wall-clock@0.2.3":v,"wasi:filesystem/types@0.2.3":h,"wasi:filesystem/preopens@0.2.3":g,"wasi:io/error@0.2.3":t,"wasi:io/streams@0.2.3":c,"wasi:random/random@0.2.3":u}}const ra={"arborium:grammar/types@0.1.0":{}},M={entries:[{language:"ada",package:"@arborium/ada",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ada@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ada@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/ada/npm/grammar.js",local_wasm:"/langs/group-moss/ada/npm/grammar.core.wasm"},{language:"agda",package:"@arborium/agda",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/agda@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/agda@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/agda/npm/grammar.js",local_wasm:"/langs/group-fern/agda/npm/grammar.core.wasm"},{language:"asciidoc",package:"@arborium/asciidoc",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/asciidoc@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/asciidoc@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/asciidoc/npm/grammar.js",local_wasm:"/langs/group-willow/asciidoc/npm/grammar.core.wasm"},{language:"asm",package:"@arborium/asm",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/asm@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/asm@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/asm/npm/grammar.js",local_wasm:"/langs/group-birch/asm/npm/grammar.core.wasm"},{language:"awk",package:"@arborium/awk",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/awk@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/awk@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/awk/npm/grammar.js",local_wasm:"/langs/group-hazel/awk/npm/grammar.core.wasm"},{language:"bash",package:"@arborium/bash",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/bash@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/bash@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/bash/npm/grammar.js",local_wasm:"/langs/group-hazel/bash/npm/grammar.core.wasm"},{language:"batch",package:"@arborium/batch",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/batch@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/batch@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/batch/npm/grammar.js",local_wasm:"/langs/group-hazel/batch/npm/grammar.core.wasm"},{language:"c",package:"@arborium/c",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/c@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/c@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/c/npm/grammar.js",local_wasm:"/langs/group-birch/c/npm/grammar.core.wasm"},{language:"c-sharp",package:"@arborium/c-sharp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/c-sharp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/c-sharp@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/c-sharp/npm/grammar.js",local_wasm:"/langs/group-sage/c-sharp/npm/grammar.core.wasm"},{language:"caddy",package:"@arborium/caddy",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/caddy@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/caddy@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/caddy/npm/grammar.js",local_wasm:"/langs/group-maple/caddy/npm/grammar.core.wasm"},{language:"capnp",package:"@arborium/capnp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/capnp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/capnp@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/capnp/npm/grammar.js",local_wasm:"/langs/group-pine/capnp/npm/grammar.core.wasm"},{language:"clojure",package:"@arborium/clojure",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/clojure@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/clojure@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/clojure/npm/grammar.js",local_wasm:"/langs/group-cedar/clojure/npm/grammar.core.wasm"},{language:"cmake",package:"@arborium/cmake",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/cmake@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/cmake@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/cmake/npm/grammar.js",local_wasm:"/langs/group-maple/cmake/npm/grammar.core.wasm"},{language:"commonlisp",package:"@arborium/commonlisp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/commonlisp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/commonlisp@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/commonlisp/npm/grammar.js",local_wasm:"/langs/group-fern/commonlisp/npm/grammar.core.wasm"},{language:"cpp",package:"@arborium/cpp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/cpp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/cpp@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/cpp/npm/grammar.js",local_wasm:"/langs/group-birch/cpp/npm/grammar.core.wasm"},{language:"css",package:"@arborium/css",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/css@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/css@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/css/npm/grammar.js",local_wasm:"/langs/group-acorn/css/npm/grammar.core.wasm"},{language:"d",package:"@arborium/d",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/d@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/d@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/d/npm/grammar.js",local_wasm:"/langs/group-birch/d/npm/grammar.core.wasm"},{language:"dart",package:"@arborium/dart",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/dart@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/dart@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/dart/npm/grammar.js",local_wasm:"/langs/group-pine/dart/npm/grammar.core.wasm"},{language:"devicetree",package:"@arborium/devicetree",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/devicetree@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/devicetree@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/devicetree/npm/grammar.js",local_wasm:"/langs/group-pine/devicetree/npm/grammar.core.wasm"},{language:"diff",package:"@arborium/diff",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/diff@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/diff@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/diff/npm/grammar.js",local_wasm:"/langs/group-willow/diff/npm/grammar.core.wasm"},{language:"dockerfile",package:"@arborium/dockerfile",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/dockerfile@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/dockerfile@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/dockerfile/npm/grammar.js",local_wasm:"/langs/group-maple/dockerfile/npm/grammar.core.wasm"},{language:"dot",package:"@arborium/dot",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/dot@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/dot@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/dot/npm/grammar.js",local_wasm:"/langs/group-maple/dot/npm/grammar.core.wasm"},{language:"elisp",package:"@arborium/elisp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/elisp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/elisp@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/elisp/npm/grammar.js",local_wasm:"/langs/group-sage/elisp/npm/grammar.core.wasm"},{language:"elixir",package:"@arborium/elixir",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/elixir@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/elixir@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/elixir/npm/grammar.js",local_wasm:"/langs/group-fern/elixir/npm/grammar.core.wasm"},{language:"elm",package:"@arborium/elm",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/elm@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/elm@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/elm/npm/grammar.js",local_wasm:"/langs/group-fern/elm/npm/grammar.core.wasm"},{language:"erlang",package:"@arborium/erlang",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/erlang@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/erlang@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/erlang/npm/grammar.js",local_wasm:"/langs/group-fern/erlang/npm/grammar.core.wasm"},{language:"fish",package:"@arborium/fish",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/fish@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/fish@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/fish/npm/grammar.js",local_wasm:"/langs/group-hazel/fish/npm/grammar.core.wasm"},{language:"fsharp",package:"@arborium/fsharp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/fsharp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/fsharp@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/fsharp/npm/grammar.js",local_wasm:"/langs/group-sage/fsharp/npm/grammar.core.wasm"},{language:"gleam",package:"@arborium/gleam",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/gleam@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/gleam@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/gleam/npm/grammar.js",local_wasm:"/langs/group-fern/gleam/npm/grammar.core.wasm"},{language:"glsl",package:"@arborium/glsl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/glsl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/glsl@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/glsl/npm/grammar.js",local_wasm:"/langs/group-moss/glsl/npm/grammar.core.wasm"},{language:"go",package:"@arborium/go",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/go@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/go@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/go/npm/grammar.js",local_wasm:"/langs/group-birch/go/npm/grammar.core.wasm"},{language:"graphql",package:"@arborium/graphql",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/graphql@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/graphql@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/graphql/npm/grammar.js",local_wasm:"/langs/group-maple/graphql/npm/grammar.core.wasm"},{language:"haskell",package:"@arborium/haskell",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/haskell@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/haskell@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/haskell/npm/grammar.js",local_wasm:"/langs/group-fern/haskell/npm/grammar.core.wasm"},{language:"hcl",package:"@arborium/hcl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/hcl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/hcl@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/hcl/npm/grammar.js",local_wasm:"/langs/group-maple/hcl/npm/grammar.core.wasm"},{language:"hlsl",package:"@arborium/hlsl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/hlsl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/hlsl@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/hlsl/npm/grammar.js",local_wasm:"/langs/group-moss/hlsl/npm/grammar.core.wasm"},{language:"html",package:"@arborium/html",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/html@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/html@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/html/npm/grammar.js",local_wasm:"/langs/group-acorn/html/npm/grammar.core.wasm"},{language:"idris",package:"@arborium/idris",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/idris@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/idris@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/idris/npm/grammar.js",local_wasm:"/langs/group-fern/idris/npm/grammar.core.wasm"},{language:"ini",package:"@arborium/ini",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ini@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ini@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ini/npm/grammar.js",local_wasm:"/langs/group-maple/ini/npm/grammar.core.wasm"},{language:"java",package:"@arborium/java",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/java@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/java@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/java/npm/grammar.js",local_wasm:"/langs/group-cedar/java/npm/grammar.core.wasm"},{language:"javascript",package:"@arborium/javascript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/javascript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/javascript@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/javascript/npm/grammar.js",local_wasm:"/langs/group-acorn/javascript/npm/grammar.core.wasm"},{language:"jinja2",package:"@arborium/jinja2",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/jinja2@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/jinja2@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/jinja2/npm/grammar.js",local_wasm:"/langs/group-willow/jinja2/npm/grammar.core.wasm"},{language:"jq",package:"@arborium/jq",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/jq@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/jq@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/jq/npm/grammar.js",local_wasm:"/langs/group-maple/jq/npm/grammar.core.wasm"},{language:"json",package:"@arborium/json",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/json@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/json@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/json/npm/grammar.js",local_wasm:"/langs/group-acorn/json/npm/grammar.core.wasm"},{language:"julia",package:"@arborium/julia",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/julia@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/julia@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/julia/npm/grammar.js",local_wasm:"/langs/group-moss/julia/npm/grammar.core.wasm"},{language:"kdl",package:"@arborium/kdl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/kdl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/kdl@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/kdl/npm/grammar.js",local_wasm:"/langs/group-maple/kdl/npm/grammar.core.wasm"},{language:"kotlin",package:"@arborium/kotlin",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/kotlin@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/kotlin@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/kotlin/npm/grammar.js",local_wasm:"/langs/group-cedar/kotlin/npm/grammar.core.wasm"},{language:"lean",package:"@arborium/lean",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/lean@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/lean@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/lean/npm/grammar.js",local_wasm:"/langs/group-fern/lean/npm/grammar.core.wasm"},{language:"lua",package:"@arborium/lua",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/lua@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/lua@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/lua/npm/grammar.js",local_wasm:"/langs/group-hazel/lua/npm/grammar.core.wasm"},{language:"markdown",package:"@arborium/markdown",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/markdown@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/markdown@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/markdown/npm/grammar.js",local_wasm:"/langs/group-willow/markdown/npm/grammar.core.wasm"},{language:"matlab",package:"@arborium/matlab",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/matlab@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/matlab@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/matlab/npm/grammar.js",local_wasm:"/langs/group-moss/matlab/npm/grammar.core.wasm"},{language:"meson",package:"@arborium/meson",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/meson@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/meson@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/meson/npm/grammar.js",local_wasm:"/langs/group-maple/meson/npm/grammar.core.wasm"},{language:"nginx",package:"@arborium/nginx",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/nginx@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/nginx@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/nginx/npm/grammar.js",local_wasm:"/langs/group-maple/nginx/npm/grammar.core.wasm"},{language:"ninja",package:"@arborium/ninja",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ninja@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ninja@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ninja/npm/grammar.js",local_wasm:"/langs/group-maple/ninja/npm/grammar.core.wasm"},{language:"nix",package:"@arborium/nix",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/nix@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/nix@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/nix/npm/grammar.js",local_wasm:"/langs/group-maple/nix/npm/grammar.core.wasm"},{language:"objc",package:"@arborium/objc",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/objc@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/objc@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/objc/npm/grammar.js",local_wasm:"/langs/group-birch/objc/npm/grammar.core.wasm"},{language:"ocaml",package:"@arborium/ocaml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ocaml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ocaml@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/ocaml/npm/grammar.js",local_wasm:"/langs/group-fern/ocaml/npm/grammar.core.wasm"},{language:"perl",package:"@arborium/perl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/perl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/perl@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/perl/npm/grammar.js",local_wasm:"/langs/group-hazel/perl/npm/grammar.core.wasm"},{language:"php",package:"@arborium/php",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/php@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/php@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/php/npm/grammar.js",local_wasm:"/langs/group-hazel/php/npm/grammar.core.wasm"},{language:"postscript",package:"@arborium/postscript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/postscript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/postscript@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/postscript/npm/grammar.js",local_wasm:"/langs/group-sage/postscript/npm/grammar.core.wasm"},{language:"powershell",package:"@arborium/powershell",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/powershell@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/powershell@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/powershell/npm/grammar.js",local_wasm:"/langs/group-hazel/powershell/npm/grammar.core.wasm"},{language:"prolog",package:"@arborium/prolog",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/prolog@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/prolog@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/prolog/npm/grammar.js",local_wasm:"/langs/group-moss/prolog/npm/grammar.core.wasm"},{language:"python",package:"@arborium/python",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/python@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/python@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/python/npm/grammar.js",local_wasm:"/langs/group-hazel/python/npm/grammar.core.wasm"},{language:"query",package:"@arborium/query",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/query@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/query@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/query/npm/grammar.js",local_wasm:"/langs/group-maple/query/npm/grammar.core.wasm"},{language:"r",package:"@arborium/r",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/r@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/r@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/r/npm/grammar.js",local_wasm:"/langs/group-moss/r/npm/grammar.core.wasm"},{language:"rescript",package:"@arborium/rescript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/rescript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/rescript@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/rescript/npm/grammar.js",local_wasm:"/langs/group-pine/rescript/npm/grammar.core.wasm"},{language:"ron",package:"@arborium/ron",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ron@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ron@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ron/npm/grammar.js",local_wasm:"/langs/group-maple/ron/npm/grammar.core.wasm"},{language:"ruby",package:"@arborium/ruby",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ruby@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ruby@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/ruby/npm/grammar.js",local_wasm:"/langs/group-hazel/ruby/npm/grammar.core.wasm"},{language:"rust",package:"@arborium/rust",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/rust@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/rust@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/rust/npm/grammar.js",local_wasm:"/langs/group-birch/rust/npm/grammar.core.wasm"},{language:"scala",package:"@arborium/scala",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/scala@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/scala@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/scala/npm/grammar.js",local_wasm:"/langs/group-cedar/scala/npm/grammar.core.wasm"},{language:"scheme",package:"@arborium/scheme",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/scheme@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/scheme@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/scheme/npm/grammar.js",local_wasm:"/langs/group-fern/scheme/npm/grammar.core.wasm"},{language:"scss",package:"@arborium/scss",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/scss@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/scss@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/scss/npm/grammar.js",local_wasm:"/langs/group-acorn/scss/npm/grammar.core.wasm"},{language:"sparql",package:"@arborium/sparql",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/sparql@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/sparql@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/sparql/npm/grammar.js",local_wasm:"/langs/group-moss/sparql/npm/grammar.core.wasm"},{language:"sql",package:"@arborium/sql",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/sql@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/sql@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/sql/npm/grammar.js",local_wasm:"/langs/group-maple/sql/npm/grammar.core.wasm"},{language:"ssh-config",package:"@arborium/ssh-config",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ssh-config@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ssh-config@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ssh-config/npm/grammar.js",local_wasm:"/langs/group-maple/ssh-config/npm/grammar.core.wasm"},{language:"starlark",package:"@arborium/starlark",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/starlark@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/starlark@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/starlark/npm/grammar.js",local_wasm:"/langs/group-pine/starlark/npm/grammar.core.wasm"},{language:"svelte",package:"@arborium/svelte",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/svelte@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/svelte@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/svelte/npm/grammar.js",local_wasm:"/langs/group-willow/svelte/npm/grammar.core.wasm"},{language:"swift",package:"@arborium/swift",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/swift@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/swift@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/swift/npm/grammar.js",local_wasm:"/langs/group-pine/swift/npm/grammar.core.wasm"},{language:"textproto",package:"@arborium/textproto",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/textproto@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/textproto@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/textproto/npm/grammar.js",local_wasm:"/langs/group-pine/textproto/npm/grammar.core.wasm"},{language:"thrift",package:"@arborium/thrift",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/thrift@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/thrift@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/thrift/npm/grammar.js",local_wasm:"/langs/group-pine/thrift/npm/grammar.core.wasm"},{language:"tlaplus",package:"@arborium/tlaplus",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/tlaplus@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/tlaplus@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/tlaplus/npm/grammar.js",local_wasm:"/langs/group-moss/tlaplus/npm/grammar.core.wasm"},{language:"toml",package:"@arborium/toml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/toml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/toml@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/toml/npm/grammar.js",local_wasm:"/langs/group-maple/toml/npm/grammar.core.wasm"},{language:"tsx",package:"@arborium/tsx",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/tsx@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/tsx@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/tsx/npm/grammar.js",local_wasm:"/langs/group-acorn/tsx/npm/grammar.core.wasm"},{language:"typescript",package:"@arborium/typescript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/typescript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/typescript@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/typescript/npm/grammar.js",local_wasm:"/langs/group-acorn/typescript/npm/grammar.core.wasm"},{language:"typst",package:"@arborium/typst",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/typst@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/typst@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/typst/npm/grammar.js",local_wasm:"/langs/group-willow/typst/npm/grammar.core.wasm"},{language:"uiua",package:"@arborium/uiua",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/uiua@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/uiua@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/uiua/npm/grammar.js",local_wasm:"/langs/group-pine/uiua/npm/grammar.core.wasm"},{language:"vb",package:"@arborium/vb",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vb@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vb@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/vb/npm/grammar.js",local_wasm:"/langs/group-sage/vb/npm/grammar.core.wasm"},{language:"verilog",package:"@arborium/verilog",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/verilog@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/verilog@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/verilog/npm/grammar.js",local_wasm:"/langs/group-moss/verilog/npm/grammar.core.wasm"},{language:"vhdl",package:"@arborium/vhdl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vhdl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vhdl@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/vhdl/npm/grammar.js",local_wasm:"/langs/group-moss/vhdl/npm/grammar.core.wasm"},{language:"vim",package:"@arborium/vim",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vim@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vim@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/vim/npm/grammar.js",local_wasm:"/langs/group-sage/vim/npm/grammar.core.wasm"},{language:"vue",package:"@arborium/vue",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vue@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vue@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/vue/npm/grammar.js",local_wasm:"/langs/group-willow/vue/npm/grammar.core.wasm"},{language:"x86asm",package:"@arborium/x86asm",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/x86asm@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/x86asm@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/x86asm/npm/grammar.js",local_wasm:"/langs/group-birch/x86asm/npm/grammar.core.wasm"},{language:"xml",package:"@arborium/xml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/xml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/xml@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/xml/npm/grammar.js",local_wasm:"/langs/group-acorn/xml/npm/grammar.core.wasm"},{language:"yaml",package:"@arborium/yaml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/yaml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/yaml@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/yaml/npm/grammar.js",local_wasm:"/langs/group-maple/yaml/npm/grammar.core.wasm"},{language:"yuri",package:"@arborium/yuri",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/yuri@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/yuri@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/yuri/npm/grammar.js",local_wasm:"/langs/group-pine/yuri/npm/grammar.core.wasm"},{language:"zig",package:"@arborium/zig",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/zig@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/zig@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/zig/npm/grammar.js",local_wasm:"/langs/group-birch/zig/npm/grammar.core.wasm"},{language:"zsh",package:"@arborium/zsh",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/zsh@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/zsh@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/zsh/npm/grammar.js",local_wasm:"/langs/group-hazel/zsh/npm/grammar.core.wasm"}]},sa={manual:!1,theme:"one-dark",selector:"pre code",cdn:"jsdelivr",version:"1",pluginsUrl:"",hostUrl:""};let f=null,k=null,p={...sa};const S=new Map;let A=M,y=null,q=new Set(M.entries.map(a=>a.language));async function na(){if(p.pluginsUrl)return y||(y=(async()=>{console.debug(`[arborium] Loading plugins manifest from: ${p.pluginsUrl}`);const a=await fetch(p.pluginsUrl);if(!a.ok)throw new Error(`Failed to load plugins.json: ${a.status}`);A=await a.json(),q=new Set(A.entries.map(r=>r.language)),console.debug(`[arborium] Available languages: ${Array.from(q).join(", ")}`)})(),y)}async function z(a){const r=S.get(a);if(r)return console.debug(`[arborium] Grammar '${a}' found in cache`),r;await na();const s=A.entries.find(n=>n.language===a);if(!s)return console.debug(`[arborium] Grammar '${a}' not found in manifest`),null;try{const n=p.pluginsUrl?s.local_js:s.cdn_js,m=n.substring(0,n.lastIndexOf("/"));console.debug(`[arborium] Loading grammar '${a}' from ${n}`);const e=await import(n),l=async c=>{const u=`${m}/${c}`,o=await fetch(u);if(!o.ok)throw new Error(`Failed to fetch WASM ${c}: ${o.status}`);const d=await o.arrayBuffer();return WebAssembly.compile(d)},v={...aa(),...ra},h=await e.instantiate(l,v),g=h.plugin||h["arborium:grammar/plugin@0.1.0"];if(!g)return console.error(`Grammar '${a}' missing plugin interface`),null;const t={languageId:a,injectionLanguages:g.injectionLanguages?.()??[],parse:c=>{const u=g.createSession();try{g.setText(u,c);const o=g.parse(u);if(o.tag==="err"){const ha=o.val;return console.error(`[arborium] Parse error: ${ha?.message}`),{spans:[],injections:[]}}const d=o.tag==="ok"?o.val:o;if(!d||typeof d!="object")return console.error("[arborium] Unexpected parse result:",o),{spans:[],injections:[]};const Z=d;return{spans:Z.spans||[],injections:Z.injections||[]}}finally{g.freeSession(u)}}};return S.set(a,t),console.debug(`[arborium] Grammar '${a}' loaded successfully`),t}catch(n){return console.error(`[arborium] Failed to load grammar '${a}':`,n),null}}const U=new Map;let ma=1;function ea(){window.arboriumHost={isLanguageAvailable(a){return q.has(a)||S.has(a)},async loadGrammar(a){const r=await z(a);if(!r)return 0;for(const[n,m]of U)if(m===r)return n;const s=ma++;return U.set(s,r),s},parse(a,r){const s=U.get(a);return s?s.parse(r):{spans:[],injections:[]}}}}function oa(){if(p.hostUrl)return p.hostUrl;const a=p.cdn,r=p.version;let s;a==="jsdelivr"?s="https://cdn.jsdelivr.net/npm":a==="unpkg"?s="https://unpkg.com":s=a;const n=r==="latest"?"":`@${r}`;return`${s}/@arborium/arborium${n}/dist`}async function ta(){return f||k||(k=(async()=>{ea();const a=oa(),r=`${a}/arborium_host.js`,s=`${a}/arborium_host_bg.wasm`;console.debug(`[arborium] Loading host from ${r}`);try{const n=await import(r);return await n.default(s),f={highlight:n.highlight,isLanguageAvailable:n.isLanguageAvailable},console.debug("[arborium] Host loaded successfully"),f}catch(n){return console.error("[arborium] Failed to load host:",n),null}})(),k)}async function R(a,r,s){const n=await ta();if(n)try{return n.highlight(a,r)}catch(l){console.warn("Host highlight failed, falling back to JS:",l)}const m=await z(a);if(!m)return x(r);const e=m.parse(r);return W(r,e.spans)}async function B(a,r){const s=await z(a);return s?{languageId:()=>s.languageId,injectionLanguages:()=>s.injectionLanguages,highlight:async n=>{const m=s.parse(n);return W(n,m.spans)},parse:n=>s.parse(n),dispose:()=>{}}:null}function W(a,r){const s=[...r].sort((e,l)=>e.start-l.start);let n="",m=0;for(const e of s){if(e.start<m)continue;e.start>m&&(n+=x(a.slice(m,e.start)));const l=la(e.capture),i=x(a.slice(e.start,e.end));l?n+=`<a-${l}>${i}</a-${l}>`:n+=i,m=e.end}return m<a.length&&(n+=x(a.slice(m))),n}function la(a){return a.startsWith("keyword")||a==="include"||a==="conditional"?"k":a.startsWith("function")||a.startsWith("method")?"f":a.startsWith("string")||a==="character"?"s":a.startsWith("comment")?"c":a.startsWith("type")?"t":a.startsWith("variable")?"v":a.startsWith("number")||a==="float"?"n":a.startsWith("operator")?"o":a.startsWith("punctuation")?"p":a.startsWith("tag")?"tg":a.startsWith("attribute")?"at":null}function x(a){return a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function C(a){return a?{...p,...a}:{...p}}function P(a){p={...p,...a}}const ca=[[/^#!.*\bpython[23]?\b/,"python"],[/^#!.*\bnode\b/,"javascript"],[/^#!.*\bdeno\b/,"typescript"],[/^#!.*\bbun\b/,"typescript"],[/^#!.*\bruby\b/,"ruby"],[/^#!.*\bperl\b/,"perl"],[/^#!.*\bphp\b/,"php"],[/^#!.*\bbash\b/,"bash"],[/^#!.*\bzsh\b/,"zsh"],[/^#!.*\bsh\b/,"bash"],[/^#!.*\blua\b/,"lua"],[/^#!.*\bawk\b/,"awk"]],ia=[[/\b(fn|impl|trait|pub\s+fn|let\s+mut|&mut|->)\b/,"rust"],[/\b(func|package\s+\w+|import\s+\(|go\s+func|chan\s+\w+)\b/,"go"],[/\b(def\s+\w+\s*\(|import\s+\w+|from\s+\w+\s+import|class\s+\w+:)\b/,"python"],[/:\s*(string|number|boolean|void)\b|\binterface\s+\w+\s*\{/,"typescript"],[/\b(const|let|var)\s+\w+\s*=|function\s+\w+\s*\(|=>\s*\{/,"javascript"],[/\b(def\s+\w+|end\b|do\s*\|.*\||puts\s+|require\s+['"])\b/,"ruby"],[/\b(public\s+class|private\s+\w+|System\.out\.println)\b/,"java"],[/\b(#include\s*<|std::|template\s*<|nullptr|cout\s*<<)\b/,"cpp"],[/\b(#include\s*[<"]|printf\s*\(|int\s+main\s*\(|void\s+\w+\s*\()\b/,"c"],[/\b(namespace\s+\w+|using\s+System|public\s+static\s+void)\b/,"c-sharp"],[/<\?php|\$\w+\s*=/,"php"],[/\b(func\s+\w+|var\s+\w+:\s*\w+|let\s+\w+:\s*\w+|@objc)\b/,"swift"],[/\b(fun\s+\w+|val\s+\w+|var\s+\w+:|data\s+class)\b/,"kotlin"],[/\b(def\s+\w+|val\s+\w+|var\s+\w+|object\s+\w+|case\s+class)\b/,"scala"],[/\b(module\s+\w+|import\s+qualified|data\s+\w+\s*=|::\s*\w+\s*->)\b/,"haskell"],[/\b(defmodule\s+\w+|def\s+\w+|defp\s+\w+|\|>)\b/,"elixir"],[/\b(local\s+\w+\s*=|function\s+\w+\.\w+|require\s*\()\b/,"lua"],[/\b(SELECT\s+.*\s+FROM|INSERT\s+INTO|CREATE\s+TABLE|ALTER\s+TABLE)\b/i,"sql"],[/\b(if\s+\[\s*|then\b|fi\b|echo\s+["']|export\s+\w+=)\b/,"bash"],[/^\s*[\w-]+:\s*[\w\-"'[{]|^---\s*$/,"yaml"],[/^\s*\{[\s\S]*"[\w-]+":\s*/,"json"],[/^\s*\[[\w.-]+\]\s*$|^\s*\w+\s*=\s*["'\d\[]/,"toml"],[/<(!DOCTYPE|html|head|body|div|span|p|a\s)/i,"html"],[/^\s*[\w.#@][\w\s,#.:>+~-]*\{[^}]*\}|@media\s|@import\s/,"css"],[/^#{1,6}\s+\w|^\s*[-*+]\s+\w|^\s*\d+\.\s+\w|```\w*\n/,"markdown"],[/<\?xml|<[\w:-]+\s+xmlns/,"xml"],[/^FROM\s+\w+|^RUN\s+|^COPY\s+|^ENTRYPOINT\s+/m,"dockerfile"],[/\b(server\s*\{|location\s+[\/~]|proxy_pass\s+)\b/,"nginx"],[/\b(pub\s+fn|const\s+\w+\s*=|@import\(|comptime)\b/,"zig"]];function F(a){const r=a.split(`
|
|
2
|
+
`)[0];for(const[s,n]of ca)if(s.test(r))return n;for(const[s,n]of ia)if(s.test(a))return n;return null}function H(a){const r=a.match(/\blanguage-(\w+)\b/);if(r)return r[1];const s=a.match(/\blang-(\w+)\b/);if(s)return s[1];const n=new Set(["rust","javascript","typescript","python","ruby","go","java","c","cpp","csharp","php","swift","kotlin","scala","haskell","elixir","lua","sql","bash","shell","yaml","json","toml","html","css","xml","markdown","dockerfile","nginx","zig","text","plaintext","console","sh"]);for(const m of a.split(/\s+/))if(n.has(m.toLowerCase()))return m.toLowerCase();return null}function $(a){const r={js:"javascript",ts:"typescript",py:"python",rb:"ruby",rs:"rust",sh:"bash",shell:"bash",yml:"yaml",cs:"c-sharp",csharp:"c-sharp","c++":"cpp","c#":"c-sharp","f#":"fsharp",dockerfile:"dockerfile",docker:"dockerfile",makefile:"make",plaintext:"text",plain:"text",txt:"text"},s=a.toLowerCase();return r[s]||s}const j=document.currentScript;function ga(){if(!j?.src)return new URLSearchParams;try{return new URL(j.src).searchParams}catch{return new URLSearchParams}}function pa(){if(!j)return{};const a={},r=ga();j.hasAttribute("data-manual")&&(a.manual=!0);const s=j.getAttribute("data-theme");s&&(a.theme=s);const n=j.getAttribute("data-selector");n&&(a.selector=n);const m=j.getAttribute("data-cdn");m&&(a.cdn=m);const e=j.getAttribute("data-version");e&&(a.version=e);const l=r.get("pluginsUrl");l&&(a.pluginsUrl=l);const i=r.get("hostUrl");return i&&(a.hostUrl=i),a}function N(){return document.querySelector('meta[name="generator"]')?.getAttribute("content")==="rustdoc"}function ua(a){if(!a)return null;const r={light:"rustdoc-light",dark:"rustdoc-dark",ayu:"rustdoc-ayu"};return r[a]?r[a]:null}function O(){if(N()){const r=ua(document.documentElement.dataset.theme);if(r)return r}return window.matchMedia("(prefers-color-scheme: light)").matches?"github-light":"one-dark"}function w(){const a=window.Arborium||{},r=pa(),s={...a,...r};return s.theme||(s.theme=O()),P(s),C()}function da(a){return Array.from(document.querySelectorAll(a))}function ja(a){const r=["hljs","highlighted","prism-code","shiki"];for(const m of r)if(a.classList.contains(m))return!0;const s=a.querySelectorAll("span[class]");return s.length>0&&Array.from(s).filter(e=>e.className&&e.className.length>0).length>=3||a.querySelectorAll("a").length>=2}function D(a){const r=a.getAttribute("data-lang");if(r)return $(r);const s=a.className,n=H(s);if(n)return $(n);const m=a.parentElement;if(m){const l=m.getAttribute("data-lang");if(l)return $(l);const i=H(m.className);if(i)return $(i)}const e=a.textContent||"";return F(e)}function G(){const a=w();if(a.hostUrl)return`${a.hostUrl}/themes`;const r=a.cdn,s=a.version;let n;r==="jsdelivr"?n="https://cdn.jsdelivr.net/npm":r==="unpkg"?n="https://unpkg.com":n=r;const m=s==="latest"?"":`@${s}`;return`${n}/@arborium/arborium${m}/dist/themes`}function wa(){const a="arborium-base";if(document.getElementById(a))return;const r=`${G()}/base-rustdoc.css`;console.debug(`[arborium] Loading base CSS: ${r}`);const s=document.createElement("link");s.id=a,s.rel="stylesheet",s.href=r,document.head.appendChild(s)}let b=null;function Y(a){if(b&&b!==a){const m=document.getElementById(`arborium-theme-${b}`);m&&(m.remove(),console.debug(`[arborium] Removed theme: ${b}`))}const r=`arborium-theme-${a}`;if(document.getElementById(r)){b=a;return}const s=`${G()}/${a}.css`;console.debug(`[arborium] Loading theme: ${s}`);const n=document.createElement("link");n.id=r,n.rel="stylesheet",n.href=s,document.head.appendChild(n),b=a}async function V(a,r,s){const n=a.textContent||"";if(n.trim())try{const m=await R(r,n,s);a.innerHTML=m,a.setAttribute("data-highlighted","true"),a.setAttribute("data-lang",r)}catch(m){console.warn(`[arborium] Failed to highlight ${r}:`,m)}}async function E(){const a=w();wa(),Y(a.theme);const r=da(a.selector);if(r.length===0)return;const s=new Map,n=[];for(const t of r){if(t.hasAttribute("data-highlighted")||ja(t))continue;const c=D(t);if(c){const u=s.get(c)||[];u.push(t),s.set(c,u)}else n.push(t)}const m=Array.from(s.keys()),e=m.map(t=>B(t).catch(c=>(console.warn(`[arborium] Failed to load grammar for ${t}:`,c),null))),l=await Promise.all(e),i=[];for(let t=0;t<m.length;t++){const c=m[t];if(!l[t])continue;const o=s.get(c)||[];for(const d of o)i.push(V(d,c,a))}await Promise.all(i);const v=r.length,h=r.filter(t=>t.hasAttribute("data-highlighted")).length,g=n.length;(h>0||g>0)&&console.debug(`[arborium] Highlighted ${h}/${v} blocks`+(g>0?` (${g} unknown language)`:""))}async function J(a){C({...w(),...a}),await E()}async function K(a,r,s){const n=C({...w(),...s}),m=r||D(a);if(!m){console.warn("[arborium] Could not detect language for element");return}await V(a,m,n)}window.arborium={highlightAll:J,highlightElement:K,loadGrammar:B,highlight:R,detectLanguage:F,config:w()};async function Q(){const a=O();w().theme!==a&&(P({theme:a}),window.arborium.config=w(),Y(a),console.debug(`[arborium] Theme changed to: ${a}`))}function X(){new MutationObserver(r=>{for(const s of r)if(s.attributeName==="data-theme"&&N()){Q();break}}).observe(document.documentElement,{attributes:!0}),window.matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>Q())}return w().manual||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{E(),X()}):(E(),X())),_.highlightAll=J,_.highlightElement=K,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"}),_})({});
|
|
3
3
|
//# sourceMappingURL=arborium.iife.js.map
|