diff --git a/.eleventy.js b/.eleventy.js
index e5b51e5..d11142b 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -1,4 +1,16 @@
+const moment = require("moment");
+
+moment.locale("en");
+
module.exports = function(eleventyConfig) {
+ eleventyConfig.addFilter("dateIso", date => {
+ return moment(date).toISOString();
+ });
+
+ eleventyConfig.addFilter("dateReadable", date => {
+ return moment(date).format("LL"); // E.g. May 31, 2019
+ });
+
eleventyConfig.addPassthroughCopy("css");
eleventyConfig.addPassthroughCopy("js");
eleventyConfig.addPassthroughCopy("CNAME");
diff --git a/_data/authors.json b/_data/authors.json
new file mode 100644
index 0000000..ac58294
--- /dev/null
+++ b/_data/authors.json
@@ -0,0 +1,14 @@
+{
+ "john": {
+ "name": "John Behan",
+ "link": "/about/#john"
+ },
+ "ian": {
+ "name": "Ian Read",
+ "link": "/about/#ian"
+ },
+ "donovan": {
+ "name": "Donovan Hutchinson",
+ "link": "/about/#donovan"
+ }
+}
diff --git a/_includes/base.njk b/_includes/base.njk
new file mode 100644
index 0000000..10c169c
--- /dev/null
+++ b/_includes/base.njk
@@ -0,0 +1,68 @@
+---
+title: OpenJS NodeJS Application Developer Study Guide
+---
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ content | safe }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/_includes/default.njk b/_includes/default.njk
index 5624a43..9bdf6b8 100644
--- a/_includes/default.njk
+++ b/_includes/default.njk
@@ -1,61 +1,8 @@
---
-title: OpenJS NodeJS Application Developer Study Guide
+layout: base.njk
+templateClass: tmpl-post
---
-
-
-
-
-
- {{ title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ title }}
- {{ content | safe }}
-
-
-
-
-
-
\ No newline at end of file
+
+{{ title }}
+
+{{ content | safe }}
\ No newline at end of file
diff --git a/_includes/post.njk b/_includes/post.njk
index a88dfa9..f5c0a24 100644
--- a/_includes/post.njk
+++ b/_includes/post.njk
@@ -1,8 +1,17 @@
---
-layout: default.njk
+layout: base.njk
templateClass: tmpl-post
---
+{{ title }}
+
+
+ Author: {{authors[author].name}}
+
+
+
+
+
{{ content | safe }}
Ready to mark {{title}} as completed?
diff --git a/events/index.md b/events/index.md
index cc16e8a..f8a1de2 100644
--- a/events/index.md
+++ b/events/index.md
@@ -2,6 +2,8 @@
layout: post.njk
title: Events
url: events
+author: ian
+date: 2019-11-09
---
The Node.js core API is built around the idea of events being "emitted" and "listened" to. Objects called "emitters" emit _named_ events, that are picked up by "listener" functions.
diff --git a/package-lock.json b/package-lock.json
index 91946dc..6fa37bb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3240,6 +3240,12 @@
"requirejs-config-file": "^3.1.1"
}
},
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "dev": true
+ },
"moo": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz",
diff --git a/package.json b/package.json
index 1e0e24e..5c077e3 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
"@11ty/eleventy": "^0.9.0"
},
"devDependencies": {
- "gh-pages": "^2.1.1"
+ "gh-pages": "^2.1.1",
+ "moment": "^2.24.0"
}
}