diff --git a/.eleventy.js b/.eleventy.js index 7c6a4a7..af95ed4 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -6,139 +6,139 @@ const pluginNavigation = require("@11ty/eleventy-navigation"); const markdownIt = require("markdown-it"); const markdownItAnchor = require("markdown-it-anchor"); -module.exports = function(eleventyConfig) { - // Add plugins - eleventyConfig.addPlugin(pluginRss); - eleventyConfig.addPlugin(pluginSyntaxHighlight); - eleventyConfig.addPlugin(pluginNavigation); +module.exports = function (eleventyConfig) { + // Add plugins + eleventyConfig.addPlugin(pluginRss); + eleventyConfig.addPlugin(pluginSyntaxHighlight); + eleventyConfig.addPlugin(pluginNavigation); - // https://www.11ty.dev/docs/data-deep-merge/ - eleventyConfig.setDataDeepMerge(true); + // https://www.11ty.dev/docs/data-deep-merge/ + eleventyConfig.setDataDeepMerge(true); - // Alias `layout: post` to `layout: layouts/post.njk` - eleventyConfig.addLayoutAlias("post", "layouts/post.njk"); + // Alias `layout: post` to `layout: layouts/post.njk` + eleventyConfig.addLayoutAlias("post", "layouts/post.njk"); - eleventyConfig.addFilter("readableDate", dateObj => { - return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat("dd LLL yyyy"); - }); + eleventyConfig.addFilter("readableDate", dateObj => { + return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat("dd LLL yyyy"); + }); - // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string - eleventyConfig.addFilter('htmlDateString', (dateObj) => { - return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('yyyy-LL-dd'); - }); + // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string + eleventyConfig.addFilter('htmlDateString', (dateObj) => { + return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat('yyyy-LL-dd'); + }); - // Get the first `n` elements of a collection. - eleventyConfig.addFilter("head", (array, n) => { - if(!Array.isArray(array) || array.length === 0) { - return []; - } - if( n < 0 ) { - return array.slice(n); - } + // Get the first `n` elements of a collection. + eleventyConfig.addFilter("head", (array, n) => { + if (!Array.isArray(array) || array.length === 0) { + return []; + } + if (n < 0) { + return array.slice(n); + } - return array.slice(0, n); - }); + return array.slice(0, n); + }); - // Return the smallest number argument - eleventyConfig.addFilter("min", (...numbers) => { - return Math.min.apply(null, numbers); - }); + // Return the smallest number argument + eleventyConfig.addFilter("min", (...numbers) => { + return Math.min.apply(null, numbers); + }); - function filterTagList(tags) { - return (tags || []).filter(tag => ["all", "nav", "post", "posts"].indexOf(tag) === -1); - } + function filterTagList(tags) { + return (tags || []).filter(tag => ["all", "nav", "post", "posts"].indexOf(tag) === -1); + } - eleventyConfig.addFilter("filterTagList", filterTagList) + eleventyConfig.addFilter("filterTagList", filterTagList) - // Create an array of all tags - eleventyConfig.addCollection("tagList", function(collection) { - let tagSet = new Set(); - collection.getAll().forEach(item => { - (item.data.tags || []).forEach(tag => tagSet.add(tag)); - }); + // Create an array of all tags + eleventyConfig.addCollection("tagList", function (collection) { + let tagSet = new Set(); + collection.getAll().forEach(item => { + (item.data.tags || []).forEach(tag => tagSet.add(tag)); + }); - return filterTagList([...tagSet]); - }); + return filterTagList([...tagSet]); + }); - // Copy the `img` and `css` folders to the output - eleventyConfig.addPassthroughCopy("img"); - eleventyConfig.addPassthroughCopy("css"); + // Copy the `img` and `css` folders to the output + eleventyConfig.addPassthroughCopy("img"); + eleventyConfig.addPassthroughCopy("css"); - // Customize Markdown library and settings: - let markdownLibrary = markdownIt({ - html: true, - breaks: true, - linkify: true - }).use(markdownItAnchor, { - permalink: markdownItAnchor.permalink.ariaHidden({ - placement: "after", - class: "direct-link", - symbol: "#", - level: [1,2,3,4], - }), - slugify: eleventyConfig.getFilter("slug") - }); - eleventyConfig.setLibrary("md", markdownLibrary); + // Customize Markdown library and settings: + let markdownLibrary = markdownIt({ + html: true, + breaks: true, + linkify: true + }).use(markdownItAnchor, { + permalink: markdownItAnchor.permalink.ariaHidden({ + placement: "after", + class: "direct-link", + symbol: "#", + level: [1, 2, 3, 4], + }), + slugify: eleventyConfig.getFilter("slug") + }); + eleventyConfig.setLibrary("md", markdownLibrary); - // Override Browsersync defaults (used only with --serve) - eleventyConfig.setBrowserSyncConfig({ - callbacks: { - ready: function(err, browserSync) { - const content_404 = fs.readFileSync('_site/404.html'); + // Override Browsersync defaults (used only with --serve) + eleventyConfig.setBrowserSyncConfig({ + callbacks: { + ready: function (err, browserSync) { + const content_404 = fs.readFileSync('_site/404.html'); - browserSync.addMiddleware("*", (req, res) => { - // Provides the 404 content without redirect. - res.writeHead(404, {"Content-Type": "text/html; charset=UTF-8"}); - res.write(content_404); - res.end(); - }); - }, - }, - ui: false, - ghostMode: false - }); + browserSync.addMiddleware("*", (req, res) => { + // Provides the 404 content without redirect. + res.writeHead(404, { "Content-Type": "text/html; charset=UTF-8" }); + res.write(content_404); + res.end(); + }); + }, + }, + ui: false, + ghostMode: false + }); - return { - // Control which files Eleventy will process - // e.g.: *.md, *.njk, *.html, *.liquid - templateFormats: [ - "md", - "njk", - "html", - "liquid" - ], + return { + // Control which files Eleventy will process + // e.g.: *.md, *.njk, *.html, *.liquid + templateFormats: [ + "md", + "njk", + "html", + "liquid" + ], - // ----------------------------------------------------------------- - // If your site deploys to a subdirectory, change `pathPrefix`. - // Don’t worry about leading and trailing slashes, we normalize these. + // ----------------------------------------------------------------- + // If your site deploys to a subdirectory, change `pathPrefix`. + // Don’t worry about leading and trailing slashes, we normalize these. - // If you don’t have a subdirectory, use "" or "/" (they do the same thing) - // This is only used for link URLs (it does not affect your file structure) - // Best paired with the `url` filter: https://www.11ty.dev/docs/filters/url/ + // If you don’t have a subdirectory, use "" or "/" (they do the same thing) + // This is only used for link URLs (it does not affect your file structure) + // Best paired with the `url` filter: https://www.11ty.dev/docs/filters/url/ - // You can also pass this in on the command line using `--pathprefix` + // You can also pass this in on the command line using `--pathprefix` - // Optional (default is shown) - pathPrefix: "/", - // ----------------------------------------------------------------- + // Optional (default is shown) + pathPrefix: "/", + // ----------------------------------------------------------------- - // Pre-process *.md files with: (default: `liquid`) - markdownTemplateEngine: "njk", + // Pre-process *.md files with: (default: `liquid`) + markdownTemplateEngine: "njk", - // Pre-process *.html files with: (default: `liquid`) - htmlTemplateEngine: "njk", + // Pre-process *.html files with: (default: `liquid`) + htmlTemplateEngine: "njk", - // Opt-out of pre-processing global data JSON files: (default: `liquid`) - dataTemplateEngine: false, + // Opt-out of pre-processing global data JSON files: (default: `liquid`) + dataTemplateEngine: false, - // These are all optional (defaults are shown): - dir: { - input: ".", - includes: "_includes", - data: "_data", - output: "_site" - } - }; + // These are all optional (defaults are shown): + dir: { + input: ".", + includes: "_includes", + data: "_data", + output: "_site" + } + }; }; diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk index 69325d6..2a0bbfa 100644 --- a/_includes/layouts/base.njk +++ b/_includes/layouts/base.njk @@ -1,38 +1,37 @@ -
- - -