Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(379)

Unified Diff: lib/src/prism/plugins/show-language/prism-show-language.js

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/src/prism/plugins/show-language/prism-show-language.js
diff --git a/lib/src/prism/plugins/show-language/prism-show-language.js b/lib/src/prism/plugins/show-language/prism-show-language.js
index 7b345d39be6bce58cccfbe8708b55de0a26f1a3f..a221263076078ea53ee3f0f688814739f7d4d1ac 100644
--- a/lib/src/prism/plugins/show-language/prism-show-language.js
+++ b/lib/src/prism/plugins/show-language/prism-show-language.js
@@ -1,20 +1,43 @@
(function(){
-if (!self.Prism) {
+if (typeof self === 'undefined' || !self.Prism || !self.document) {
return;
}
-var Languages = {
- 'csharp': 'C#',
- 'cpp': 'C++'
-};
+// 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","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","latex":"LaTeX","lolcode":"LOLCODE","matlab":"MATLAB","mel":"MEL","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","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 = Languages[env.language] || env.language;
+ var language = Languages[env.language] || (env.language.substring(0, 1).toUpperCase() + env.language.substring(1));
pre.setAttribute('data-language', language);
+
+ /* 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;
+ if (div2.getAttribute('data-language') !== language) {
+ div2.setAttribute('data-language', language);
+ div2.innerHTML = language;
+ }
+ } else {
+ div = document.createElement('div');
+ div2 = document.createElement('div');
+
+ div2.className = 'prism-show-language-label';
+ div2.setAttribute('data-language', language);
+ div2.innerHTML = language;
+
+ div.className = 'prism-show-language';
+ div.appendChild(div2);
+
+ pre.parentNode.insertBefore(div, pre);
+ }
});
})();

Powered by Google App Engine
This is Rietveld 408576698