PageRenderTime 43ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/bower_components/prism/plugins/show-language/prism-show-language.js

https://gitlab.com/bakeiro/tiempo_polymer
JavaScript | 38 lines | 28 code | 8 blank | 2 comment | 10 complexity | 5d346b0345ac09490e69cda4c2fbb38b MD5 | raw file
  1. (function(){
  2. if (typeof self === 'undefined' || !self.Prism || !self.document) {
  3. return;
  4. }
  5. // The languages map is built automatically with gulp
  6. 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"}/*]*/;
  7. Prism.hooks.add('before-highlight', function(env) {
  8. var pre = env.element.parentNode;
  9. if (!pre || !/pre/i.test(pre.nodeName)) {
  10. return;
  11. }
  12. var language = pre.getAttribute('data-language') || Languages[env.language] || (env.language.substring(0, 1).toUpperCase() + env.language.substring(1));
  13. /* check if the divs already exist */
  14. var sib = pre.previousSibling;
  15. var div, div2;
  16. if (sib && /\s*\bprism-show-language\b\s*/.test(sib.className) &&
  17. sib.firstChild &&
  18. /\s*\bprism-show-language-label\b\s*/.test(sib.firstChild.className)) {
  19. div2 = sib.firstChild;
  20. } else {
  21. div = document.createElement('div');
  22. div2 = document.createElement('div');
  23. div2.className = 'prism-show-language-label';
  24. div.className = 'prism-show-language';
  25. div.appendChild(div2);
  26. pre.parentNode.insertBefore(div, pre);
  27. }
  28. div2.innerHTML = language;
  29. });
  30. })();