Implemented @zeitgeist87’s suggestion in #890 re: env.elements

This commit is contained in:
Lea Verou 2016-02-14 21:08:14 -05:00
parent 49a3324baf
commit af8da8ec97
3 changed files with 24 additions and 17 deletions

View File

@ -89,19 +89,19 @@ var _ = _self.Prism = {
insertBefore: function (inside, before, insert, root) {
root = root || _.languages;
var grammar = root[inside];
if (arguments.length == 2) {
insert = arguments[1];
for (var newToken in insert) {
if (insert.hasOwnProperty(newToken)) {
grammar[newToken] = insert[newToken];
}
}
return grammar;
}
var ret = {};
for (var token in grammar) {
@ -121,7 +121,7 @@ var _ = _self.Prism = {
ret[token] = grammar[token];
}
}
// Update references in other language definitions
_.languages.DFS(_.languages, function(key, value) {
if (value === root[inside] && key != inside) {
@ -152,7 +152,7 @@ var _ = _self.Prism = {
}
},
plugins: {},
highlightAll: function(async, callback) {
var env = {
callback: callback,
@ -160,8 +160,8 @@ var _ = _self.Prism = {
};
_.hooks.run("before-highlightall", env);
var elements = document.querySelectorAll(env.selector);
var elements = env.elements || document.querySelectorAll(env.selector);
for (var i=0, element; element = elements[i++];) {
_.highlightElement(element, async === true, env.callback);

File diff suppressed because one or more lines are too long

View File

@ -94,19 +94,19 @@ var _ = _self.Prism = {
insertBefore: function (inside, before, insert, root) {
root = root || _.languages;
var grammar = root[inside];
if (arguments.length == 2) {
insert = arguments[1];
for (var newToken in insert) {
if (insert.hasOwnProperty(newToken)) {
grammar[newToken] = insert[newToken];
}
}
return grammar;
}
var ret = {};
for (var token in grammar) {
@ -126,7 +126,7 @@ var _ = _self.Prism = {
ret[token] = grammar[token];
}
}
// Update references in other language definitions
_.languages.DFS(_.languages, function(key, value) {
if (value === root[inside] && key != inside) {
@ -157,12 +157,19 @@ var _ = _self.Prism = {
}
},
plugins: {},
highlightAll: function(async, callback) {
var elements = document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');
var env = {
callback: callback,
selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
};
_.hooks.run("before-highlightall", env);
var elements = env.elements || document.querySelectorAll(env.selector);
for (var i=0, element; element = elements[i++];) {
_.highlightElement(element, async === true, callback);
_.highlightElement(element, async === true, env.callback);
}
},