43 lines
1 KiB
JavaScript
43 lines
1 KiB
JavaScript
var Code = function(w) {
|
|
this.window = w;
|
|
}
|
|
|
|
Code.prototype.init = function() {
|
|
Prism.highlightAllUnder(document);
|
|
|
|
var elements = this.window.document.querySelectorAll('code[data-title], div[data-title]');
|
|
|
|
for (var i = 0, len = elements.length; i < len; i++) {
|
|
var element = elements[i];
|
|
|
|
if (element.tagName === 'CODE') {
|
|
var code = element;
|
|
var pre = code.parentNode;
|
|
var post = pre.parentNode;
|
|
} else {
|
|
var code = element.querySelector('code');
|
|
|
|
if (!code) {
|
|
continue;
|
|
}
|
|
|
|
var pre = code.parentNode;
|
|
var post = pre.parentNode;
|
|
}
|
|
|
|
if (!pre || !post) {
|
|
continue;
|
|
}
|
|
|
|
pre.classList.add('with-title');
|
|
|
|
var title = this.window.document.createElement('div');
|
|
title.classList.add('code-title');
|
|
title.textContent = element.getAttribute('data-title');
|
|
|
|
post.insertBefore(title, pre);
|
|
}
|
|
}
|
|
|
|
module.exports = Code
|