@@ -18,24 +18,6 @@ var Prism = (function (_self){
18
18
var lang = / \b l a n g (?: u a g e ) ? - ( [ \w - ] + ) \b / i;
19
19
var uniqueId = 0 ;
20
20
21
- /**
22
- * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.
23
- *
24
- * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.
25
- *
26
- * @param {Element } element
27
- * @returns {string }
28
- */
29
- function getLanguage ( element ) {
30
- while ( element && ! lang . test ( element . className ) ) {
31
- element = element . parentNode ;
32
- }
33
- if ( element ) {
34
- return ( element . className . match ( lang ) || [ , 'none' ] ) [ 1 ] . toLowerCase ( ) ;
35
- }
36
- return 'none' ;
37
- }
38
-
39
21
40
22
var _ = {
41
23
manual : _self . Prism && _self . Prism . manual ,
@@ -103,6 +85,24 @@ var _ = {
103
85
}
104
86
} ,
105
87
88
+ /**
89
+ * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.
90
+ *
91
+ * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.
92
+ *
93
+ * @param {Element } element
94
+ * @returns {string }
95
+ */
96
+ getLanguage : function ( element ) {
97
+ while ( element && ! lang . test ( element . className ) ) {
98
+ element = element . parentElement ;
99
+ }
100
+ if ( element ) {
101
+ return ( element . className . match ( lang ) || [ , 'none' ] ) [ 1 ] . toLowerCase ( ) ;
102
+ }
103
+ return 'none' ;
104
+ } ,
105
+
106
106
/**
107
107
* Returns the script element that is currently executing.
108
108
*
@@ -236,21 +236,24 @@ var _ = {
236
236
highlightAllUnder : function ( container , async , callback ) {
237
237
var env = {
238
238
callback : callback ,
239
+ container : container ,
239
240
selector : 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
240
241
} ;
241
242
242
243
_ . hooks . run ( 'before-highlightall' , env ) ;
243
244
244
- var elements = container . querySelectorAll ( env . selector ) ;
245
+ env . elements = Array . prototype . slice . apply ( env . container . querySelectorAll ( env . selector ) ) ;
246
+
247
+ _ . hooks . run ( 'before-all-elements-highlight' , env ) ;
245
248
246
- for ( var i = 0 , element ; element = elements [ i ++ ] ; ) {
249
+ for ( var i = 0 , element ; element = env . elements [ i ++ ] ; ) {
247
250
_ . highlightElement ( element , async === true , env . callback ) ;
248
251
}
249
252
} ,
250
253
251
254
highlightElement : function ( element , async , callback ) {
252
255
// Find language
253
- var language = getLanguage ( element ) ;
256
+ var language = _ . util . getLanguage ( element ) ;
254
257
var grammar = _ . languages [ language ] ;
255
258
256
259
// Set language on the element, if not present
0 commit comments