return require(['prism/components/prism-' + PrismMeta[this.language].file])
.then(idleify(function () {
- var highlighted = Prism.highlightSeparateLines(this.codeContainer.textContent, this.language);
+ var grammar = Prism.languages[this.language];
+ if (!grammar) {
+ throw new Error('Invalid language ' + language + ' given.');
+ }
+
+ var container = elCreate('div');
+ container.innerHTML = Prism.highlight(this.codeContainer.textContent, grammar, this.language);
+ return container;
+ }.bind(this)))
+ .then(idleify(function (container) {
+ var highlighted = Prism.wscSplitIntoLines(container);
var highlightedLines = elBySelAll('[data-number]', highlighted);
var originalLines = elBySelAll('.codeBoxLine > span', this.codeContainer);
window.Prism.manual = true
define(['prism/prism'], function () {
- Prism.highlightSeparateLines = function (text, language) {
- var frag = new DocumentFragment(),
- lineNo = 1,
- it, node, line, grammar, container;
+ Prism.wscSplitIntoLines = function (container) {
+ var frag = new DocumentFragment();
+ var lineNo = 1;
+ var it, node, line;
function newLine() {
var line = elCreate('span');
return line;
}
- function highlightStringIntoContainer() {
- var container = elCreate('div');
- container.innerHTML = Prism.highlight(text, grammar, language);
- return container;
- }
-
- grammar = Prism.languages[language];
- if (!grammar) {
- throw new Error('Invalid language ' + language + ' given.');
- }
-
- container = highlightStringIntoContainer();
it = document.createNodeIterator(container, NodeFilter.SHOW_TEXT);
line = newLine(lineNo);