UNPKG

@argdown/highlightjs

Version:
1,183 lines (1,145 loc) 1.67 MB
// modules are defined as an array // [ module function, map of requires ] // // map of requires is short require name -> numeric require // // anything defined in a previous bundle is accessed via the // orig method which is the require for previous bundles (function(modules, entry, mainEntry, parcelRequireName, globalName) { /* eslint-disable no-undef */ var globalObject = typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; /* eslint-enable no-undef */ // Save the require from previous bundle to this closure if any var previousRequire = typeof globalObject[parcelRequireName] === 'function' && globalObject[parcelRequireName]; var cache = previousRequire.cache || {}; // Do not use `require` to prevent Webpack from trying to bundle this call var nodeRequire = typeof module !== 'undefined' && typeof module.require === 'function' && module.require.bind(module); function newRequire(name, jumped) { if (!cache[name]) { if (!modules[name]) { // if we cannot find the module within our internal map or // cache jump to the current global require ie. the last bundle // that was added to the page. var currentRequire = typeof globalObject[parcelRequireName] === 'function' && globalObject[parcelRequireName]; if (!jumped && currentRequire) { return currentRequire(name, true); } // If there are other bundles on this page the require from the // previous one is saved to 'previousRequire'. Repeat this as // many times as there are bundles until the module is found or // we exhaust the require chain. if (previousRequire) { return previousRequire(name, true); } // Try the node require function if it exists. if (nodeRequire && typeof name === 'string') { return nodeRequire(name); } var err = new Error("Cannot find module '" + name + "'"); err.code = 'MODULE_NOT_FOUND'; throw err; } localRequire.resolve = resolve; localRequire.cache = {}; var module = (cache[name] = new newRequire.Module(name)); modules[name][0].call( module.exports, localRequire, module, module.exports, this ); } return cache[name].exports; function localRequire(x) { return newRequire(localRequire.resolve(x)); } function resolve(x) { return modules[name][1][x] || x; } } function Module(moduleName) { this.id = moduleName; this.bundle = newRequire; this.exports = {}; } newRequire.isParcelRequire = true; newRequire.Module = Module; newRequire.modules = modules; newRequire.cache = cache; newRequire.parent = previousRequire; newRequire.register = function(id, exports) { modules[id] = [ function(require, module) { module.exports = exports; }, {}, ]; }; Object.defineProperty(newRequire, 'root', { get: function() { return globalObject[parcelRequireName]; }, }); globalObject[parcelRequireName] = newRequire; for (var i = 0; i < entry.length; i++) { newRequire(entry[i]); } if (mainEntry) { // Expose entry point to Node, AMD or browser globals // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js var mainExports = newRequire(mainEntry); // CommonJS if (typeof exports === 'object' && typeof module !== 'undefined') { module.exports = mainExports; // RequireJS } else if (typeof define === 'function' && define.amd) { define(function() { return mainExports; }); // <script> } else if (globalName) { this[globalName] = mainExports; } } })({"32E2u":[function(require,module,exports) { var HMR_HOST = null; var HMR_PORT = null; var HMR_SECURE = false; var HMR_ENV_HASH = "69f74e7f31319ffd"; module.bundle.HMR_BUNDLE_ID = "e3a8524311f93286"; "use strict"; function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F1() { }; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally{ if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; return arr2; } /* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE */ /*:: import type { HMRAsset, HMRMessage, } from '@parcel/reporter-dev-server/src/HMRServer.js'; interface ParcelRequire { (string): mixed; cache: {|[string]: ParcelModule|}; hotData: mixed; Module: any; parent: ?ParcelRequire; isParcelRequire: true; modules: {|[string]: [Function, {|[string]: string|}]|}; HMR_BUNDLE_ID: string; root: ParcelRequire; } interface ParcelModule { hot: {| data: mixed, accept(cb: (Function) => void): void, dispose(cb: (mixed) => void): void, // accept(deps: Array<string> | string, cb: (Function) => void): void, // decline(): void, _acceptCallbacks: Array<(Function) => void>, _disposeCallbacks: Array<(mixed) => void>, |}; } declare var module: {bundle: ParcelRequire, ...}; declare var HMR_HOST: string; declare var HMR_PORT: string; declare var HMR_ENV_HASH: string; declare var HMR_SECURE: boolean; */ var OVERLAY_ID = '__parcel__error__overlay__'; var OldModule = module.bundle.Module; function Module(moduleName) { OldModule.call(this, moduleName); this.hot = { data: module.bundle.hotData, _acceptCallbacks: [], _disposeCallbacks: [], accept: function accept(fn) { this._acceptCallbacks.push(fn || function() { }); }, dispose: function dispose(fn) { this._disposeCallbacks.push(fn); } }; module.bundle.hotData = undefined; } module.bundle.Module = Module; var checkedAssets, acceptedAssets, assetsToAccept; function getHostname() { return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost'); } function getPort() { return HMR_PORT || location.port; } // eslint-disable-next-line no-redeclare var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { var hostname = getHostname(); var port = getPort(); var protocol = HMR_SECURE || location.protocol == 'https:' && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? 'wss' : 'ws'; var ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/'); // $FlowFixMe ws.onmessage = function(event) { checkedAssets = { }; acceptedAssets = { }; assetsToAccept = []; var data = JSON.parse(event.data); if (data.type === 'update') { // Remove error overlay if there is one removeErrorOverlay(); var assets = data.assets.filter(function(asset) { return asset.envHash === HMR_ENV_HASH; }); // Handle HMR Update var handled = assets.every(function(asset) { return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle); }); if (handled) { console.clear(); assets.forEach(function(asset) { hmrApply(module.bundle.root, asset); }); for(var i = 0; i < assetsToAccept.length; i++){ var id = assetsToAccept[i][1]; if (!acceptedAssets[id]) hmrAcceptRun(assetsToAccept[i][0], id); } } else window.location.reload(); } if (data.type === 'error') { // Log parcel errors to console var _iterator = _createForOfIteratorHelper(data.diagnostics.ansi), _step; try { for(_iterator.s(); !(_step = _iterator.n()).done;){ var ansiDiagnostic = _step.value; var stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack; console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\n' + stack + '\n\n' + ansiDiagnostic.hints.join('\n')); } // Render the fancy html overlay } catch (err) { _iterator.e(err); } finally{ _iterator.f(); } removeErrorOverlay(); var overlay = createErrorOverlay(data.diagnostics.html); // $FlowFixMe document.body.appendChild(overlay); } }; ws.onerror = function(e) { console.error(e.message); }; ws.onclose = function() { console.warn('[parcel] 🚨 Connection to the HMR server was lost'); }; } function removeErrorOverlay() { var overlay = document.getElementById(OVERLAY_ID); if (overlay) { overlay.remove(); console.log('[parcel] ✨ Error resolved'); } } function createErrorOverlay(diagnostics) { var overlay = document.createElement('div'); overlay.id = OVERLAY_ID; var errorHTML = '<div style="background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;">'; var _iterator2 = _createForOfIteratorHelper(diagnostics), _step2; try { for(_iterator2.s(); !(_step2 = _iterator2.n()).done;){ var diagnostic = _step2.value; var stack = diagnostic.codeframe ? diagnostic.codeframe : diagnostic.stack; errorHTML += "\n <div>\n <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n \uD83D\uDEA8 ".concat(diagnostic.message, "\n </div>\n <pre>").concat(stack, "</pre>\n <div>\n ").concat(diagnostic.hints.map(function(hint) { return '<div>💡 ' + hint + '</div>'; }).join(''), "\n </div>\n ").concat(diagnostic.documentation ? "<div>\uD83D\uDCDD <a style=\"color: violet\" href=\"".concat(diagnostic.documentation, "\" target=\"_blank\">Learn more</a></div>") : '', "\n </div>\n "); } } catch (err) { _iterator2.e(err); } finally{ _iterator2.f(); } errorHTML += '</div>'; overlay.innerHTML = errorHTML; return overlay; } function getParents(bundle, id) /*: Array<[ParcelRequire, string]> */ { var modules = bundle.modules; if (!modules) return []; var parents = []; var k, d, dep; for(k in modules)for(d in modules[k][1]){ dep = modules[k][1][d]; if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) parents.push([ bundle, k ]); } if (bundle.parent) parents = parents.concat(getParents(bundle.parent, id)); return parents; } function updateLink(link) { var newLink = link.cloneNode(); newLink.onload = function() { if (link.parentNode !== null) // $FlowFixMe link.parentNode.removeChild(link); }; newLink.setAttribute('href', link.getAttribute('href').split('?')[0] + '?' + Date.now()); // $FlowFixMe link.parentNode.insertBefore(newLink, link.nextSibling); } var cssTimeout = null; function reloadCSS() { if (cssTimeout) return; cssTimeout = setTimeout(function() { var links = document.querySelectorAll('link[rel="stylesheet"]'); for(var i = 0; i < links.length; i++){ // $FlowFixMe[incompatible-type] var href = links[i].getAttribute('href'); var hostname = getHostname(); var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\/\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort()); var absolute = /^https?:\/\//i.test(href) && href.indexOf(window.location.origin) !== 0 && !servedFromHMRServer; if (!absolute) updateLink(links[i]); } cssTimeout = null; }, 50); } function hmrApply(bundle, asset) { var modules = bundle.modules; if (!modules) return; if (asset.type === 'css') { reloadCSS(); return; } var deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID]; if (deps) { var fn = new Function('require', 'module', 'exports', asset.output); modules[asset.id] = [ fn, deps ]; } else if (bundle.parent) hmrApply(bundle.parent, asset); } function hmrAcceptCheck(bundle, id, depsByBundle) { var modules = bundle.modules; if (!modules) return; if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) { // If we reached the root bundle without finding where the asset should go, // there's nothing to do. Mark as "accepted" so we don't reload the page. if (!bundle.parent) return true; return hmrAcceptCheck(bundle.parent, id, depsByBundle); } if (checkedAssets[id]) return; checkedAssets[id] = true; var cached = bundle.cache[id]; assetsToAccept.push([ bundle, id ]); if (cached && cached.hot && cached.hot._acceptCallbacks.length) return true; return getParents(module.bundle.root, id).some(function(v) { return hmrAcceptCheck(v[0], v[1], null); }); } function hmrAcceptRun(bundle, id) { var cached = bundle.cache[id]; bundle.hotData = { }; if (cached && cached.hot) cached.hot.data = bundle.hotData; if (cached && cached.hot && cached.hot._disposeCallbacks.length) cached.hot._disposeCallbacks.forEach(function(cb) { cb(bundle.hotData); }); delete bundle.cache[id]; bundle(id); cached = bundle.cache[id]; if (cached && cached.hot && cached.hot._acceptCallbacks.length) cached.hot._acceptCallbacks.forEach(function(cb) { var assetsToAlsoAccept = cb(function() { return getParents(module.bundle.root, id); }); if (assetsToAlsoAccept && assetsToAccept.length) // $FlowFixMe[method-unbinding] assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept); }); acceptedAssets[id] = true; } },{}],"eGkyf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); var _highlightJs = require("highlight.js"); var _highlightJsDefault = parcelHelpers.interopDefault(_highlightJs); var _index = require("../src/index"); var _indexDefault = parcelHelpers.interopDefault(_index); var _snowInSpringArgdownThemeCss = require("../src/snow-in-spring.argdown-theme.css"); _highlightJsDefault.default.registerLanguage("argdown", _indexDefault.default); const initialInput = ` === some: frontmatter: - data - data - data === // A comment /* Another comment */ <!-- Another comment --> # Argdown Test Some *Argdown* **Text** with a [link](https://argdown.org) #tag1 #(tag 2) :smiley: .V. \\x [A]: sadasds - <B> +> <G> <+ <H> <_ <I> _> <J> - <C>: asdasdd + [D]: asdad {some: data} _ <E>: some undercut _> <F> <K> >< <L> <B>: asdadas (1) Text (2) Text -- adsad ------ (3) Text (1) Text (2) Text -- asdsad {data: "test"} -- (3) Text `; const updateOutput = ()=>{ const input = document.querySelector("textarea").value; const output = document.querySelector("#output"); output.innerHTML = `<pre class="language-argdown"><code data="language-argdown" class="language-argdown">${_highlightJsDefault.default.highlight(input, { language: "argdown" }).value}</code></pre>`; }; document.querySelector("textarea").innerHTML = initialInput; updateOutput(); document.querySelector("#submit").addEventListener("click", ()=>{ updateOutput(); }); //# sourceMappingURL=sandbox.js.map },{"highlight.js":"gjoYZ","../src/index":"4aleK","../src/snow-in-spring.argdown-theme.css":"feGdB","@parcel/transformer-js/src/esmodule-helpers.js":"JacNc"}],"gjoYZ":[function(require,module,exports) { var hljs = require('./core'); hljs.registerLanguage('1c', require('./languages/1c')); hljs.registerLanguage('abnf', require('./languages/abnf')); hljs.registerLanguage('accesslog', require('./languages/accesslog')); hljs.registerLanguage('actionscript', require('./languages/actionscript')); hljs.registerLanguage('ada', require('./languages/ada')); hljs.registerLanguage('angelscript', require('./languages/angelscript')); hljs.registerLanguage('apache', require('./languages/apache')); hljs.registerLanguage('applescript', require('./languages/applescript')); hljs.registerLanguage('arcade', require('./languages/arcade')); hljs.registerLanguage('arduino', require('./languages/arduino')); hljs.registerLanguage('armasm', require('./languages/armasm')); hljs.registerLanguage('xml', require('./languages/xml')); hljs.registerLanguage('asciidoc', require('./languages/asciidoc')); hljs.registerLanguage('aspectj', require('./languages/aspectj')); hljs.registerLanguage('autohotkey', require('./languages/autohotkey')); hljs.registerLanguage('autoit', require('./languages/autoit')); hljs.registerLanguage('avrasm', require('./languages/avrasm')); hljs.registerLanguage('awk', require('./languages/awk')); hljs.registerLanguage('axapta', require('./languages/axapta')); hljs.registerLanguage('bash', require('./languages/bash')); hljs.registerLanguage('basic', require('./languages/basic')); hljs.registerLanguage('bnf', require('./languages/bnf')); hljs.registerLanguage('brainfuck', require('./languages/brainfuck')); hljs.registerLanguage('c', require('./languages/c')); hljs.registerLanguage('cal', require('./languages/cal')); hljs.registerLanguage('capnproto', require('./languages/capnproto')); hljs.registerLanguage('ceylon', require('./languages/ceylon')); hljs.registerLanguage('clean', require('./languages/clean')); hljs.registerLanguage('clojure', require('./languages/clojure')); hljs.registerLanguage('clojure-repl', require('./languages/clojure-repl')); hljs.registerLanguage('cmake', require('./languages/cmake')); hljs.registerLanguage('coffeescript', require('./languages/coffeescript')); hljs.registerLanguage('coq', require('./languages/coq')); hljs.registerLanguage('cos', require('./languages/cos')); hljs.registerLanguage('cpp', require('./languages/cpp')); hljs.registerLanguage('crmsh', require('./languages/crmsh')); hljs.registerLanguage('crystal', require('./languages/crystal')); hljs.registerLanguage('csharp', require('./languages/csharp')); hljs.registerLanguage('csp', require('./languages/csp')); hljs.registerLanguage('css', require('./languages/css')); hljs.registerLanguage('d', require('./languages/d')); hljs.registerLanguage('markdown', require('./languages/markdown')); hljs.registerLanguage('dart', require('./languages/dart')); hljs.registerLanguage('delphi', require('./languages/delphi')); hljs.registerLanguage('diff', require('./languages/diff')); hljs.registerLanguage('django', require('./languages/django')); hljs.registerLanguage('dns', require('./languages/dns')); hljs.registerLanguage('dockerfile', require('./languages/dockerfile')); hljs.registerLanguage('dos', require('./languages/dos')); hljs.registerLanguage('dsconfig', require('./languages/dsconfig')); hljs.registerLanguage('dts', require('./languages/dts')); hljs.registerLanguage('dust', require('./languages/dust')); hljs.registerLanguage('ebnf', require('./languages/ebnf')); hljs.registerLanguage('elixir', require('./languages/elixir')); hljs.registerLanguage('elm', require('./languages/elm')); hljs.registerLanguage('ruby', require('./languages/ruby')); hljs.registerLanguage('erb', require('./languages/erb')); hljs.registerLanguage('erlang-repl', require('./languages/erlang-repl')); hljs.registerLanguage('erlang', require('./languages/erlang')); hljs.registerLanguage('excel', require('./languages/excel')); hljs.registerLanguage('fix', require('./languages/fix')); hljs.registerLanguage('flix', require('./languages/flix')); hljs.registerLanguage('fortran', require('./languages/fortran')); hljs.registerLanguage('fsharp', require('./languages/fsharp')); hljs.registerLanguage('gams', require('./languages/gams')); hljs.registerLanguage('gauss', require('./languages/gauss')); hljs.registerLanguage('gcode', require('./languages/gcode')); hljs.registerLanguage('gherkin', require('./languages/gherkin')); hljs.registerLanguage('glsl', require('./languages/glsl')); hljs.registerLanguage('gml', require('./languages/gml')); hljs.registerLanguage('go', require('./languages/go')); hljs.registerLanguage('golo', require('./languages/golo')); hljs.registerLanguage('gradle', require('./languages/gradle')); hljs.registerLanguage('groovy', require('./languages/groovy')); hljs.registerLanguage('haml', require('./languages/haml')); hljs.registerLanguage('handlebars', require('./languages/handlebars')); hljs.registerLanguage('haskell', require('./languages/haskell')); hljs.registerLanguage('haxe', require('./languages/haxe')); hljs.registerLanguage('hsp', require('./languages/hsp')); hljs.registerLanguage('http', require('./languages/http')); hljs.registerLanguage('hy', require('./languages/hy')); hljs.registerLanguage('inform7', require('./languages/inform7')); hljs.registerLanguage('ini', require('./languages/ini')); hljs.registerLanguage('irpf90', require('./languages/irpf90')); hljs.registerLanguage('isbl', require('./languages/isbl')); hljs.registerLanguage('java', require('./languages/java')); hljs.registerLanguage('javascript', require('./languages/javascript')); hljs.registerLanguage('jboss-cli', require('./languages/jboss-cli')); hljs.registerLanguage('json', require('./languages/json')); hljs.registerLanguage('julia', require('./languages/julia')); hljs.registerLanguage('julia-repl', require('./languages/julia-repl')); hljs.registerLanguage('kotlin', require('./languages/kotlin')); hljs.registerLanguage('lasso', require('./languages/lasso')); hljs.registerLanguage('latex', require('./languages/latex')); hljs.registerLanguage('ldif', require('./languages/ldif')); hljs.registerLanguage('leaf', require('./languages/leaf')); hljs.registerLanguage('less', require('./languages/less')); hljs.registerLanguage('lisp', require('./languages/lisp')); hljs.registerLanguage('livecodeserver', require('./languages/livecodeserver')); hljs.registerLanguage('livescript', require('./languages/livescript')); hljs.registerLanguage('llvm', require('./languages/llvm')); hljs.registerLanguage('lsl', require('./languages/lsl')); hljs.registerLanguage('lua', require('./languages/lua')); hljs.registerLanguage('makefile', require('./languages/makefile')); hljs.registerLanguage('mathematica', require('./languages/mathematica')); hljs.registerLanguage('matlab', require('./languages/matlab')); hljs.registerLanguage('maxima', require('./languages/maxima')); hljs.registerLanguage('mel', require('./languages/mel')); hljs.registerLanguage('mercury', require('./languages/mercury')); hljs.registerLanguage('mipsasm', require('./languages/mipsasm')); hljs.registerLanguage('mizar', require('./languages/mizar')); hljs.registerLanguage('perl', require('./languages/perl')); hljs.registerLanguage('mojolicious', require('./languages/mojolicious')); hljs.registerLanguage('monkey', require('./languages/monkey')); hljs.registerLanguage('moonscript', require('./languages/moonscript')); hljs.registerLanguage('n1ql', require('./languages/n1ql')); hljs.registerLanguage('nestedtext', require('./languages/nestedtext')); hljs.registerLanguage('nginx', require('./languages/nginx')); hljs.registerLanguage('nim', require('./languages/nim')); hljs.registerLanguage('nix', require('./languages/nix')); hljs.registerLanguage('node-repl', require('./languages/node-repl')); hljs.registerLanguage('nsis', require('./languages/nsis')); hljs.registerLanguage('objectivec', require('./languages/objectivec')); hljs.registerLanguage('ocaml', require('./languages/ocaml')); hljs.registerLanguage('openscad', require('./languages/openscad')); hljs.registerLanguage('oxygene', require('./languages/oxygene')); hljs.registerLanguage('parser3', require('./languages/parser3')); hljs.registerLanguage('pf', require('./languages/pf')); hljs.registerLanguage('pgsql', require('./languages/pgsql')); hljs.registerLanguage('php', require('./languages/php')); hljs.registerLanguage('php-template', require('./languages/php-template')); hljs.registerLanguage('plaintext', require('./languages/plaintext')); hljs.registerLanguage('pony', require('./languages/pony')); hljs.registerLanguage('powershell', require('./languages/powershell')); hljs.registerLanguage('processing', require('./languages/processing')); hljs.registerLanguage('profile', require('./languages/profile')); hljs.registerLanguage('prolog', require('./languages/prolog')); hljs.registerLanguage('properties', require('./languages/properties')); hljs.registerLanguage('protobuf', require('./languages/protobuf')); hljs.registerLanguage('puppet', require('./languages/puppet')); hljs.registerLanguage('purebasic', require('./languages/purebasic')); hljs.registerLanguage('python', require('./languages/python')); hljs.registerLanguage('python-repl', require('./languages/python-repl')); hljs.registerLanguage('q', require('./languages/q')); hljs.registerLanguage('qml', require('./languages/qml')); hljs.registerLanguage('r', require('./languages/r')); hljs.registerLanguage('reasonml', require('./languages/reasonml')); hljs.registerLanguage('rib', require('./languages/rib')); hljs.registerLanguage('roboconf', require('./languages/roboconf')); hljs.registerLanguage('routeros', require('./languages/routeros')); hljs.registerLanguage('rsl', require('./languages/rsl')); hljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage')); hljs.registerLanguage('rust', require('./languages/rust')); hljs.registerLanguage('sas', require('./languages/sas')); hljs.registerLanguage('scala', require('./languages/scala')); hljs.registerLanguage('scheme', require('./languages/scheme')); hljs.registerLanguage('scilab', require('./languages/scilab')); hljs.registerLanguage('scss', require('./languages/scss')); hljs.registerLanguage('shell', require('./languages/shell')); hljs.registerLanguage('smali', require('./languages/smali')); hljs.registerLanguage('smalltalk', require('./languages/smalltalk')); hljs.registerLanguage('sml', require('./languages/sml')); hljs.registerLanguage('sqf', require('./languages/sqf')); hljs.registerLanguage('sql', require('./languages/sql')); hljs.registerLanguage('stan', require('./languages/stan')); hljs.registerLanguage('stata', require('./languages/stata')); hljs.registerLanguage('step21', require('./languages/step21')); hljs.registerLanguage('stylus', require('./languages/stylus')); hljs.registerLanguage('subunit', require('./languages/subunit')); hljs.registerLanguage('swift', require('./languages/swift')); hljs.registerLanguage('taggerscript', require('./languages/taggerscript')); hljs.registerLanguage('yaml', require('./languages/yaml')); hljs.registerLanguage('tap', require('./languages/tap')); hljs.registerLanguage('tcl', require('./languages/tcl')); hljs.registerLanguage('thrift', require('./languages/thrift')); hljs.registerLanguage('tp', require('./languages/tp')); hljs.registerLanguage('twig', require('./languages/twig')); hljs.registerLanguage('typescript', require('./languages/typescript')); hljs.registerLanguage('vala', require('./languages/vala')); hljs.registerLanguage('vbnet', require('./languages/vbnet')); hljs.registerLanguage('vbscript', require('./languages/vbscript')); hljs.registerLanguage('vbscript-html', require('./languages/vbscript-html')); hljs.registerLanguage('verilog', require('./languages/verilog')); hljs.registerLanguage('vhdl', require('./languages/vhdl')); hljs.registerLanguage('vim', require('./languages/vim')); hljs.registerLanguage('wasm', require('./languages/wasm')); hljs.registerLanguage('wren', require('./languages/wren')); hljs.registerLanguage('x86asm', require('./languages/x86asm')); hljs.registerLanguage('xl', require('./languages/xl')); hljs.registerLanguage('xquery', require('./languages/xquery')); hljs.registerLanguage('zephir', require('./languages/zephir')); hljs.HighlightJS = hljs; hljs.default = hljs; module.exports = hljs; },{"./core":"g5Vwj","./languages/1c":"eLM4I","./languages/abnf":"fKEfL","./languages/accesslog":"5p5sd","./languages/actionscript":"a6eoW","./languages/ada":"ffOj4","./languages/angelscript":"9sMVa","./languages/apache":"aGUhD","./languages/applescript":"efuYQ","./languages/arcade":"5ViV5","./languages/arduino":"9oBvL","./languages/armasm":"5xgZv","./languages/xml":"l2KRq","./languages/asciidoc":"hr6gp","./languages/aspectj":"lTiMP","./languages/autohotkey":"aRATs","./languages/autoit":"6Hz3i","./languages/avrasm":"7Pxh2","./languages/awk":"dmFy1","./languages/axapta":"byTRs","./languages/bash":"dQxwW","./languages/basic":"7b2XX","./languages/bnf":"iAdOV","./languages/brainfuck":"gPInQ","./languages/c":"geSuz","./languages/cal":"brVrt","./languages/capnproto":"l9wAh","./languages/ceylon":"dLfz6","./languages/clean":"7LOPg","./languages/clojure":"7dVLj","./languages/clojure-repl":"4BQyj","./languages/cmake":"fJFOx","./languages/coffeescript":"1PzPv","./languages/coq":"Lwlpg","./languages/cos":"i4wIV","./languages/cpp":"cimr0","./languages/crmsh":"kfkY8","./languages/crystal":"ixGV4","./languages/csharp":"bvFdP","./languages/csp":"2O3oh","./languages/css":"d2R7D","./languages/d":"cyP40","./languages/markdown":"7OGor","./languages/dart":"jSAV9","./languages/delphi":"6jLpX","./languages/diff":"lwrzX","./languages/django":"c2qK9","./languages/dns":"jqPSP","./languages/dockerfile":"kMsyV","./languages/dos":"isgTi","./languages/dsconfig":"cj0Vn","./languages/dts":"8EqES","./languages/dust":"cr6o1","./languages/ebnf":"eSoj1","./languages/elixir":"4jIzl","./languages/elm":"kaUo8","./languages/ruby":"5kXyt","./languages/erb":"3nUCc","./languages/erlang-repl":"h3vJd","./languages/erlang":"15hNL","./languages/excel":"5WP5S","./languages/fix":"28TIN","./languages/flix":"kJZxr","./languages/fortran":"PrnEz","./languages/fsharp":"hse7y","./languages/gams":"iQG14","./languages/gauss":"8zAo1","./languages/gcode":"6rtf5","./languages/gherkin":"mZkLn","./languages/glsl":"QFyOK","./languages/gml":"7Nb6N","./languages/go":"6Lqq5","./languages/golo":"hYQ6h","./languages/gradle":"ktxI2","./languages/groovy":"aJiQY","./languages/haml":"bNEtF","./languages/handlebars":"5g6j7","./languages/haskell":"6ThRw","./languages/haxe":"f1wxW","./languages/hsp":"jGwv7","./languages/http":"5bQKQ","./languages/hy":"5lfad","./languages/inform7":"9hpgc","./languages/ini":"dUGxv","./languages/irpf90":"f6sJr","./languages/isbl":"3whUf","./languages/java":"UJEZG","./languages/javascript":"lzN41","./languages/jboss-cli":"lT9xD","./languages/json":"53IHz","./languages/julia":"hUHA5","./languages/julia-repl":"8EXMk","./languages/kotlin":"cUbli","./languages/lasso":"dnvXE","./languages/latex":"cz1nT","./languages/ldif":"aPl63","./languages/leaf":"iy5Oz","./languages/less":"iwnK2","./languages/lisp":"ik0t2","./languages/livecodeserver":"4u4D2","./languages/livescript":"ayH79","./languages/llvm":"lnAFA","./languages/lsl":"4d3RI","./languages/lua":"9HrtA","./languages/makefile":"2CzMt","./languages/mathematica":"8H87E","./languages/matlab":"aFV3Z","./languages/maxima":"ktALI","./languages/mel":"3ZSTH","./languages/mercury":"d0lQv","./languages/mipsasm":"bsYpF","./languages/mizar":"9UYEf","./languages/perl":"3kYjZ","./languages/mojolicious":"1C0vL","./languages/monkey":"6HA9Z","./languages/moonscript":"bAQIc","./languages/n1ql":"czcXa","./languages/nestedtext":"6Ilbb","./languages/nginx":"fHLyB","./languages/nim":"cDA0b","./languages/nix":"j8ljV","./languages/node-repl":"5vZiN","./languages/nsis":"j2KEs","./languages/objectivec":"byrjm","./languages/ocaml":"aOFfG","./languages/openscad":"8nXVB","./languages/oxygene":"lhn0n","./languages/parser3":"e6cbi","./languages/pf":"8Rfhd","./languages/pgsql":"7BKNE","./languages/php":"dIJpT","./languages/php-template":"8NdMp","./languages/plaintext":"fg58j","./languages/pony":"8h1AV","./languages/powershell":"1DRM3","./languages/processing":"b3AOM","./languages/profile":"lpNXk","./languages/prolog":"a4x7H","./languages/properties":"f4ubW","./languages/protobuf":"kLw70","./languages/puppet":"h7UtM","./languages/purebasic":"54UsT","./languages/python":"9KERK","./languages/python-repl":"7r32N","./languages/q":"lIZLU","./languages/qml":"VITzn","./languages/r":"3ZD4C","./languages/reasonml":"c52kW","./languages/rib":"f0DYL","./languages/roboconf":"5K5u2","./languages/routeros":"3YIZv","./languages/rsl":"euHdD","./languages/ruleslanguage":"g6Jfu","./languages/rust":"8eOAk","./languages/sas":"eYYLx","./languages/scala":"hsScc","./languages/scheme":"40PK7","./languages/scilab":"4IiG0","./languages/scss":"9x05T","./languages/shell":"ciWuA","./languages/smali":"7ENtU","./languages/smalltalk":"3GU8X","./languages/sml":"YpOmB","./languages/sqf":"6XnY6","./languages/sql":"kTecN","./languages/stan":"gf8O6","./languages/stata":"gLOYN","./languages/step21":"4lJMh","./languages/stylus":"7l9Eh","./languages/subunit":"aJkn8","./languages/swift":"3LNjW","./languages/taggerscript":"20bWi","./languages/yaml":"B0G83","./languages/tap":"7Wvsf","./languages/tcl":"iL29t","./languages/thrift":"j6y08","./languages/tp":"hW2Qt","./languages/twig":"lewyh","./languages/typescript":"4nAjX","./languages/vala":"gRfGy","./languages/vbnet":"7t3na","./languages/vbscript":"72lLa","./languages/vbscript-html":"dz3qY","./languages/verilog":"di6LD","./languages/vhdl":"1FLmr","./languages/vim":"eaw6j","./languages/wasm":"f89dZ","./languages/wren":"dB95v","./languages/x86asm":"jfq6r","./languages/xl":"5fchQ","./languages/xquery":"jnjRa","./languages/zephir":"V36ec"}],"g5Vwj":[function(require,module,exports) { var deepFreezeEs6 = { exports: { } }; function deepFreeze(obj) { if (obj instanceof Map) obj.clear = obj.delete = obj.set = function() { throw new Error('map is read-only'); }; else if (obj instanceof Set) obj.add = obj.clear = obj.delete = function() { throw new Error('set is read-only'); }; // Freeze self Object.freeze(obj); Object.getOwnPropertyNames(obj).forEach(function(name) { var prop = obj[name]; // Freeze prop if it is an object if (typeof prop == 'object' && !Object.isFrozen(prop)) deepFreeze(prop); }); return obj; } deepFreezeEs6.exports = deepFreeze; deepFreezeEs6.exports.default = deepFreeze; var deepFreeze$1 = deepFreezeEs6.exports; /** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */ /** @typedef {import('highlight.js').CompiledMode} CompiledMode */ /** @implements CallbackResponse */ class Response1 { /** * @param {CompiledMode} mode */ constructor(mode){ // eslint-disable-next-line no-undefined if (mode.data === undefined) mode.data = { }; this.data = mode.data; this.isMatchIgnored = false; } ignoreMatch() { this.isMatchIgnored = true; } } /** * @param {string} value * @returns {string} */ function escapeHTML(value) { return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;'); } /** * performs a shallow merge of multiple objects into one * * @template T * @param {T} original * @param {Record<string,any>[]} objects * @returns {T} a single new object */ function inherit$1(original, ...objects) { /** @type Record<string,any> */ const result = Object.create(null); for(const key in original)result[key] = original[key]; objects.forEach(function(obj) { for(const key1 in obj)result[key1] = obj[key1]; }); return result; } /** * @typedef {object} Renderer * @property {(text: string) => void} addText * @property {(node: Node) => void} openNode * @property {(node: Node) => void} closeNode * @property {() => string} value */ /** @typedef {{kind?: string, sublanguage?: boolean}} Node */ /** @typedef {{walk: (r: Renderer) => void}} Tree */ /** */ const SPAN_CLOSE = '</span>'; /** * Determines if a node needs to be wrapped in <span> * * @param {Node} node */ const emitsWrappingTags = (node)=>{ return !!node.kind; }; /** * * @param {string} name * @param {{prefix:string}} options */ const expandScopeName = (name, { prefix })=>{ if (name.includes(".")) { const pieces = name.split("."); return [ `${prefix}${pieces.shift()}`, ...pieces.map((x, i)=>`${x}${"_".repeat(i + 1)}` ) ].join(" "); } return `${prefix}${name}`; }; /** @type {Renderer} */ class HTMLRenderer { /** * Creates a new HTMLRenderer * * @param {Tree} parseTree - the parse tree (must support `walk` API) * @param {{classPrefix: string}} options */ constructor(parseTree, options){ this.buffer = ""; this.classPrefix = options.classPrefix; parseTree.walk(this); } /** * Adds texts to the output stream * * @param {string} text */ addText(text) { this.buffer += escapeHTML(text); } /** * Adds a node open to the output stream (if needed) * * @param {Node} node */ openNode(node) { if (!emitsWrappingTags(node)) return; let scope = node.kind; if (node.sublanguage) scope = `language-${scope}`; else scope = expandScopeName(scope, { prefix: this.classPrefix }); this.span(scope); } /** * Adds a node close to the output stream (if needed) * * @param {Node} node */ closeNode(node) { if (!emitsWrappingTags(node)) return; this.buffer += SPAN_CLOSE; } /** * returns the accumulated buffer */ value() { return this.buffer; } // helpers /** * Builds a span element * * @param {string} className */ span(className) { this.buffer += `<span class="${className}">`; } } /** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */ /** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */ /** @typedef {import('highlight.js').Emitter} Emitter */ /** */ class TokenTree { constructor(){ /** @type DataNode */ this.rootNode = { children: [] }; this.stack = [ this.rootNode ]; } get top() { return this.stack[this.stack.length - 1]; } get root() { return this.rootNode; } /** @param {Node} node */ add(node) { this.top.children.push(node); } /** @param {string} kind */ openNode(kind) { /** @type Node */ const node = { kind, children: [] }; this.add(node); this.stack.push(node); } closeNode() { if (this.stack.length > 1) return this.stack.pop(); // eslint-disable-next-line no-undefined return undefined; } closeAllNodes() { while(this.closeNode()); } toJSON() { return JSON.stringify(this.rootNode, null, 4); } /** * @typedef { import("./html_renderer").Renderer } Renderer * @param {Renderer} builder */ walk(builder) { // this does not return this.constructor._walk(builder, this.rootNode); // this works // return TokenTree._walk(builder, this.rootNode); } /** * @param {Renderer} builder * @param {Node} node */ static _walk(builder, node) { if (typeof node === "string") builder.addText(node); else if (node.children) { builder.openNode(node); node.children.forEach((child)=>this._walk(builder, child) ); builder.closeNode(node); } return builder; } /** * @param {Node} node */ static _collapse(node) { if (typeof node === "string") return; if (!node.children) return; if (node.children.every((el)=>typeof el === "string" )) // node.text = node.children.join(""); // delete node.children; node.children = [ node.children.join("") ]; else node.children.forEach((child)=>{ TokenTree._collapse(child); }); } } /** Currently this is all private API, but this is the minimal API necessary that an Emitter must implement to fully support the parser. Minimal interface: - addKeyword(text, kind) - addText(text) - addSublanguage(emitter, subLanguageName) - finalize() - openNode(kind) - closeNode() - closeAllNodes() - toHTML() */ /** * @implements {Emitter} */ class TokenTreeEmitter extends TokenTree { /** * @param {*} options */ constructor(options1){ super(); this.options = options1; } /** * @param {string} text * @param {string} kind */ addKeyword(text, kind) { if (text === "") return; this.openNode(kind); this.addText(text); this.closeNode(); } /** * @param {string} text */ addText(text) { if (text === "") return; this.add(text); } /** * @param {Emitter & {root: DataNode}} emitter * @param {string} name */ addSublanguage(emitter, name) { /** @type DataNode */ const node = emitter.root; node.kind = name; node.sublanguage = true; this.add(node); } toHTML() { const renderer = new HTMLRenderer(this, this.options); return renderer.value(); } finalize() { return true; } } /** * @param {string} value * @returns {RegExp} * */ /** * @param {RegExp | string } re * @returns {string} */ function source(re) { if (!re) return null; if (typeof re === "string") return re; return re.source; } /** * @param {RegExp | string } re * @returns {string} */ function lookahead(re) { return concat('(?=', re, ')'); } /** * @param {RegExp | string } re * @returns {string} */ function anyNumberOfTimes(re) { return concat('(?:', re, ')*'); } /** * @param {RegExp | string } re * @returns {string} */ function optional(re) { return concat('(?:', re, ')?'); } /** * @param {...(RegExp | string) } args * @returns {string} */ function concat(...args) { const joined = args.map((x)=>source(x) ).join(""); return joined; } /** * @param { Array<string | RegExp | Object> } args * @returns {object} */ function stripOptionsFromArgs(args) { const opts = args[args.length - 1]; if (typeof opts === 'object' && opts.constructor === Object) { args.splice(args.length - 1, 1); return opts; } else return { }; } /** * Any of the passed expresssions may match * * Creates a huge this | this | that | that match * @param {(RegExp | string)[] } args * @returns {string} */ function either(...args) { /** @type { object & {capture?: boolean} } */ const opts = stripOptionsFromArgs(args); const joined = '(' + (opts.capture ? "" : "?:") + args.map((x)=>source(x) ).join("|") + ")"; return joined; } /** * @param {RegExp | string} re * @returns {number} */ function countMatchGroups(re) { return new RegExp(re.toString() + '|').exec('').length - 1; } /** * Does lexeme start with a regular expression match at the beginning * @param {RegExp} re * @param {string} lexeme */ function startsWith(re, lexeme) { const match = re && re.exec(lexeme); return match && match.index === 0; } // BACKREF_RE matches an open parenthesis or backreference. To avoid // an incorrect parse, it additionally matches the following: // - [...] elements, where the meaning of parentheses and escapes change // - other escape sequences, so we do not misparse escape sequences as // interesting elements // - non-matching or lookahead parentheses, which do not capture. These // follow the '(' with a '?'. const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; // **INTERNAL** Not intended for outside usage // join logically computes regexps.join(separator), but fixes the // backreferences so they continue to match. // it also places each individual regular expression into it's own // match group, keeping track of the sequencing of those match groups // is currently an exercise for the caller. :-) /** * @param {(string | RegExp)[]} regexps * @param {{joinWith: string}} opts * @returns {string} */ function _rewriteBackreferences(regexps, { joinWith }) { let numCaptures = 0; return regexps.map((regex)=>{ numCaptures += 1; const offset = numCaptures; let re = source(regex); let out = ''; while(re.length > 0){ const match = BACKREF_RE.exec(re); if (!match) { out += re; break; } out += re.substring(0, match.index); re = re.substring(match.index + match[0].length); if (match[0][0] === '\\' && match[1]) // Adjust the backreference. out += '\\' + String(Number(match[1]) + offset); else { out += match[0]; if (match[0] === '(') numCaptures++; } } return out; }).map((re)=>`(${re})` ).join(joinWith); } /** @typedef {import('highlight.js').Mode} Mode */ /** @typedef {import('highlight.js').ModeCallback} ModeCallback */ // Common regexps const MATCH_NOTHING_RE = /\b\B/; const IDENT_RE = '[a-zA-Z]\\w*'; const UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'; const NUMBER_RE = '\\b\\d+(\\.\\d+)?'; const C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float const BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b... const RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'; /** * @param { Partial<Mode> & {binary?: string | RegExp} } opts */ const SHEBANG = (opts = { })=>{ const beginShebang = /^#![ ]*\//; if (opts.binary) opts.begin = concat(beginShebang, /.*\b/, opts.binary, /\b.*/); return inherit$1({ scope: 'meta', begin: beginShebang, end: /$/, relevance: 0, /** @type {ModeCallback} */ "on:begin": (m, resp)=>{ if (m.index !== 0) resp.ignoreMatch(); } }, opts); }; // Common modes const BACKSLASH_ESCAPE = { begin: '\\\\[\\s\\S]', relevance: 0 }; const APOS_STRING_MODE = { scope: 'string', begin: '\'', end: '\'', illegal: '\\n', contains: [ BACKSLASH_ESCAPE ] }; const QUOTE_STRING_MODE = { scope: 'string', begin: '"', end: '"', illegal: '\\n', contains: [ BACKSLASH_ESCAPE ] }; const PHRASAL_WORDS_MODE = { begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ }; /** * Creates a comment mode * * @param {string | RegExp} begin * @param {string | RegExp} end * @param {Mode | {}} [modeOptions] * @returns {Partial<Mode>} */ const COMMENT = function(begin, end, modeOptions = { }) { const mode1 = inherit$1({ scope: 'comment', begin, end, contains: [] }, modeOptions); mode1.contains.push({ scope: 'doctag', // hack to avoid the space from being included. the space is necessary to // match here to prevent the plain text rule below from gobbling up doctags begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)', end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, excludeBegin: true, relevance: 0 }); const ENGLISH_WORD = either(// list of common 1 and 2 letter words in English "I", "a", "is", "so", "us", "to", "at", "if", "in", "it", "on", // note: this is not an exhaustive list of contractions, just popular ones /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, /[A-Za-z]