// Versions: 1.29.0 // Toolbar !function() { if ('undefined' != typeof Prism && 'undefined' != typeof document) { var e = [], t = {}, n = function() { }; Prism.plugins.toolbar = {}; var a = Prism.plugins.toolbar.registerButton = function(n, a) { var r; r = 'function' == typeof a ? a : function(e) { var t; return 'function' == typeof a.onClick ? ((t = document.createElement('button')).type = 'button', t.addEventListener('click', (function() { a.onClick.call(this, e); }))) : 'string' == typeof a.url ? (t = document.createElement('a')).href = a.url : t = document.createElement('span'), a.className && t.classList.add(a.className), t.textContent = a.text, t; }, n in t ? console.warn('There is a button with the key "' + n + '" registered already.') : e.push(t[n] = r); }, r = Prism.plugins.toolbar.hook = function(a) { var r = a.element.parentNode; if (r && /pre/i.test(r.nodeName) && !r.parentNode.classList.contains('code-toolbar')) { var o = document.createElement('div'); o.classList.add('code-toolbar'), r.parentNode.insertBefore(o, r), o.appendChild(r); var i = document.createElement('div'); i.classList.add('toolbar'); var l = e, d = function(e) { for (; e;) { var t = e.getAttribute('data-toolbar-order'); if (null != t) return (t = t.trim()).length ? t.split(/\s*,\s*/g) : []; e = e.parentElement; } }(a.element); d && (l = d.map((function(e) { return t[e] || n; }))), l.forEach((function(e) { var t = e(a); if (t) { var n = document.createElement('div'); n.classList.add('toolbar-item'), n.appendChild(t), i.appendChild(n); } })), o.appendChild(i); } }; a('label', (function(e) { var t = e.element.parentNode; if (t && /pre/i.test(t.nodeName) && t.hasAttribute('data-label')) { var n, a, r = t.getAttribute('data-label'); try { a = document.querySelector('template#' + r); } catch (e) { } return a ? n = a.content : (t.hasAttribute('data-url') ? (n = document.createElement('a')).href = t.getAttribute('data-url') : n = document.createElement('span'), n.textContent = r), n; } })), Prism.hooks.add('complete', r); } }(); // Show Language !function() { if ('undefined' != typeof Prism && 'undefined' != typeof document) if (Prism.plugins.toolbar) { var e = { none: 'Plain text', plain: 'Plain text', plaintext: 'Plain text', text: 'Plain text', txt: 'Plain text', html: 'HTML', xml: 'XML', svg: 'SVG', mathml: 'MathML', ssml: 'SSML', rss: 'RSS', css: 'CSS', clike: 'C-like', js: 'JavaScript', abap: 'ABAP', abnf: 'ABNF', al: 'AL', antlr4: 'ANTLR4', g4: 'ANTLR4', apacheconf: 'Apache Configuration', apl: 'APL', aql: 'AQL', ino: 'Arduino', arff: 'ARFF', armasm: 'ARM Assembly', 'arm-asm': 'ARM Assembly', art: 'Arturo', asciidoc: 'AsciiDoc', adoc: 'AsciiDoc', aspnet: 'ASP.NET (C#)', asm6502: '6502 Assembly', asmatmel: 'Atmel AVR Assembly', autohotkey: 'AutoHotkey', autoit: 'AutoIt', avisynth: 'AviSynth', avs: 'AviSynth', 'avro-idl': 'Avro IDL', avdl: 'Avro IDL', awk: 'AWK', gawk: 'GAWK', sh: 'Shell', basic: 'BASIC', bbcode: 'BBcode', bbj: 'BBj', bnf: 'BNF', rbnf: 'RBNF', bqn: 'BQN', bsl: 'BSL (1C:Enterprise)', oscript: 'OneScript', csharp: 'C#', cs: 'C#', dotnet: 'C#', cpp: 'C++', cfscript: 'CFScript', cfc: 'CFScript', cil: 'CIL', cilkc: 'Cilk/C', 'cilk-c': 'Cilk/C', cilkcpp: 'Cilk/C++', 'cilk-cpp': 'Cilk/C++', cilk: 'Cilk/C++', cmake: 'CMake', cobol: 'COBOL', coffee: 'CoffeeScript', conc: 'Concurnas', csp: 'Content-Security-Policy', 'css-extras': 'CSS Extras', csv: 'CSV', cue: 'CUE', dataweave: 'DataWeave', dax: 'DAX', django: 'Django/Jinja2', jinja2: 'Django/Jinja2', 'dns-zone-file': 'DNS zone file', 'dns-zone': 'DNS zone file', dockerfile: 'Docker', dot: 'DOT (Graphviz)', gv: 'DOT (Graphviz)', ebnf: 'EBNF', editorconfig: 'EditorConfig', ejs: 'EJS', etlua: 'Embedded Lua templating', erb: 'ERB', 'excel-formula': 'Excel Formula', xlsx: 'Excel Formula', xls: 'Excel Formula', fsharp: 'F#', 'firestore-security-rules': 'Firestore security rules', ftl: 'FreeMarker Template Language', gml: 'GameMaker Language', gamemakerlanguage: 'GameMaker Language', gap: 'GAP (CAS)', gcode: 'G-code', gdscript: 'GDScript', gedcom: 'GEDCOM', gettext: 'gettext', po: 'gettext', glsl: 'GLSL', gn: 'GN', gni: 'GN', 'linker-script': 'GNU Linker Script', ld: 'GNU Linker Script', 'go-module': 'Go module', 'go-mod': 'Go module', graphql: 'GraphQL', hbs: 'Handlebars', hs: 'Haskell', hcl: 'HCL', hlsl: 'HLSL', http: 'HTTP', hpkp: 'HTTP Public-Key-Pins', hsts: 'HTTP Strict-Transport-Security', ichigojam: 'IchigoJam', 'icu-message-format': 'ICU Message Format', idr: 'Idris', ignore: '.ignore', gitignore: '.gitignore', hgignore: '.hgignore', npmignore: '.npmignore', inform7: 'Inform 7', javadoc: 'JavaDoc', javadoclike: 'JavaDoc-like', javastacktrace: 'Java stack trace', jq: 'JQ', jsdoc: 'JSDoc', 'js-extras': 'JS Extras', json: 'JSON', webmanifest: 'Web App Manifest', json5: 'JSON5', jsonp: 'JSONP', jsstacktrace: 'JS stack trace', 'js-templates': 'JS Templates', keepalived: 'Keepalived Configure', kts: 'Kotlin Script', kt: 'Kotlin', kumir: 'KuMir (КуМир)', kum: 'KuMir (КуМир)', latex: 'LaTeX', tex: 'TeX', context: 'ConTeXt', lilypond: 'LilyPond', ly: 'LilyPond', emacs: 'Lisp', elisp: 'Lisp', 'emacs-lisp': 'Lisp', llvm: 'LLVM IR', log: 'Log file', lolcode: 'LOLCODE', magma: 'Magma (CAS)', md: 'Markdown', 'markup-templating': 'Markup templating', matlab: 'MATLAB', maxscript: 'MAXScript', mel: 'MEL', metafont: 'METAFONT', mongodb: 'MongoDB', moon: 'MoonScript', n1ql: 'N1QL', n4js: 'N4JS', n4jsd: 'N4JS', 'nand2tetris-hdl': 'Nand To Tetris HDL', naniscript: 'Naninovel Script', nani: 'Naninovel Script', nasm: 'NASM', neon: 'NEON', nginx: 'nginx', nsis: 'NSIS', objectivec: 'Objective-C', objc: 'Objective-C', ocaml: 'OCaml', opencl: 'OpenCL', openqasm: 'OpenQasm', qasm: 'OpenQasm', parigp: 'PARI/GP', objectpascal: 'Object Pascal', psl: 'PATROL Scripting Language', pcaxis: 'PC-Axis', px: 'PC-Axis', peoplecode: 'PeopleCode', pcode: 'PeopleCode', php: 'PHP', phpdoc: 'PHPDoc', 'php-extras': 'PHP Extras', 'plant-uml': 'PlantUML', plantuml: 'PlantUML', plsql: 'PL/SQL', powerquery: 'PowerQuery', pq: 'PowerQuery', mscript: 'PowerQuery', powershell: 'PowerShell', promql: 'PromQL', properties: '.properties', protobuf: 'Protocol Buffers', purebasic: 'PureBasic', pbfasm: 'PureBasic', purs: 'PureScript', py: 'Python', qsharp: 'Q#', qs: 'Q#', q: 'Q (kdb+ database)', qml: 'QML', rkt: 'Racket', cshtml: 'Razor C#', razor: 'Razor C#', jsx: 'React JSX', tsx: 'React TSX', renpy: 'Ren\'py', rpy: 'Ren\'py', res: 'ReScript', rest: 'reST (reStructuredText)', robotframework: 'Robot Framework', robot: 'Robot Framework', rb: 'Ruby', sas: 'SAS', sass: 'Sass (Sass)', scss: 'Sass (SCSS)', 'shell-session': 'Shell session', 'sh-session': 'Shell session', shellsession: 'Shell session', sml: 'SML', smlnj: 'SML/NJ', solidity: 'Solidity (Ethereum)', sol: 'Solidity (Ethereum)', 'solution-file': 'Solution file', sln: 'Solution file', soy: 'Soy (Closure Template)', sparql: 'SPARQL', rq: 'SPARQL', 'splunk-spl': 'Splunk SPL', sqf: 'SQF: Status Quo Function (Arma 3)', sql: 'SQL', stata: 'Stata Ado', iecst: 'Structured Text (IEC 61131-3)', supercollider: 'SuperCollider', sclang: 'SuperCollider', systemd: 'Systemd configuration file', 't4-templating': 'T4 templating', 't4-cs': 'T4 Text Templates (C#)', t4: 'T4 Text Templates (C#)', 't4-vb': 'T4 Text Templates (VB)', tap: 'TAP', tt2: 'Template Toolkit 2', toml: 'TOML', trickle: 'trickle', troy: 'troy', trig: 'TriG', ts: 'TypeScript', tsconfig: 'TSConfig', uscript: 'UnrealScript', uc: 'UnrealScript', uorazor: 'UO Razor Script', uri: 'URI', url: 'URL', vbnet: 'VB.Net', vhdl: 'VHDL', vim: 'vim', 'visual-basic': 'Visual Basic', vba: 'VBA', vb: 'Visual Basic', wasm: 'WebAssembly', 'web-idl': 'Web IDL', webidl: 'Web IDL', wgsl: 'WGSL', wiki: 'Wiki markup', wolfram: 'Wolfram language', nb: 'Mathematica Notebook', wl: 'Wolfram language', xeoracube: 'XeoraCube', 'xml-doc': 'XML doc (.net)', xojo: 'Xojo (REALbasic)', xquery: 'XQuery', yaml: 'YAML', yml: 'YAML', yang: 'YANG', }; Prism.plugins.toolbar.registerButton('show-language', (function(a) { var t = a.element.parentNode; if (t && /pre/i.test(t.nodeName)) { var o, i = t.getAttribute('data-language') || e[a.language] || ((o = a.language) ? (o.substring(0, 1).toUpperCase() + o.substring(1)).replace(/s(?=cript)/, 'S') : o); if (i) { var s = document.createElement('span'); return s.textContent = i, s; } } })); } else console.warn('Show Languages plugin loaded before Toolbar plugin.'); }(); // Copy Button !function() { function t(t) { var e = document.createElement('textarea'); e.value = t.getText(), e.style.top = '0', e.style.left = '0', e.style.position = 'fixed', document.body.appendChild(e), e.focus(), e.select(); try { var o = document.execCommand('copy'); setTimeout((function() { o ? t.success() : t.error(); }), 1); } catch (e) { setTimeout((function() { t.error(e); }), 1); } document.body.removeChild(e); } 'undefined' != typeof Prism && 'undefined' != typeof document && (Prism.plugins.toolbar ? Prism.plugins.toolbar.registerButton('copy-to-clipboard', (function(e) { var o = e.element, n = function(t) { var e = { copy: 'Copy', 'copy-error': 'Press Ctrl+C to copy', 'copy-success': 'Copied!', 'copy-timeout': 5e3, }; for (var o in e) { for (var n = 'data-prismjs-' + o, c = t; c && !c.hasAttribute(n);) c = c.parentElement; c && (e[o] = c.getAttribute(n)); } return e; }(o), c = document.createElement('button'); c.className = 'copy-to-clipboard-button', c.setAttribute('type', 'button'); var r = document.createElement('span'); return c.appendChild(r), u('copy'), function(e, o) { e.addEventListener('click', (function() { !function(e) { navigator.clipboard ? navigator.clipboard.writeText(e.getText()).then(e.success, (function() { t(e); })) : t(e); }(o); })); }(c, { getText: function() { return o.textContent; }, success: function() { u('copy-success'), i(); }, error: function() { u('copy-error'), setTimeout((function() { !function(t) { window.getSelection().selectAllChildren(t); }(o); }), 1), i(); }, }), c; function i() { setTimeout((function() { u('copy'); }), n['copy-timeout']); } function u(t) { r.textContent = n[t], c.setAttribute('data-copy-state', t); } })) : console.warn('Copy to Clipboard plugin loaded before Toolbar plugin.')); }(); // Line Numbers !function() { if ('undefined' != typeof Prism && 'undefined' != typeof document) { var e = 'line-numbers', n = /\n(?!$)/g, t = Prism.plugins.lineNumbers = { getLine: function(n, t) { if ('PRE' === n.tagName && n.classList.contains(e)) { var i = n.querySelector('.line-numbers-rows'); if (i) { var r = parseInt(n.getAttribute('data-start'), 10) || 1, s = r + (i.children.length - 1); t < r && (t = r), t > s && (t = s); var l = t - r; return i.children[l]; } } }, resize: function(e) { r([e]); }, assumeViewportIndependence: !0, }, i = void 0; window.addEventListener('resize', (function() { t.assumeViewportIndependence && i === window.innerWidth || (i = window.innerWidth, r(Array.prototype.slice.call(document.querySelectorAll('pre.line-numbers')))); })), Prism.hooks.add('complete', (function(t) { if (t.code) { var i = t.element, s = i.parentNode; if (s && /pre/i.test(s.nodeName) && !i.querySelector('.line-numbers-rows') && Prism.util.isActive(i, e)) { i.classList.remove(e), s.classList.add(e); var l, o = t.code.match(n), a = o ? o.length + 1 : 1, u = new Array(a + 1).join(''); (l = document.createElement('span')).setAttribute('aria-hidden', 'true'), l.className = 'line-numbers-rows', l.innerHTML = u, s.hasAttribute('data-start') && (s.style.counterReset = 'linenumber ' + (parseInt(s.getAttribute('data-start'), 10) - 1)), t.element.appendChild(l), r([s]), Prism.hooks.run('line-numbers', t); } } })), Prism.hooks.add('line-numbers', (function(e) { e.plugins = e.plugins || {}, e.plugins.lineNumbers = !0; })); } function r(e) { if (0 != (e = e.filter((function(e) { var n, t = (n = e, n ? window.getComputedStyle ? getComputedStyle(n) : n.currentStyle || null : null)['white-space']; return 'pre-wrap' === t || 'pre-line' === t; }))).length) { var t = e.map((function(e) { var t = e.querySelector('code'), i = e.querySelector('.line-numbers-rows'); if (t && i) { var r = e.querySelector('.line-numbers-sizer'), s = t.textContent.split(n); r || ((r = document.createElement('span')).className = 'line-numbers-sizer', t.appendChild(r)), r.innerHTML = '0', r.style.display = 'block'; var l = r.getBoundingClientRect().height; return r.innerHTML = '', { element: e, lines: s, lineHeights: [], oneLinerHeight: l, sizer: r }; } })).filter(Boolean); t.forEach((function(e) { var n = e.sizer, t = e.lines, i = e.lineHeights, r = e.oneLinerHeight; i[t.length - 1] = void 0, t.forEach((function(e, t) { if (e && e.length > 1) { var s = n.appendChild(document.createElement('span')); s.style.display = 'block', s.textContent = e; } else i[t] = r; })); })), t.forEach((function(e) { for (var n = e.sizer, t = e.lineHeights, i = 0, r = 0; r < t.length; r++) void 0 === t[r] && (t[r] = n.children[i++].getBoundingClientRect().height); })), t.forEach((function(e) { var n = e.sizer, t = e.element.querySelector('.line-numbers-rows'); n.style.display = 'none', n.innerHTML = '', e.lineHeights.forEach((function(e, n) { t.children[n].style.height = e + 'px'; })); })); } } }();