1 |
aloraine |
49 |
document.addEventListener('DOMContentLoaded', function() { |
2 |
|
|
var b = document.body, xmp, strapdown; |
3 |
|
|
|
4 |
|
|
// Hide the page while eviscerating it. |
5 |
|
|
b.style.display = 'none'; |
6 |
|
|
|
7 |
|
|
// Set the title, if not empty. |
8 |
|
|
if (conf.title) document.title += ' - ' + conf.title; |
9 |
|
|
|
10 |
|
|
// Create a script element to fetch Strapdown.js. |
11 |
|
|
strapdown = document.createElement('script'); |
12 |
|
|
strapdown.setAttribute('src', conf.strapdown ? conf.strapdown : 'http://strapdownjs.com/v/0.2/strapdown.js'); |
13 |
|
|
|
14 |
|
|
// Create an XMP element for Strapdown.js to process. |
15 |
|
|
xmp = document.createElement('xmp'), |
16 |
|
|
xmp.setAttribute('theme', conf.theme); |
17 |
|
|
|
18 |
|
|
// Loop through the body elements, accumulating text or HTML in the XMP. |
19 |
|
|
// Mod_autoindex includes the HEADER/README as childless PRE-blocks, so they |
20 |
|
|
// are accumulated as text. All other elements are accumulated as HTML. |
21 |
|
|
// |
22 |
|
|
// The reason to make the distinction between PRE-blocks with and without children |
23 |
|
|
// is because mod_autoindex's FancyIndexing option generates the index inside a PRE. |
24 |
|
|
// The FancyIndex PRE-blocks have many child elements, but HEADER/README PRE-blocks |
25 |
|
|
// will have no child elements. |
26 |
|
|
for (var c=b.children, i=0; i < c.length; i++) { |
27 |
|
|
var e = c[i], |
28 |
|
|
t = (e.nodeName == 'PRE' && e.children.length == 0) ? e.textContent : e.outerHTML; |
29 |
|
|
xmp.innerHTML += t + '\n\n'; |
30 |
|
|
} |
31 |
|
|
|
32 |
|
|
// Now that everything is copied into the XMP, clear the body. |
33 |
|
|
while (b.lastChild) { b.removeChild(b.lastChild); } |
34 |
|
|
|
35 |
|
|
// Insert the XMP and load Strapdown.js to render it. |
36 |
|
|
b.appendChild(xmp); |
37 |
|
|
b.appendChild(strapdown); |
38 |
|
|
}); |