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 |
|
14 |
|
15 |
|
16 | var Languages = {
|
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 |
|
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 |
|
303 |
|
304 |
|
305 |
|
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 | }());
|