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 --- .eleventy.js | 147 ++++++++++++++++++++--------------------------------------- 1 file changed, 50 insertions(+), 97 deletions(-) (limited to '.eleventy.js') diff --git a/.eleventy.js b/.eleventy.js index b6e2045..ef7dab5 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,121 +1,74 @@ -const eleventy = require('@11ty/eleventy') -const eleventysyntaxhighlight = require('@11ty/eleventy-plugin-syntaxhighlight') -const eleventyrss = require('@11ty/eleventy-plugin-rss') +const eleventy = require("@11ty/eleventy"); +const eleventysyntaxhighlight = require("@11ty/eleventy-plugin-syntaxhighlight"); +const eleventyrss = require("@11ty/eleventy-plugin-rss"); -const markdown = require('markdown-it') -const markdownattrs = require('markdown-it-attrs') -const markdownanchor = require('markdown-it-anchor') -const markdownfootnote = require('markdown-it-footnote') +const markdown = require("markdown-it"); +const markdownattrs = require("markdown-it-attrs"); +const markdownanchor = require("markdown-it-anchor"); +const markdownfootnote = require("markdown-it-footnote"); -const postcss = require('postcss') -const postcssenv = require('postcss-preset-env') +const slugify = require("@sindresorhus/slugify"); -const babel = require("@babel/core"); +module.exports = eleventyConfig => { -const crypto = require('node:crypto') -const luxon = require('luxon') -const slugify = require('@sindresorhus/slugify') + [ + eleventy.EleventyRenderPlugin, +// eleventysyntaxhighlight, + eleventyrss -module.exports = eleventyConfig => { - eleventyConfig.addPlugin(eleventy.EleventyRenderPlugin); - eleventyConfig.addPlugin(eleventysyntaxhighlight) - eleventyConfig.addPlugin(eleventyrss) + ].forEach(element => eleventyConfig.addPlugin(element)); - eleventyConfig.setLibrary('md', markdown({ + + eleventyConfig.addPassthroughCopy([ + "assets/", + "_headers", + "_redirects", + "favicon/", + { + "assets/sw.js": "/sw.js" + }, + { + "favicon/icon.ico": "/favicon.ico" + }, + { + [require.resolve("prismjs/themes/prism-twilight.min.css")]: "/vendor/prism.css" + } + ].forEach(element => eleventyConfig.addPassthroughCopy(element))); + + eleventyConfig.setLibrary("md", markdown({ html: true, linkify: true, typographer: true }).use(markdownattrs) .use(markdownanchor, { permalink: markdownanchor.permalink.headerLink(), - slugify: s => slugify(s) - }).use(markdownfootnote)) - - eleventyConfig.addFilter('datefmt', date => luxon.DateTime.fromJSDate(date, { zone: 'utc' }).toFormat("dd LLL yyyy")) - eleventyConfig.addFilter("tojson", obj => JSON.stringify(obj)) + slugify: slug => slugify(slug) + }).use(markdownfootnote)); - - eleventyConfig.addExtension("css", { - outputFileExtension: "css", - compileOptions: { - permalink: "raw" - }, - compile: async(content, filename) => - async data => { - const css = await postcss().use( - postcssenv({ - stage: 3, - features: { - "nesting-rules": true - } - })) - .process(content, { - from: filename, - map: data.env.NODE_ENV == "develoment" - }) - - return css.css - } - }) + eleventyConfig.addFilter("getNewestCollectionItemDate", eleventyrss.getNewestCollectionItemDate); + eleventyConfig.addJavaScriptFunction("convertHtmlToAbsoluteUrls", eleventyrss.convertHtmlToAbsoluteUrls); eleventyConfig.setBrowserSyncConfig({ snippet: false, }); - eleventyConfig.addExtension("mjs", { - outputFileExtension: "js", - compileOptions: { - permalink: "raw" - }, - compile: (content, filename) => - async data => { - const js = await babel.transformAsync(content, { - presets: [ - ["@babel/preset-env", { - "targets": { - "esmodules": true, - }, - bugfixes: true - }] - ], - plugins: [ - ["transform-define", { - VERSION: `${data.env.CF_PAGES_BRANCH || "default"}-${data.env.CF_PAGES_COMMIT_SHA || crypto.randomUUID()}` - }] - ], - sourceMaps: data.env.NODE_ENV == "develoment" ? "inline" : false, - sourceFileName: filename - }) - return js.code - } - }) - - - eleventyConfig.addPassthroughCopy('static/') - eleventyConfig.addPassthroughCopy('_headers') - eleventyConfig.addPassthroughCopy('_redirects') - eleventyConfig.addPassthroughCopy('favicon/') - eleventyConfig.addPassthroughCopy('favicon.ico') - return { dir: { - input: 'src', - output: 'dist', - includes: 'includes', - data: 'data', - layouts: 'layouts' + input: "src", + output: "dist", + includes: "includes", + data: "data", + layouts: "layouts" }, - dataTemplateEngine: 'njk', - markdownTemplateEngine: 'njk', - htmlTemplateEngine: 'njk', + dataTemplateEngine: "njk", + markdownTemplateEngine: "njk", + htmlTemplateEngine: "njk", templateFormats: [ - 'html', - 'md', - 'njk', - '11ty.js', - 'css', - 'mjs' + "html", + "md", + "njk", + "11ty.js" ] - } -} \ No newline at end of file + }; +}; -- cgit v1.2.3-70-g09d2