29 lines
1.8 KiB
JavaScript
29 lines
1.8 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","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","asciidoc":"AsciiDoc","aspnet":"ASP.NET (C#)","autohotkey":"AutoHotkey","autoit":"AutoIt","basic":"BASIC","csharp":"C#","cpp":"C++","coffeescript":"CoffeeScript","css-extras":"CSS Extras","django":"Django/Jinja2","fsharp":"F#","glsl":"GLSL","graphql":"GraphQL","http":"HTTP","inform7":"Inform 7","json":"JSON","latex":"LaTeX","livescript":"LiveScript","lolcode":"LOLCODE","matlab":"MATLAB","mel":"MEL","n4js":"N4JS","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","opencl":"OpenCL","parigp":"PARI/GP","php":"PHP","php-extras":"PHP Extras","powershell":"PowerShell","properties":".properties","protobuf":"Protocol Buffers","jsx":"React JSX","renpy":"Ren'py","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","typescript":"TypeScript","vbnet":"VB.Net","vhdl":"VHDL","vim":"vim","wiki":"Wiki markup","xojo":"Xojo (REALbasic)","yaml":"YAML"}/*]*/;
|
||
|
Prism.plugins.toolbar.registerButton('show-language', function(env) {
|
||
|
var pre = env.element.parentNode;
|
||
|
if (!pre || !/pre/i.test(pre.nodeName)) {
|
||
|
return;
|
||
|
}
|
||
|
var language = pre.getAttribute('data-language') || Languages[env.language] || (env.language.substring(0, 1).toUpperCase() + env.language.substring(1));
|
||
|
|
||
|
var element = document.createElement('span');
|
||
|
element.textContent = language;
|
||
|
|
||
|
return element;
|
||
|
});
|
||
|
|
||
|
})();
|