diff --git a/.eleventy.js b/.eleventy.js index bc55321..240c6cc 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -3,6 +3,7 @@ const rimraf = require("rimraf"); const cleancss = require("clean-css"); module.exports = function (eleventyConfig) { + // delete contents of public to ensure removed files are removed from the final build rimraf.windows.sync("public/") eleventyConfig.addPassthroughCopy("./src/_assets/css"); @@ -10,6 +11,7 @@ module.exports = function (eleventyConfig) { eleventyConfig.addPassthroughCopy("./src/_assets/fonts"); eleventyConfig.addPassthroughCopy("./src/_assets/js"); + // make a list of all tags besides "post" and add them to the collection eleventyConfig.addCollection("tagsList", function (collectionApi) { const tagsList = new Set(); collectionApi.getAll().map(item => { @@ -24,6 +26,7 @@ module.exports = function (eleventyConfig) { return tagsList; }); + // minify all html files eleventyConfig.addTransform("htmlmin", function (content) { if (this.page.outputPath && this.page.outputPath.endsWith(".html")) { let minified = htmlmin.minify(content, { @@ -36,9 +39,43 @@ module.exports = function (eleventyConfig) { return content; }); + // clean and inline all css files eleventyConfig.addFilter("cssmin", function(code) { return new cleancss({}).minify(code).styles; }); + + // // the below three configs allow for excluding files from builds using draft: true + // // https://www.11ty.dev/docs/quicktips/draft-posts/ + // When `permalink` is false, the file is not written to disk + eleventyConfig.addGlobalData("eleventyComputed.permalink", function() { + return (data) => { + // Always skip during non-watch/serve builds + if(data.draft && !process.env.BUILD_DRAFTS) { + return false; + } + + return data.permalink; + } + }); + + // When `eleventyExcludeFromCollections` is true, the file is not included in any collections + eleventyConfig.addGlobalData("eleventyComputed.eleventyExcludeFromCollections", function() { + return (data) => { + // Always exclude from non-watch/serve builds + if(data.draft && !process.env.BUILD_DRAFTS) { + return true; + } + + return data.eleventyExcludeFromCollections; + } + }); + + eleventyConfig.on("eleventy.before", ({runMode}) => { + // Set the environment variable + if(runMode === "serve" || runMode === "watch") { + process.env.BUILD_DRAFTS = true; + } + }); return { passthroughFileCopy: true, diff --git a/src/blog/blog_next.md b/src/blog/blog_next.md new file mode 100644 index 0000000..12ee929 --- /dev/null +++ b/src/blog/blog_next.md @@ -0,0 +1,17 @@ +--- +title: blog_next +# eleventyExcludeFromCollections: true +# permalink: false +draft: true +--- + +- megatabbing habits + +- smsl c200 + +- https://www.11ty.dev/docs/quicktips/not-found/ + +- insane synths https://www.lovehulten.com/ + +- https://www.youtube.com/watch?v=fUyQEPzpkLk + - i have an immense need for these delightful little cardboard containers, even though i dont really have anythign to put in them \ No newline at end of file