1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
$$('[data-src]').forEach(function(element) {
var src = element.getAttribute('data-src'),
html = element.getAttribute('data-type') === 'text/html',
contentProperty = html? 'innerHTML' : 'textContent';
$u.xhr({
url: src,
callback: function(xhr) {
element[contentProperty] = xhr.responseText;
$u.event.fire(element, 'contentreceived', {
src: src
});
}
});
});
document.body.addEventListener('contentreceived', function(evt) {
var pre = evt.target;
if(!/pre/i.test(pre.nodeName)) {
return;
}
var language = {
'js': 'javascript',
'css': 'css',
'html': 'markup',
'svg': 'markup'
}[(evt.src.match(/\.(\w+)$/) || [,''])[1]];
var code = document.createElement('code');
code.className = 'lang-' + language;
code.textContent = pre.textContent;
pre.textContent = '';
pre.appendChild(code);
Prism.highlightElement(code);
});
/**
* Table of contents
*/
(function(){
var toc = document.createElement('ol');
$$('body > section > h1').forEach(function(heading) {
var section = heading.parentNode;
$u.element.create('li', {
contents: {
tag: 'a',
properties: {
href: '#' + (heading.id || section.id)
},
contents: heading.textContent
},
inside: toc
});
});
if(toc.children.length > 0) {
$u.element.create('section', {
properties: {
id: 'toc'
},
contents: [{
tag: 'h1',
contents: 'On this page'
}, toc],
before: $('body > section')
});
}
})();
// calc()
(function(){
if (PrefixFree.functions.indexOf('calc') == -1) {
var style = document.createElement('_').style;
style.width = 'calc(1px + 1%)'
if(!style.width) {
// calc not supported
var header = $('header'),
footer = $('footer');
function calculatePadding() {
header.style.padding =
footer.style.padding = '30px ' + (innerWidth/2 - 450) + 'px';
}
addEventListener('resize', calculatePadding);
calculatePadding();
}
}
})();