diff --git a/examples/article.html b/examples/article.html index ab59dbb..08ea8ae 100644 --- a/examples/article.html +++ b/examples/article.html @@ -42,7 +42,7 @@
-

We often think of Momentum as a means of dampening oscillations and speeding up the iterations, leading to faster convergence. But it has other interesting behavior. It allows a larger range of step-sizes to be used, and creates its own oscillations. What is going on?

+

We often think of Momentum as a means of dampening oscillations and speeding up the iterations, leading to faster convergence. But it has other interesting behavior. It allows a larger range of step-sizes to be used, and creates its own oscillations. What is going on?

1 diff --git a/src/components.js b/src/components.js index 564d005..99e2453 100644 --- a/src/components.js +++ b/src/components.js @@ -2,7 +2,7 @@ import { Controller } from './controller'; /* Transforms */ import { makeStyleTag } from './styles/styles'; -import { Polyfills, polyfills } from './helpers/polyfills'; +import { Polyfills } from './helpers/polyfills'; /* Components */ import { Abstract } from './components/d-abstract'; @@ -48,7 +48,7 @@ const distillMain = function() { makeStyleTag(document); console.info('Runlevel 1: Static Distill styles have been added.'); console.info('Runlevel 1->2.'); - window.distillRunlevel = 2; + window.distillRunlevel += 1; /* 3. Register components */ /* Article will register controller which takes control from there */ @@ -73,10 +73,21 @@ const distillMain = function() { console.info('Runlevel 2: Distill Template finished registering custom elements.'); console.info('Runlevel 2->3.'); - window.distillRunlevel = 3; - console.info('Distill Template initialisation complete.'); - Controller.listeners.DOMContentLoaded(); + window.distillRunlevel += 1; + /* 4. Register Controller listener functions */ + for (const [functionName, callback] of Object.entries(Controller.listeners)) { + if (typeof callback === 'function') { + document.addEventListener(functionName, callback); + } else { + console.error('Runlevel 3: Controller listeners need to be functions!'); + } + } + console.info('Runlevel 3: We can now listen to controller events.'); + console.info('Runlevel 3->4.'); + window.distillRunlevel += 1; + + console.info('Runlevel 4: Distill Template initialisation complete.'); }; window.distillRunlevel = 0; @@ -84,7 +95,7 @@ window.distillRunlevel = 0; if (Polyfills.browserSupportsAllFeatures()) { console.info('Runlevel 0: No need for polyfills.'); console.info('Runlevel 0->1.'); - window.distillRunlevel = 1; + window.distillRunlevel += 1; distillMain(); } else { console.info('Runlevel 0: Distill Template is loading polyfills.'); diff --git a/src/components/d-article.js b/src/components/d-article.js index aa9b92f..adea128 100644 --- a/src/components/d-article.js +++ b/src/components/d-article.js @@ -1,5 +1,5 @@ // import { Template } from '../mixins/template'; -import { Controller } from '../controller'; +// import { Controller } from '../controller'; const isOnlyWhitespace = /^\s*$/; @@ -29,20 +29,4 @@ export class Article extends HTMLElement { }).observe(this, {childList: true}); } - connectedCallback() { - document.onreadystatechange = function () { - console.log('onreadystatechange:'); - console.log(document.readyState); - }; - console.info('Article tag connected, we can now listen to controller events.'); - console.info('Runlevel 3->4.'); - for (const [functionName, callback] of Object.entries(Controller.listeners)) { - if (typeof callback === 'function') { - document.addEventListener(functionName, callback); - } else { - console.error('Controller listeners need to be functions!'); - } - } - } - } diff --git a/src/components/d-hover-box.js b/src/components/d-hover-box.js index cb8a0ff..99ec733 100644 --- a/src/components/d-hover-box.js +++ b/src/components/d-hover-box.js @@ -52,7 +52,7 @@ export class HoverBox extends T(HTMLElement) { } listen(element) { - console.log(element) + // console.log(element) this.bindDivEvents(this); this.bindTriggerEvents(element); // this.style.display = "block"; diff --git a/src/controller.js b/src/controller.js index d715e67..3a8d482 100644 --- a/src/controller.js +++ b/src/controller.js @@ -6,6 +6,10 @@ import optionalComponents from './transforms/optional-components'; const frontMatter = new FrontMatter(); +function domContentLoaded() { + return ['interactive', 'complete'].indexOf(document.readyState) !== -1; +} + export const Controller = { frontMatter: frontMatter, @@ -120,7 +124,7 @@ export const Controller = { } const prerendered = document.body.hasAttribute('distill-prerendered'); - if (!prerendered) { + if (!prerendered && domContentLoaded()) { optionalComponents(document, frontMatter); const appendix = document.querySelector('distill-appendix'); @@ -141,18 +145,18 @@ export const Controller = { }, DOMContentLoaded() { - if (Controller.loaded || ['interactive', 'complete'].indexOf(document.readyState) === -1) { + if (Controller.loaded || !domContentLoaded()) { return; } else { Controller.loaded = true; - console.log('Controller running DOMContentLoaded'); + console.log('Runlevel 4: Controller running DOMContentLoaded'); } const frontMatterTag = document.querySelector('d-front-matter'); const data = parseFrontmatter(frontMatterTag); Controller.listeners.onFrontMatterChanged({detail: data}); - // console.debug('Resolving "citations" dependency due to initial DOM load.'); + // Resolving "citations" dependency due to initial DOM load frontMatter.citations = collect_citations(); frontMatter.citationsCollected = true; for (const waitingCallback of Controller.waitingOn.citations.slice()) {