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

Unified Diff: lib/src/prism/components/prism-core.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
« no previous file with comments | « lib/src/prism/components/prism-clike.min.js ('k') | lib/src/prism/components/prism-core.min.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/prism/components/prism-core.js
diff --git a/lib/src/prism/components/prism-core.js b/lib/src/prism/components/prism-core.js
index 542464e0844be5a07fe31e492faf49a4895e22c5..aef621f40bdb6461b2e7590828f321d030fc7d20 100644
--- a/lib/src/prism/components/prism-core.js
+++ b/lib/src/prism/components/prism-core.js
@@ -140,7 +140,8 @@ var _ = _self.Prism = {
}
}
},
-
+ plugins: {},
+
highlightAll: function(async, callback) {
var elements = document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');
@@ -172,18 +173,8 @@ var _ = _self.Prism = {
parent.className = parent.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
}
- if (!grammar) {
- return;
- }
-
var code = element.textContent;
- if(!code) {
- return;
- }
-
- code = code.replace(/^(?:\r?\n|\r)/,'');
-
var env = {
element: element,
language: language,
@@ -191,13 +182,18 @@ var _ = _self.Prism = {
code: code
};
+ if (!code || !grammar) {
+ _.hooks.run('complete', env);
+ return;
+ }
+
_.hooks.run('before-highlight', env);
if (async && _self.Worker) {
var worker = new Worker(_.filename);
worker.onmessage = function(evt) {
- env.highlightedCode = Token.stringify(JSON.parse(evt.data), language);
+ env.highlightedCode = evt.data;
_.hooks.run('before-insert', env);
@@ -205,11 +201,13 @@ var _ = _self.Prism = {
callback && callback.call(env.element);
_.hooks.run('after-highlight', env);
+ _.hooks.run('complete', env);
};
worker.postMessage(JSON.stringify({
language: env.language,
- code: env.code
+ code: env.code,
+ immediateClose: true
}));
}
else {
@@ -222,6 +220,7 @@ var _ = _self.Prism = {
callback && callback.call(element);
_.hooks.run('after-highlight', env);
+ _.hooks.run('complete', env);
}
},
@@ -380,7 +379,7 @@ Token.stringify = function(o, language, parent) {
var attributes = '';
for (var name in env.attributes) {
- attributes += name + '="' + (env.attributes[name] || '') + '"';
+ attributes += (attributes ? ' ' : '') + name + '="' + (env.attributes[name] || '') + '"';
}
return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + '</' + env.tag + '>';
@@ -396,10 +395,13 @@ if (!_self.document) {
_self.addEventListener('message', function(evt) {
var message = JSON.parse(evt.data),
lang = message.language,
- code = message.code;
+ code = message.code,
+ immediateClose = message.immediateClose;
- _self.postMessage(JSON.stringify(_.util.encode(_.tokenize(code, _.languages[lang]))));
- _self.close();
+ _self.postMessage(_.highlight(code, _.languages[lang], lang));
+ if (immediateClose) {
+ _self.close();
+ }
}, false);
return _self.Prism;
@@ -425,3 +427,8 @@ return _self.Prism;
if (typeof module !== 'undefined' && module.exports) {
module.exports = Prism;
}
+
+// hack for components to work correctly in node.js
+if (typeof global !== 'undefined') {
+ global.Prism = Prism;
+}
« no previous file with comments | « lib/src/prism/components/prism-clike.min.js ('k') | lib/src/prism/components/prism-core.min.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698