From 3bd08521ac2fe0458598e5ddec385d6e516a3db6 Mon Sep 17 00:00:00 2001 From: Marc Pervaz Boocha Date: Tue, 25 Jan 2022 13:58:30 +0530 Subject: change to 11ty.js for non markdown templates Signed-off-by: Marc Pervaz Boocha Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. On branch main Your branch is up to date with 'origin/main'. Changes to be committed: modified: .eleventy.js modified: .eslintrc.js new file: assets/index.css new file: assets/index.js new file: assets/mandle.png new file: assets/sw.js renamed: favicon.ico -> favicon/icon.ico modified: package-lock.json modified: package.json modified: src/about.md deleted: src/assets/atom.njk deleted: src/assets/error.md deleted: src/assets/index.css deleted: src/assets/index.mjs deleted: src/assets/json.njk deleted: src/assets/manifest.njk deleted: src/assets/prism.css deleted: src/assets/robot.njk deleted: src/assets/sitemap.njk deleted: src/assets/sw.mjs new file: src/blog.11ty.js deleted: src/blog.njk modified: src/data/env.js deleted: src/data/err.js modified: src/data/metadata.js deleted: src/data/navigator.js new file: src/gen/atom.11ty.js new file: src/gen/error.11ty.js renamed: src/assets/assets.11tydata.js -> src/gen/gen.11tydata.js new file: src/gen/json.11ty.js new file: src/gen/manifest.11ty.js new file: src/gen/metadata.11ty.js new file: src/gen/robot.11ty.js new file: src/gen/sitemap.11ty.js modified: src/index.md new file: src/layouts/base.11ty.js deleted: src/layouts/base.njk new file: src/layouts/page.11ty.js new file: src/layouts/post.11ty.js deleted: src/layouts/post.njk modified: src/post/post.11tydata.js --- src/gen/atom.11ty.js | 30 ++++++++++++++++++++++++++++++ src/gen/error.11ty.js | 21 +++++++++++++++++++++ src/gen/gen.11tydata.js | 8 ++++++++ src/gen/json.11ty.js | 28 ++++++++++++++++++++++++++++ src/gen/manifest.11ty.js | 28 ++++++++++++++++++++++++++++ src/gen/metadata.11ty.js | 15 +++++++++++++++ src/gen/robot.11ty.js | 13 +++++++++++++ src/gen/sitemap.11ty.js | 17 +++++++++++++++++ 8 files changed, 160 insertions(+) create mode 100644 src/gen/atom.11ty.js create mode 100644 src/gen/error.11ty.js create mode 100644 src/gen/gen.11tydata.js create mode 100644 src/gen/json.11ty.js create mode 100644 src/gen/manifest.11ty.js create mode 100644 src/gen/metadata.11ty.js create mode 100644 src/gen/robot.11ty.js create mode 100644 src/gen/sitemap.11ty.js (limited to 'src/gen') diff --git a/src/gen/atom.11ty.js b/src/gen/atom.11ty.js new file mode 100644 index 0000000..0184018 --- /dev/null +++ b/src/gen/atom.11ty.js @@ -0,0 +1,30 @@ +module.exports = class { + async data() { + return { + permalink: "/feed.xml" + }; + } + + async render(data) { + return ` + + ${data.metadata.title} + ${data.metadata.description} + + + ${this.getNewestCollectionItemDate((data.collections.posts) || []).toISOString()} + ${data.metadata.url} + + ${data.metadata.author.name} + ${data.metadata.author.email} + + ${(await Promise.all((data.collections.posts || []).map(async post => ` + ${post.data.title} + + ${post.date.toISOString()} + ${new URL(post.url, data.metadata.url)} + + `))).join()} + `; + } +}; diff --git a/src/gen/error.11ty.js b/src/gen/error.11ty.js new file mode 100644 index 0000000..6c7105e --- /dev/null +++ b/src/gen/error.11ty.js @@ -0,0 +1,21 @@ +module.exports = class { + data() { + return { + layout: "base", + pagination: { + data: "err", + size: 1, + }, + err: { + offline: "The Page is offline", + 404: "Not Found" + }, + permalink: data => `/${data.pagination.items}.html` + }; + } + + render(data) { + return `

ERROR: ${data.pagination.items}

+

${data.err[data.pagination.items]}

`; + } +}; diff --git a/src/gen/gen.11tydata.js b/src/gen/gen.11tydata.js new file mode 100644 index 0000000..52b6ced --- /dev/null +++ b/src/gen/gen.11tydata.js @@ -0,0 +1,8 @@ +const path = require("path"); + +module.exports = { + eleventyExcludeFromCollections: true, + eleventyComputed: { + permalink: data => data.permalink || `/${path.relative("/gen", data.page.filePathStem)}.${data.page.outputFileExtension}` + } +}; \ No newline at end of file diff --git a/src/gen/json.11ty.js b/src/gen/json.11ty.js new file mode 100644 index 0000000..017b69c --- /dev/null +++ b/src/gen/json.11ty.js @@ -0,0 +1,28 @@ +module.exports = class { + async data() { + return { + permalink: "/feed.json" + }; + } + + async render(data) { + return JSON.stringify({ + version: "https://jsonfeed.org/version/1.1", + title: data.metadata.title, + language: data.metadata.language, + home_page_url: data.metadata.url, + feed_url: new URL(data.page.url, data.metadata.url), + description: data.metadata.description, + author: { + name: data.metadata.author.name + }, + items: await Promise.all((data.collections.posts || []).map(async post => ({ + id: new URL(post.url, data.metadata.url), + url: new URL(post.url, data.metadata.url), + title: new URL(post.url, data.metadata.url), + content_html: await this.convertHtmlToAbsoluteUrls(post.templateContent, new URL(post.url, data.metadata.url)), + date_published: post.date.toISOString() + })).reverse()) + }); + } +}; \ No newline at end of file diff --git a/src/gen/manifest.11ty.js b/src/gen/manifest.11ty.js new file mode 100644 index 0000000..e41df83 --- /dev/null +++ b/src/gen/manifest.11ty.js @@ -0,0 +1,28 @@ +module.exports = class { + data() { + return { + permalink: "/app.webmanifest" + }; + } + + render(data) { + return JSON.stringify({ + $schema: "https://json.schemastore.org/web-manifest-combined.json", + name: data.metadata.title, + lang: data.metadata.language, + start_url: "/", + id: "/", + scope: "/", + display: "minimal-ui", + background_color: data.metadata.theme, + theme_color: data.metadata.theme, + description: data.metadata.description, + icons: [192, 512, 1024].map(size => ({ + src: `/favicon/${size}.png`, + type: "image/png", + sizes: `${size}x${size}`, + purpose: "maskable" + })) + }); + } +}; \ No newline at end of file diff --git a/src/gen/metadata.11ty.js b/src/gen/metadata.11ty.js new file mode 100644 index 0000000..87d7997 --- /dev/null +++ b/src/gen/metadata.11ty.js @@ -0,0 +1,15 @@ +module.exports = class { + data() { + return { + permalink: "/assets/metadata.js" + }; + } + + render() { + const obj = JSON.stringify({ + version: new Date().toISOString() + }); + return `const obj = '${obj}' + export default () => JSON.parse(obj);`; + } +}; \ No newline at end of file diff --git a/src/gen/robot.11ty.js b/src/gen/robot.11ty.js new file mode 100644 index 0000000..289d3b6 --- /dev/null +++ b/src/gen/robot.11ty.js @@ -0,0 +1,13 @@ +module.exports = class { + data() { + return { + permalink: "/robot.txt" + }; + } + + render(data) { + return `User-agent: * + Disallow: + Sitemap: ${new URL("/sitemap.xml",data.metadata.url)}`; + } +}; \ No newline at end of file diff --git a/src/gen/sitemap.11ty.js b/src/gen/sitemap.11ty.js new file mode 100644 index 0000000..02b285f --- /dev/null +++ b/src/gen/sitemap.11ty.js @@ -0,0 +1,17 @@ +module.exports = class { + data() { + return { + permalink: "/sitemap.xml" + }; + } + + render(data) { + return ` + + ${(data.collections.all || []).map(page => ` + ${new URL(page.url, data.metadata.url)} + ${page.date.toISOString()} + `).join()} + `; + } +}; -- cgit v1.2.3-70-g09d2