/bower_components/prism/plugins/show-language/prism-show-language.js
JavaScript | 38 lines | 28 code | 8 blank | 2 comment | 10 complexity | 5d346b0345ac09490e69cda4c2fbb38b MD5 | raw file
- (function(){
- if (typeof self === 'undefined' || !self.Prism || !self.document) {
- return;
- }
- // The languages map is built automatically with gulp
- var Languages = /*languages_placeholder[*/{"css":"CSS","clike":"C-like","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","asciidoc":"AsciiDoc","aspnet":"ASP.NET (C#)","autoit":"AutoIt","autohotkey":"AutoHotkey","basic":"BASIC","csharp":"C#","cpp":"C++","coffeescript":"CoffeeScript","css-extras":"CSS Extras","fsharp":"F#","glsl":"GLSL","http":"HTTP","inform7":"Inform 7","json":"JSON","latex":"LaTeX","lolcode":"LOLCODE","matlab":"MATLAB","mel":"MEL","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","parigp":"PARI/GP","php":"PHP","php-extras":"PHP Extras","powershell":"PowerShell","jsx":"React JSX","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","typescript":"TypeScript","vhdl":"VHDL","vim":"vim","wiki":"Wiki markup","yaml":"YAML"}/*]*/;
- Prism.hooks.add('before-highlight', 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));
- /* check if the divs already exist */
- var sib = pre.previousSibling;
- var div, div2;
- if (sib && /\s*\bprism-show-language\b\s*/.test(sib.className) &&
- sib.firstChild &&
- /\s*\bprism-show-language-label\b\s*/.test(sib.firstChild.className)) {
- div2 = sib.firstChild;
- } else {
- div = document.createElement('div');
- div2 = document.createElement('div');
- div2.className = 'prism-show-language-label';
- div.className = 'prism-show-language';
- div.appendChild(div2);
- pre.parentNode.insertBefore(div, pre);
- }
-
- div2.innerHTML = language;
- });
- })();