UNPKG

7.91 kBJavaScriptView Raw
1(function () {
2
3 if (typeof Prism === 'undefined' || typeof document === 'undefined') {
4 return;
5 }
6
7 if (!Prism.plugins.toolbar) {
8 console.warn('Show Languages plugin loaded before Toolbar plugin.');
9
10 return;
11 }
12
13 /* eslint-disable */
14
15 // The languages map is built automatically with gulp
16 var Languages = /*languages_placeholder[*/{
17 "none": "Plain text",
18 "plain": "Plain text",
19 "plaintext": "Plain text",
20 "text": "Plain text",
21 "txt": "Plain text",
22 "html": "HTML",
23 "xml": "XML",
24 "svg": "SVG",
25 "mathml": "MathML",
26 "ssml": "SSML",
27 "rss": "RSS",
28 "css": "CSS",
29 "clike": "C-like",
30 "js": "JavaScript",
31 "abap": "ABAP",
32 "abnf": "ABNF",
33 "al": "AL",
34 "antlr4": "ANTLR4",
35 "g4": "ANTLR4",
36 "apacheconf": "Apache Configuration",
37 "apl": "APL",
38 "aql": "AQL",
39 "ino": "Arduino",
40 "arff": "ARFF",
41 "armasm": "ARM Assembly",
42 "arm-asm": "ARM Assembly",
43 "art": "Arturo",
44 "asciidoc": "AsciiDoc",
45 "adoc": "AsciiDoc",
46 "aspnet": "ASP.NET (C#)",
47 "asm6502": "6502 Assembly",
48 "asmatmel": "Atmel AVR Assembly",
49 "autohotkey": "AutoHotkey",
50 "autoit": "AutoIt",
51 "avisynth": "AviSynth",
52 "avs": "AviSynth",
53 "avro-idl": "Avro IDL",
54 "avdl": "Avro IDL",
55 "awk": "AWK",
56 "gawk": "GAWK",
57 "sh": "Shell",
58 "basic": "BASIC",
59 "bbcode": "BBcode",
60 "bbj": "BBj",
61 "bnf": "BNF",
62 "rbnf": "RBNF",
63 "bqn": "BQN",
64 "bsl": "BSL (1C:Enterprise)",
65 "oscript": "OneScript",
66 "csharp": "C#",
67 "cs": "C#",
68 "dotnet": "C#",
69 "cpp": "C++",
70 "cfscript": "CFScript",
71 "cfc": "CFScript",
72 "cil": "CIL",
73 "cilkc": "Cilk/C",
74 "cilk-c": "Cilk/C",
75 "cilkcpp": "Cilk/C++",
76 "cilk-cpp": "Cilk/C++",
77 "cilk": "Cilk/C++",
78 "cmake": "CMake",
79 "cobol": "COBOL",
80 "coffee": "CoffeeScript",
81 "conc": "Concurnas",
82 "csp": "Content-Security-Policy",
83 "css-extras": "CSS Extras",
84 "csv": "CSV",
85 "cue": "CUE",
86 "dataweave": "DataWeave",
87 "dax": "DAX",
88 "django": "Django/Jinja2",
89 "jinja2": "Django/Jinja2",
90 "dns-zone-file": "DNS zone file",
91 "dns-zone": "DNS zone file",
92 "dockerfile": "Docker",
93 "dot": "DOT (Graphviz)",
94 "gv": "DOT (Graphviz)",
95 "ebnf": "EBNF",
96 "editorconfig": "EditorConfig",
97 "ejs": "EJS",
98 "etlua": "Embedded Lua templating",
99 "erb": "ERB",
100 "excel-formula": "Excel Formula",
101 "xlsx": "Excel Formula",
102 "xls": "Excel Formula",
103 "fsharp": "F#",
104 "firestore-security-rules": "Firestore security rules",
105 "ftl": "FreeMarker Template Language",
106 "gml": "GameMaker Language",
107 "gamemakerlanguage": "GameMaker Language",
108 "gap": "GAP (CAS)",
109 "gcode": "G-code",
110 "gdscript": "GDScript",
111 "gedcom": "GEDCOM",
112 "gettext": "gettext",
113 "po": "gettext",
114 "glsl": "GLSL",
115 "gn": "GN",
116 "gni": "GN",
117 "linker-script": "GNU Linker Script",
118 "ld": "GNU Linker Script",
119 "go-module": "Go module",
120 "go-mod": "Go module",
121 "graphql": "GraphQL",
122 "hbs": "Handlebars",
123 "hs": "Haskell",
124 "hcl": "HCL",
125 "hlsl": "HLSL",
126 "http": "HTTP",
127 "hpkp": "HTTP Public-Key-Pins",
128 "hsts": "HTTP Strict-Transport-Security",
129 "ichigojam": "IchigoJam",
130 "icu-message-format": "ICU Message Format",
131 "idr": "Idris",
132 "ignore": ".ignore",
133 "gitignore": ".gitignore",
134 "hgignore": ".hgignore",
135 "npmignore": ".npmignore",
136 "inform7": "Inform 7",
137 "javadoc": "JavaDoc",
138 "javadoclike": "JavaDoc-like",
139 "javastacktrace": "Java stack trace",
140 "jq": "JQ",
141 "jsdoc": "JSDoc",
142 "js-extras": "JS Extras",
143 "json": "JSON",
144 "webmanifest": "Web App Manifest",
145 "json5": "JSON5",
146 "jsonp": "JSONP",
147 "jsstacktrace": "JS stack trace",
148 "js-templates": "JS Templates",
149 "keepalived": "Keepalived Configure",
150 "kts": "Kotlin Script",
151 "kt": "Kotlin",
152 "kumir": "KuMir (КуМир)",
153 "kum": "KuMir (КуМир)",
154 "latex": "LaTeX",
155 "tex": "TeX",
156 "context": "ConTeXt",
157 "lilypond": "LilyPond",
158 "ly": "LilyPond",
159 "emacs": "Lisp",
160 "elisp": "Lisp",
161 "emacs-lisp": "Lisp",
162 "llvm": "LLVM IR",
163 "log": "Log file",
164 "lolcode": "LOLCODE",
165 "magma": "Magma (CAS)",
166 "md": "Markdown",
167 "markup-templating": "Markup templating",
168 "matlab": "MATLAB",
169 "maxscript": "MAXScript",
170 "mel": "MEL",
171 "metafont": "METAFONT",
172 "mongodb": "MongoDB",
173 "moon": "MoonScript",
174 "n1ql": "N1QL",
175 "n4js": "N4JS",
176 "n4jsd": "N4JS",
177 "nand2tetris-hdl": "Nand To Tetris HDL",
178 "naniscript": "Naninovel Script",
179 "nani": "Naninovel Script",
180 "nasm": "NASM",
181 "neon": "NEON",
182 "nginx": "nginx",
183 "nsis": "NSIS",
184 "objectivec": "Objective-C",
185 "objc": "Objective-C",
186 "ocaml": "OCaml",
187 "opencl": "OpenCL",
188 "openqasm": "OpenQasm",
189 "qasm": "OpenQasm",
190 "parigp": "PARI/GP",
191 "objectpascal": "Object Pascal",
192 "psl": "PATROL Scripting Language",
193 "pcaxis": "PC-Axis",
194 "px": "PC-Axis",
195 "peoplecode": "PeopleCode",
196 "pcode": "PeopleCode",
197 "php": "PHP",
198 "phpdoc": "PHPDoc",
199 "php-extras": "PHP Extras",
200 "plant-uml": "PlantUML",
201 "plantuml": "PlantUML",
202 "plsql": "PL/SQL",
203 "powerquery": "PowerQuery",
204 "pq": "PowerQuery",
205 "mscript": "PowerQuery",
206 "powershell": "PowerShell",
207 "promql": "PromQL",
208 "properties": ".properties",
209 "protobuf": "Protocol Buffers",
210 "purebasic": "PureBasic",
211 "pbfasm": "PureBasic",
212 "purs": "PureScript",
213 "py": "Python",
214 "qsharp": "Q#",
215 "qs": "Q#",
216 "q": "Q (kdb+ database)",
217 "qml": "QML",
218 "rkt": "Racket",
219 "cshtml": "Razor C#",
220 "razor": "Razor C#",
221 "jsx": "React JSX",
222 "tsx": "React TSX",
223 "renpy": "Ren'py",
224 "rpy": "Ren'py",
225 "res": "ReScript",
226 "rest": "reST (reStructuredText)",
227 "robotframework": "Robot Framework",
228 "robot": "Robot Framework",
229 "rb": "Ruby",
230 "sas": "SAS",
231 "sass": "Sass (Sass)",
232 "scss": "Sass (SCSS)",
233 "shell-session": "Shell session",
234 "sh-session": "Shell session",
235 "shellsession": "Shell session",
236 "sml": "SML",
237 "smlnj": "SML/NJ",
238 "solidity": "Solidity (Ethereum)",
239 "sol": "Solidity (Ethereum)",
240 "solution-file": "Solution file",
241 "sln": "Solution file",
242 "soy": "Soy (Closure Template)",
243 "sparql": "SPARQL",
244 "rq": "SPARQL",
245 "splunk-spl": "Splunk SPL",
246 "sqf": "SQF: Status Quo Function (Arma 3)",
247 "sql": "SQL",
248 "stata": "Stata Ado",
249 "iecst": "Structured Text (IEC 61131-3)",
250 "supercollider": "SuperCollider",
251 "sclang": "SuperCollider",
252 "systemd": "Systemd configuration file",
253 "t4-templating": "T4 templating",
254 "t4-cs": "T4 Text Templates (C#)",
255 "t4": "T4 Text Templates (C#)",
256 "t4-vb": "T4 Text Templates (VB)",
257 "tap": "TAP",
258 "tt2": "Template Toolkit 2",
259 "toml": "TOML",
260 "trickle": "trickle",
261 "troy": "troy",
262 "trig": "TriG",
263 "ts": "TypeScript",
264 "tsconfig": "TSConfig",
265 "uscript": "UnrealScript",
266 "uc": "UnrealScript",
267 "uorazor": "UO Razor Script",
268 "uri": "URI",
269 "url": "URL",
270 "vbnet": "VB.Net",
271 "vhdl": "VHDL",
272 "vim": "vim",
273 "visual-basic": "Visual Basic",
274 "vba": "VBA",
275 "vb": "Visual Basic",
276 "wasm": "WebAssembly",
277 "web-idl": "Web IDL",
278 "webidl": "Web IDL",
279 "wgsl": "WGSL",
280 "wiki": "Wiki markup",
281 "wolfram": "Wolfram language",
282 "nb": "Mathematica Notebook",
283 "wl": "Wolfram language",
284 "xeoracube": "XeoraCube",
285 "xml-doc": "XML doc (.net)",
286 "xojo": "Xojo (REALbasic)",
287 "xquery": "XQuery",
288 "yaml": "YAML",
289 "yml": "YAML",
290 "yang": "YANG"
291 }/*]*/;
292
293 /* eslint-enable */
294
295 Prism.plugins.toolbar.registerButton('show-language', function (env) {
296 var pre = env.element.parentNode;
297 if (!pre || !/pre/i.test(pre.nodeName)) {
298 return;
299 }
300
301 /**
302 * Tries to guess the name of a language given its id.
303 *
304 * @param {string} id The language id.
305 * @returns {string}
306 */
307 function guessTitle(id) {
308 if (!id) {
309 return id;
310 }
311 return (id.substring(0, 1).toUpperCase() + id.substring(1)).replace(/s(?=cript)/, 'S');
312 }
313
314 var language = pre.getAttribute('data-language') || Languages[env.language] || guessTitle(env.language);
315
316 if (!language) {
317 return;
318 }
319 var element = document.createElement('span');
320 element.textContent = language;
321
322 return element;
323 });
324
325}());