209 lines
5.0 KiB
JavaScript
209 lines
5.0 KiB
JavaScript
(function () {
|
||
|
||
if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
||
return;
|
||
}
|
||
|
||
if (!Prism.plugins.toolbar) {
|
||
console.warn('Show Languages plugin loaded before Toolbar plugin.');
|
||
|
||
return;
|
||
}
|
||
|
||
// The languages map is built automatically with gulp
|
||
var Languages = /*languages_placeholder[*/{
|
||
"html": "HTML",
|
||
"xml": "XML",
|
||
"svg": "SVG",
|
||
"mathml": "MathML",
|
||
"css": "CSS",
|
||
"clike": "C-like",
|
||
"js": "JavaScript",
|
||
"abap": "ABAP",
|
||
"abnf": "Augmented Backus–Naur form",
|
||
"antlr4": "ANTLR4",
|
||
"g4": "ANTLR4",
|
||
"apacheconf": "Apache Configuration",
|
||
"apl": "APL",
|
||
"aql": "AQL",
|
||
"arff": "ARFF",
|
||
"asciidoc": "AsciiDoc",
|
||
"adoc": "AsciiDoc",
|
||
"asm6502": "6502 Assembly",
|
||
"aspnet": "ASP.NET (C#)",
|
||
"autohotkey": "AutoHotkey",
|
||
"autoit": "AutoIt",
|
||
"shell": "Bash",
|
||
"basic": "BASIC",
|
||
"bbcode": "BBcode",
|
||
"shortcode": "BBcode",
|
||
"bnf": "Backus–Naur form",
|
||
"rbnf": "Routing Backus–Naur form",
|
||
"conc": "Concurnas",
|
||
"csharp": "C#",
|
||
"cs": "C#",
|
||
"dotnet": "C#",
|
||
"cpp": "C++",
|
||
"cil": "CIL",
|
||
"coffee": "CoffeeScript",
|
||
"cmake": "CMake",
|
||
"csp": "Content-Security-Policy",
|
||
"css-extras": "CSS Extras",
|
||
"dax": "DAX",
|
||
"django": "Django/Jinja2",
|
||
"jinja2": "Django/Jinja2",
|
||
"dns-zone-file": "DNS zone file",
|
||
"dns-zone": "DNS zone file",
|
||
"dockerfile": "Docker",
|
||
"ebnf": "Extended Backus–Naur form",
|
||
"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",
|
||
"gcode": "G-code",
|
||
"gdscript": "GDScript",
|
||
"gedcom": "GEDCOM",
|
||
"glsl": "GLSL",
|
||
"gml": "GameMaker Language",
|
||
"gamemakerlanguage": "GameMaker Language",
|
||
"graphql": "GraphQL",
|
||
"hs": "Haskell",
|
||
"hcl": "HCL",
|
||
"http": "HTTP",
|
||
"hpkp": "HTTP Public-Key-Pins",
|
||
"hsts": "HTTP Strict-Transport-Security",
|
||
"ichigojam": "IchigoJam",
|
||
"inform7": "Inform 7",
|
||
"javadoc": "JavaDoc",
|
||
"javadoclike": "JavaDoc-like",
|
||
"javastacktrace": "Java stack trace",
|
||
"jq": "JQ",
|
||
"jsdoc": "JSDoc",
|
||
"js-extras": "JS Extras",
|
||
"js-templates": "JS Templates",
|
||
"json": "JSON",
|
||
"jsonp": "JSONP",
|
||
"json5": "JSON5",
|
||
"latex": "LaTeX",
|
||
"tex": "TeX",
|
||
"context": "ConTeXt",
|
||
"lilypond": "LilyPond",
|
||
"ly": "LilyPond",
|
||
"emacs": "Lisp",
|
||
"elisp": "Lisp",
|
||
"emacs-lisp": "Lisp",
|
||
"llvm": "LLVM IR",
|
||
"lolcode": "LOLCODE",
|
||
"md": "Markdown",
|
||
"markup-templating": "Markup templating",
|
||
"matlab": "MATLAB",
|
||
"mel": "MEL",
|
||
"moon": "MoonScript",
|
||
"n1ql": "N1QL",
|
||
"n4js": "N4JS",
|
||
"n4jsd": "N4JS",
|
||
"nand2tetris-hdl": "Nand To Tetris HDL",
|
||
"nasm": "NASM",
|
||
"neon": "NEON",
|
||
"nginx": "nginx",
|
||
"nsis": "NSIS",
|
||
"objectivec": "Objective-C",
|
||
"ocaml": "OCaml",
|
||
"opencl": "OpenCL",
|
||
"parigp": "PARI/GP",
|
||
"objectpascal": "Object Pascal",
|
||
"pcaxis": "PC-Axis",
|
||
"px": "PC-Axis",
|
||
"php": "PHP",
|
||
"phpdoc": "PHPDoc",
|
||
"php-extras": "PHP Extras",
|
||
"plsql": "PL/SQL",
|
||
"powerquery": "PowerQuery",
|
||
"pq": "PowerQuery",
|
||
"mscript": "PowerQuery",
|
||
"powershell": "PowerShell",
|
||
"properties": ".properties",
|
||
"protobuf": "Protocol Buffers",
|
||
"py": "Python",
|
||
"q": "Q (kdb+ database)",
|
||
"qml": "QML",
|
||
"jsx": "React JSX",
|
||
"tsx": "React TSX",
|
||
"renpy": "Ren'py",
|
||
"rest": "reST (reStructuredText)",
|
||
"robotframework": "Robot Framework",
|
||
"robot": "Robot Framework",
|
||
"rb": "Ruby",
|
||
"sas": "SAS",
|
||
"sass": "Sass (Sass)",
|
||
"scss": "Sass (Scss)",
|
||
"shell-session": "Shell session",
|
||
"solidity": "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",
|
||
"tap": "TAP",
|
||
"toml": "TOML",
|
||
"tt2": "Template Toolkit 2",
|
||
"trig": "TriG",
|
||
"ts": "TypeScript",
|
||
"t4-cs": "T4 Text Templates (C#)",
|
||
"t4": "T4 Text Templates (C#)",
|
||
"t4-vb": "T4 Text Templates (VB)",
|
||
"t4-templating": "T4 templating",
|
||
"vbnet": "VB.Net",
|
||
"vhdl": "VHDL",
|
||
"vim": "vim",
|
||
"visual-basic": "Visual Basic",
|
||
"vb": "Visual Basic",
|
||
"wasm": "WebAssembly",
|
||
"wiki": "Wiki markup",
|
||
"xeoracube": "XeoraCube",
|
||
"xojo": "Xojo (REALbasic)",
|
||
"xquery": "XQuery",
|
||
"yaml": "YAML",
|
||
"yml": "YAML"
|
||
}/*]*/;
|
||
|
||
Prism.plugins.toolbar.registerButton('show-language', function (env) {
|
||
var pre = env.element.parentNode;
|
||
if (!pre || !/pre/i.test(pre.nodeName)) {
|
||
return;
|
||
}
|
||
|
||
/**
|
||
* Tries to guess the name of a language given its id.
|
||
*
|
||
* @param {string} id The language id.
|
||
* @returns {string}
|
||
*/
|
||
function guessTitle(id) {
|
||
if (!id) {
|
||
return id;
|
||
}
|
||
return (id.substring(0, 1).toUpperCase() + id.substring(1)).replace(/s(?=cript)/, 'S');
|
||
}
|
||
|
||
var language = pre.getAttribute('data-language') || Languages[env.language] || guessTitle(env.language);
|
||
|
||
if (!language) {
|
||
return;
|
||
}
|
||
var element = document.createElement('span');
|
||
element.textContent = language;
|
||
|
||
return element;
|
||
});
|
||
|
||
})();
|