diff --git a/.eleventy.js b/.eleventy.js index bc04a89..6b794b7 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,5 +1,7 @@ -const { DateTime } = require("luxon"); const fs = require("fs"); +const path = require("path"); + +const { DateTime } = require("luxon"); const pluginRss = require("@11ty/eleventy-plugin-rss"); const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight"); const pluginNavigation = require("@11ty/eleventy-navigation"); @@ -8,6 +10,7 @@ const markdownIt = require("markdown-it"); const markdownItAnchor = require("markdown-it-anchor"); const markdownItAttrs = require("markdown-it-attrs"); + function hyphenize(input) { return input.replace(/[^\w- ]/, "").replace(/[_ ]/, "-").toLowerCase(); } @@ -72,11 +75,11 @@ ${content} }); eleventyConfig.addPairedAsyncShortcode("banner", async (content, title, backgroundSource, backgroundAlt) => { - const backgroundMetadata = await Image(backgroundSource, { + const backgroundMetadata = await Image(`src/images/${backgroundSource}`, { widths: [1200, 1980, 4000], formats: ["avif", "webp", "jpeg"], urlPath: "/assets/img", - outputDir: "./_site/assets/img", + outputDir: "./dist/assets/img", sharpAvifOptions: { quality: 40 }, sharpWebpOptions: { quality: 50 }, sharpJpegOptions: { quality: 65 }, @@ -122,12 +125,12 @@ ${ // Build settings // - eleventyConfig.addPassthroughCopy("assets"); + eleventyConfig.addPassthroughCopy({ "src/assets": "assets" }); eleventyConfig.setBrowserSyncConfig({ callbacks: { ready: function(err, browserSync) { - const content_404 = fs.readFileSync('_site/404.html'); + const content_404 = fs.readFileSync('dist/404.html'); browserSync.addMiddleware("*", (req, res) => { // Provides the 404 content without redirect. @@ -145,7 +148,17 @@ ${ // Other settings // + return { + dir: { + input: 'src/content', + // These are all relative to the input directory so the paths get a little + // weird: + includes: '../includes', + data: '../data', + output: 'dist', + }, + templateFormats: [ "md", "njk", diff --git a/.eleventyignore b/.eleventyignore index 46f6ebb..8838c3d 100644 --- a/.eleventyignore +++ b/.eleventyignore @@ -1,2 +1 @@ -README.md assets/fonts/OFL.txt diff --git a/.gitignore b/.gitignore index 9d92510..6f92aeb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ node_modules/ # Eleventy build output -/assets/css/ -/_site/ +dist/ # Editor settings .vscode/ @@ -11,4 +10,5 @@ node_modules/ # Environment .env # `nix build` output +/.dev /result diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 48082f7..0000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/README.md b/README.md index b1dfb09..f76477e 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,11 @@ npm run build:styles npm run dev:site ``` -Go to , which will update live when content changes. +Go to , which will update live when content changes +(the initial build may take some time to render out the different image sizes). If you make style changes, make sure to recompile the CSS files with the second -command. Alternatively, run `npm run dev:styles` in a second terminal to watch -for changes. +of the above commands. Alternatively, run `npm run dev:styles` in an additional +terminal to watch for changes. ### Nix environment diff --git a/flake.nix b/flake.nix index 6ab3200..e859e5f 100644 --- a/flake.nix +++ b/flake.nix @@ -10,7 +10,7 @@ nodejs = pkgs.nodejs-16_x; - nodePackages = import ./_nix/default.nix { inherit pkgs system nodejs; }; + nodePackages = import ./nix/default.nix { inherit pkgs system nodejs; }; nodeDependencies = nodePackages.nodeDependencies.override { nativeBuildInputs = with pkgs; [ pkg-config ]; buildInputs = with pkgs; [ vips ]; diff --git a/_nix/default.nix b/nix/default.nix similarity index 100% rename from _nix/default.nix rename to nix/default.nix diff --git a/_nix/node-env.nix b/nix/node-env.nix similarity index 100% rename from _nix/node-env.nix rename to nix/node-env.nix diff --git a/_nix/node-packages.nix b/nix/node-packages.nix similarity index 100% rename from _nix/node-packages.nix rename to nix/node-packages.nix diff --git a/_nix/update.sh b/nix/update.sh similarity index 100% rename from _nix/update.sh rename to nix/update.sh diff --git a/package.json b/package.json index f037d28..7956e83 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Angestöpselt Homepage", "scripts": { "build:site": "eleventy", - "build:styles": "sass --style=compressed styles/:_site/assets/css/", + "build:styles": "sass --style=compressed src/styles/:dist/assets/css/", "build": "npm run build:site && npm run build:styles", "dev:site": "eleventy --serve", "dev:styles": "npm run build:styles -- --watch" diff --git a/assets/fonts/Comfortaa-Bold.ttf b/src/assets/fonts/Comfortaa-Bold.ttf similarity index 100% rename from assets/fonts/Comfortaa-Bold.ttf rename to src/assets/fonts/Comfortaa-Bold.ttf diff --git a/assets/fonts/Comfortaa-Light.ttf b/src/assets/fonts/Comfortaa-Light.ttf similarity index 100% rename from assets/fonts/Comfortaa-Light.ttf rename to src/assets/fonts/Comfortaa-Light.ttf diff --git a/assets/fonts/Comfortaa-Medium.ttf b/src/assets/fonts/Comfortaa-Medium.ttf similarity index 100% rename from assets/fonts/Comfortaa-Medium.ttf rename to src/assets/fonts/Comfortaa-Medium.ttf diff --git a/assets/fonts/Comfortaa-Regular.ttf b/src/assets/fonts/Comfortaa-Regular.ttf similarity index 100% rename from assets/fonts/Comfortaa-Regular.ttf rename to src/assets/fonts/Comfortaa-Regular.ttf diff --git a/assets/fonts/Comfortaa-SemiBold.ttf b/src/assets/fonts/Comfortaa-SemiBold.ttf similarity index 100% rename from assets/fonts/Comfortaa-SemiBold.ttf rename to src/assets/fonts/Comfortaa-SemiBold.ttf diff --git a/assets/fonts/Comfortaa-VariableFont_wght.ttf b/src/assets/fonts/Comfortaa-VariableFont_wght.ttf similarity index 100% rename from assets/fonts/Comfortaa-VariableFont_wght.ttf rename to src/assets/fonts/Comfortaa-VariableFont_wght.ttf diff --git a/assets/fonts/OFL.txt b/src/assets/fonts/OFL.txt similarity index 100% rename from assets/fonts/OFL.txt rename to src/assets/fonts/OFL.txt diff --git a/404.md b/src/content/404.md similarity index 100% rename from 404.md rename to src/content/404.md diff --git a/computer-beantragen/index.md b/src/content/computer-beantragen/index.md similarity index 100% rename from computer-beantragen/index.md rename to src/content/computer-beantragen/index.md diff --git a/computer-beantragen/organisation.md b/src/content/computer-beantragen/organisation.md similarity index 100% rename from computer-beantragen/organisation.md rename to src/content/computer-beantragen/organisation.md diff --git a/computer-beantragen/privat.md b/src/content/computer-beantragen/privat.md similarity index 100% rename from computer-beantragen/privat.md rename to src/content/computer-beantragen/privat.md diff --git a/computer-reparieren.md b/src/content/computer-reparieren.md similarity index 100% rename from computer-reparieren.md rename to src/content/computer-reparieren.md diff --git a/feed/feed.njk b/src/content/feed/feed.njk similarity index 100% rename from feed/feed.njk rename to src/content/feed/feed.njk diff --git a/feed/htaccess.njk b/src/content/feed/htaccess.njk similarity index 100% rename from feed/htaccess.njk rename to src/content/feed/htaccess.njk diff --git a/feed/json.njk b/src/content/feed/json.njk similarity index 100% rename from feed/json.njk rename to src/content/feed/json.njk diff --git a/hardware-spenden/index.md b/src/content/hardware-spenden/index.md similarity index 100% rename from hardware-spenden/index.md rename to src/content/hardware-spenden/index.md diff --git a/hardware-spenden/organisation.md b/src/content/hardware-spenden/organisation.md similarity index 100% rename from hardware-spenden/organisation.md rename to src/content/hardware-spenden/organisation.md diff --git a/hardware-spenden/privat.md b/src/content/hardware-spenden/privat.md similarity index 100% rename from hardware-spenden/privat.md rename to src/content/hardware-spenden/privat.md diff --git a/impressum.md b/src/content/impressum.md similarity index 100% rename from impressum.md rename to src/content/impressum.md diff --git a/index.md b/src/content/index.md similarity index 99% rename from index.md rename to src/content/index.md index 69a31de..dcc1cb6 100644 --- a/index.md +++ b/src/content/index.md @@ -3,7 +3,7 @@ layout: layouts/home.njk --- {% banner "Angestöpselt", - "images/home-banner.jpg", + "home-banner.jpg", "Kinder und Jugendliche verfolgen die Präsentation eines 3D-Druckers" %} Wir bieten Bedürftigen Zugang in die digitale Welt diff --git a/kontakt/erfolg.md b/src/content/kontakt/erfolg.md similarity index 100% rename from kontakt/erfolg.md rename to src/content/kontakt/erfolg.md diff --git a/kontakt/index.md b/src/content/kontakt/index.md similarity index 98% rename from kontakt/index.md rename to src/content/kontakt/index.md index 79be1a8..ef6ff3b 100644 --- a/kontakt/index.md +++ b/src/content/kontakt/index.md @@ -7,7 +7,7 @@ eleventyNavigation: --- {% banner "", - "images/contact-banner.jpg", + "contact-banner.jpg", "Aufnahme des Vereinsheims bei Nacht. Die Innenbeleuchtung ist an und der Angestöpselt-Schriftzug ist zu sehen." %} {% endbanner %} diff --git a/kontakt/problem.md b/src/content/kontakt/problem.md similarity index 100% rename from kontakt/problem.md rename to src/content/kontakt/problem.md diff --git a/mitmachen.md b/src/content/mitmachen.md similarity index 98% rename from mitmachen.md rename to src/content/mitmachen.md index bc7cd33..30b141e 100644 --- a/mitmachen.md +++ b/src/content/mitmachen.md @@ -4,7 +4,7 @@ useForms: true --- {% banner "", - "images/work-banner.jpg", + "work-banner.jpg", "Nahaufnahme eines Laptops mit geöffnetem Gehäuse. Sichtbar ist die ausgebaute Festplatte." %} {% endbanner %} diff --git a/neuigkeiten/firstpost.md b/src/content/neuigkeiten/firstpost.md similarity index 100% rename from neuigkeiten/firstpost.md rename to src/content/neuigkeiten/firstpost.md diff --git a/neuigkeiten/neuigkeiten.json b/src/content/neuigkeiten/neuigkeiten.json similarity index 100% rename from neuigkeiten/neuigkeiten.json rename to src/content/neuigkeiten/neuigkeiten.json diff --git a/sitemap.xml.njk b/src/content/sitemap.xml.njk similarity index 100% rename from sitemap.xml.njk rename to src/content/sitemap.xml.njk diff --git a/_data/metadata.json b/src/data/metadata.json similarity index 100% rename from _data/metadata.json rename to src/data/metadata.json diff --git a/images/contact-banner.jpg b/src/images/contact-banner.jpg similarity index 100% rename from images/contact-banner.jpg rename to src/images/contact-banner.jpg diff --git a/images/home-banner.jpg b/src/images/home-banner.jpg similarity index 100% rename from images/home-banner.jpg rename to src/images/home-banner.jpg diff --git a/images/work-banner.jpg b/src/images/work-banner.jpg similarity index 100% rename from images/work-banner.jpg rename to src/images/work-banner.jpg diff --git a/_includes/layouts/base.njk b/src/includes/layouts/base.njk similarity index 100% rename from _includes/layouts/base.njk rename to src/includes/layouts/base.njk diff --git a/_includes/layouts/home.njk b/src/includes/layouts/home.njk similarity index 100% rename from _includes/layouts/home.njk rename to src/includes/layouts/home.njk diff --git a/_includes/layouts/page.njk b/src/includes/layouts/page.njk similarity index 100% rename from _includes/layouts/page.njk rename to src/includes/layouts/page.njk diff --git a/_includes/layouts/post.njk b/src/includes/layouts/post.njk similarity index 100% rename from _includes/layouts/post.njk rename to src/includes/layouts/post.njk diff --git a/styles/base.scss b/src/styles/base.scss similarity index 100% rename from styles/base.scss rename to src/styles/base.scss diff --git a/styles/components/_actions.scss b/src/styles/components/_actions.scss similarity index 100% rename from styles/components/_actions.scss rename to src/styles/components/_actions.scss diff --git a/styles/components/_banner.scss b/src/styles/components/_banner.scss similarity index 100% rename from styles/components/_banner.scss rename to src/styles/components/_banner.scss diff --git a/styles/components/_form-choices.scss b/src/styles/components/_form-choices.scss similarity index 100% rename from styles/components/_form-choices.scss rename to src/styles/components/_form-choices.scss diff --git a/styles/components/_form-elements.scss b/src/styles/components/_form-elements.scss similarity index 100% rename from styles/components/_form-elements.scss rename to src/styles/components/_form-elements.scss diff --git a/styles/components/_markup.scss b/src/styles/components/_markup.scss similarity index 100% rename from styles/components/_markup.scss rename to src/styles/components/_markup.scss diff --git a/styles/components/_page.scss b/src/styles/components/_page.scss similarity index 100% rename from styles/components/_page.scss rename to src/styles/components/_page.scss diff --git a/styles/components/_site.scss b/src/styles/components/_site.scss similarity index 100% rename from styles/components/_site.scss rename to src/styles/components/_site.scss diff --git a/styles/components/_tabs.scss b/src/styles/components/_tabs.scss similarity index 100% rename from styles/components/_tabs.scss rename to src/styles/components/_tabs.scss diff --git a/styles/forms.scss b/src/styles/forms.scss similarity index 100% rename from styles/forms.scss rename to src/styles/forms.scss diff --git a/styles/home.scss b/src/styles/home.scss similarity index 100% rename from styles/home.scss rename to src/styles/home.scss diff --git a/styles/lib/_colors.scss b/src/styles/lib/_colors.scss similarity index 100% rename from styles/lib/_colors.scss rename to src/styles/lib/_colors.scss diff --git a/styles/lib/_layout.scss b/src/styles/lib/_layout.scss similarity index 100% rename from styles/lib/_layout.scss rename to src/styles/lib/_layout.scss diff --git a/styles/lib/_motion.scss b/src/styles/lib/_motion.scss similarity index 100% rename from styles/lib/_motion.scss rename to src/styles/lib/_motion.scss diff --git a/styles/lib/_typography.scss b/src/styles/lib/_typography.scss similarity index 100% rename from styles/lib/_typography.scss rename to src/styles/lib/_typography.scss