UNPKG

1.78 kBJavaScriptView Raw
1import html from "./components/html";
2import styles from "./components/styles";
3import frontMatter from "./components/front-matter";
4import bibliography from "./components/bibliography";
5import expandData from "./components/expand-data";
6import meta from "./components/meta";
7import header from "./components/header";
8import appendix from "./components/appendix";
9import footer from "./components/footer";
10import citation from "./components/citation";
11import markdown from "./components/markdown";
12import code from "./components/code";
13import generateCrossref from "./components/generate-crossref";
14
15function renderImmediately(dom) {
16 html(dom);
17 styles(dom);
18}
19
20function renderOnLoad(dom, data) {
21 frontMatter(dom, data);
22 bibliography(dom, data);
23 expandData(dom, data);
24 meta(dom, data);
25 header(dom, data);
26 appendix(dom, data);
27 footer(dom, data);
28 markdown(dom, data);
29 code(dom, data);
30 citation(dom, data);
31}
32
33// If we are in a browser, render automatically.
34if(window && window.document) {
35 let data = data || {};
36 renderImmediately(window.document);
37 window.document.addEventListener("DOMContentLoaded", (event) => {
38 renderOnLoad(window.document, data);
39 console.log("final data:");
40 for (var k in data) {console.log(" ", k, ": ", data[k])}
41 });
42}
43
44// For node
45function render(dom, data) {
46 renderImmediately(dom);
47 renderOnload(dom, data);
48}
49
50export {render as render};
51export {html as html};
52export {styles as styles};
53export {frontMatter as frontMatter};
54export {bibliography as bibliography};
55export {meta as meta};
56export {header as header};
57export {appendix as appendix};
58export {footer as footer};
59export {citation as citation};
60export {markdown as markdown};
61export {code as code};
62export {generateCrossref as generateCrossref};