diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..85f4584 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,436 @@ +[build] + command = "pnpm run build" + publish = "dist" + +[build.environment] + NODE_VERSION = "16.14.2" + +[dev] + command = "pnpm run dev" + publish = "dist" + +[[headers]] + for = "/*" + [headers.values] + X-Frame-Options = "DENY" + X-XSS-Protection = "1; mode=block" + X-Content-Type-Options = "nosniff" + Referrer-Policy= "no-referrer-when-downgrade" + Permissions-Policy = "interest-cohort=()" + +[[headers]] + for = "/sw.js" + + [headers.values] + cache-control = "max-age=0,no-cache,no-store,must-revalidate" + + +# Redirect domain aliases to primary domain +[[redirects]] +from = "https://www.imhoff.name/*" +to = "https://www.stefanimhoff.de/:splat" +status = 301 +force = true + +[[redirects]] +from = "https://imhoff.name/*" +to = "https://www.stefanimhoff.de/:splat" +status = 301 +force = true + +# Prettify Redirects +[[redirects]] +from = "/feed-raindrop.xml" +to = "https://bg.raindrop.io/rss/public/25041238" +status = 200 + +# Redirects +[[redirects]] +from = "/templates-for-ia-writer" +to = "/koi-design" +status = 301 +force = true + +[[redirects]] +from = "/notiz/das-koi-design-inspiration-und-idee" +to = "/koi-design" +status = 301 +force = true + +[[redirects]] +from = "/notiz/kostenlose-vektorkarten-mit-openstreetmap" +to = "/openstreetmap" +status = 301 +force = true + +[[redirects]] +from = "/notiz/kostenlose-vektorkarten-openstreetmap" +to = "/openstreetmap" +status = 301 +force = true + +[[redirects]] +from = "/notiz/domains-extern-hosten" +to = "/domain-hosting" +status = 301 +force = true + +[[redirects]] +from = "/notiz/versionskontrolle-mit-git" +to = "/git" +status = 301 +force = true + +[[redirects]] +from = "/versionskontrolle-mit-git" +to = "/git" +status = 301 +force = true + +[[redirects]] +from = "/notiz/eineinhalb-jahre-gtd-eine-billanz" +to = "/gtd" +status = 301 +force = true + +[[redirects]] +from = "/notiz/traditionelle-japanische-farben-photoshop-illustrator" +to = "/japanese-colors" +status = 301 +force = true + +[[redirects]] +from = "/notiz/gtd-mit-omnifocus-oder-things" +to = "/gtd" +status = 301 +force = true + +[[redirects]] +from = "/notiz/einstieg-in-git-als-versionskontrollsystem" +to = "/git" +status = 301 +force = true + +[[redirects]] +from = "/notiz/gitweb-theme-github-stil" +to = "/gitweb-theme" +status = 301 +force = true + +[[redirects]] +from = "/notiz/home-atemberaubende-erde-dokumentation-yann-arthus-bertrand" +to = "/home-documentary" +status = 301 +force = true + +[[redirects]] +from = "/notiz/git-praesentation" +to = "/git" +status = 301 +force = true + +[[redirects]] +from = "/notiz/buchtipp-rework-37signals" +to = "/rework" +status = 301 +force = true + +[[redirects]] +from = "/notiz/webstandards-magazin-django" +to = "/webstandards-magazin-django" +status = 301 +force = true + +[[redirects]] +from = "/notiz/vim" +to = "/vim" +status = 301 +force = true + +[[redirects]] +from = "/notiz/buchtipp-decodeunicode" +to = "/decodeunicode" +status = 301 +force = true + +[[redirects]] +from = "/2007/domains-extern-hosten/" +to = "/domain-hosting" +status = 301 +force = true + +[[redirects]] +from = "/2007/koi-design/" +to = "/koi-design/" +status = 301 +force = true + +[[redirects]] +from = "/2007/eineinhalb-jahre-gtd-eine-billanz/" +to = "/gtd/" +status = 301 +force = true + +[[redirects]] +from = "/2007/traditionelle-japanische-farben-photoshop-illustrator/" +to = "/japanese-colors/" +status = 301 +force = true + +[[redirects]] +from = "/2008/kostenlose-vektorkarten-openstreetmap/" +to = "/openstreetmap/" +status = 301 +force = true + +[[redirects]] +from = "/2009/einstieg-in-git-als-versionskontrollsystem/" +to = "/git/" +status = 301 +force = true + +[[redirects]] +from = "/2009/gitweb-theme-github-stil/" +to = "/gitweb-theme/" +status = 301 +force = true + +[[redirects]] +from = "/2009/home-atemberaubende-erde-dokumentation-yann-arthus-bertrand/" +to = "/home-documentary/" +status = 301 +force = true + +[[redirects]] +from = "/2010/buchtipp-rework-37signals/" +to = "/rework/" +status = 301 +force = true + +[[redirects]] +from = "/2010/webstandards-magazin-django/" +to = "/webstandards-magazine-django/" +status = 301 +force = true + +[[redirects]] +from = "/2010/vim/" +to = "/vim/" +status = 301 +force = true + +[[redirects]] +from = "/2011/buchtipp-decodeunicode/" +to = "/decodeunicode/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gestaltung-neues-logo/" +to = "/logo-design/" +status = 301 +force = true + +[[redirects]] +from = "/2014/die-typographie-meiner-website/" +to = "/website-typography/" +status = 301 +force = true + +[[redirects]] +from = "/2014/john-seymour-buecher-selbstversorgung/" +to = "/john-seymour-books/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-1-intro-setup/" +to = "/gulp-tutorial-1-intro-setup/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-2-development-server-browsersync-configuration/" +to = "/gulp-tutorial-2-development-server-browsersync-configuration/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-3-build-clean-jekyll/" +to = "/gulp-tutorial-3-build-clean-jekyll/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-4-css-generation-sass/" +to = "/gulp-tutorial-4-css-generation-sass/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-5-javascripts-browserify/" +to = "/gulp-tutorial-5-javascripts-browserify/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-6-images-vector-fonts/" +to = "/gulp-tutorial-6-images-vector-fonts/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-7-base64/" +to = "/gulp-tutorial-7-base64/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-8-watch/" +to = "/gulp-tutorial-8-watch/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-9-linting-scss-and-javascript/" +to = "/gulp-tutorial-9-linting-scss-and-javascript/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-10-generating-sprites/" +to = "/gulp-tutorial-10-generating-sprites/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-11-production-build-server-and-jekyll/" +to = "/gulp-tutorial-11-production-build-server-and-jekyll/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-12-optimize-css-javascript-images-and-html/" +to = "/gulp-tutorial-12-optimize-css-javascript-images-and-html/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-13-revisioning/" +to = "/gulp-tutorial-13-revisioning/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-14-deploying-the-website/" +to = "/gulp-tutorial-14-deploying-the-website/" +status = 301 +force = true + +[[redirects]] +from = "/2014/gulp-tutorial-15-performance-improvements-webp-gzip/" +to = "/gulp-tutorial-15-performance-improvements-webp-gzip/" +status = 301 +force = true + +[[redirects]] +from = "/2015/responsive-relaunch-of-my-martial-arts-website/" +to = "/responsive-relaunch-martial-arts-website/" +status = 301 +force = true + +[[redirects]] +from = "/2015/getting-started-with-body-weight-training/" +to = "/calisthenics/" +status = 301 +force = true + +[[redirects]] +from = "/2015/motivational-video/" +to = "/motivational-video/" +status = 301 +force = true + +[[redirects]] +from = "/2015/human-film-yann-arthus-bertrand/" +to = "/human-documentary/" +status = 301 +force = true + +[[redirects]] +from = "/2015/gulp-tutorial-16-postcss/" +to = "/gulp-tutorial-16-postcss/" +status = 301 +force = true + +[[redirects]] +from = "/2016/japanese-netflix-tv-show-atelier-underwear/" +to = "/japanese-netflix-tv-show-underwear/" +status = 301 +force = true + +[[redirects]] +from = "/2016/hugo-jekyll-migration/" +to = "/jekyll-hugo-migration/" +status = 301 +force = true + +[[redirects]] +from = "/2016/speed-up-videos/" +to = "/speed-up-videos/" +status = 301 +force = true + +[[redirects]] +from = "/2017/pursuit-of-minimalism/" +to = "/minimalism/" +status = 301 +force = true + +[[redirects]] +from = "/2017/minimalism/" +to = "/minimalism/" +status = 301 +force = true + +[[redirects]] +from = "/2017/i-wrote-a-book-in-gitbook/" +to = "/gitbook/" +status = 301 +force = true + +[[redirects]] +from = "/2017/migration-hugo-css-grids-service-worker/" +to = "/website-relaunch-css-grid-layout/" +status = 301 +force = true + +[[redirects]] +from = "/2017/self-defence-age-of-attention/" +to = "/attention/" +status = 301 +force = true + +[[redirects]] +from = "/information/impressum" +to = "/imprint" +status = 301 +force = true + +[[redirects]] +from = "/notizbuch" +to = "/journal" +status = 301 +force = true + +[[redirects]] +from = "/archiv" +to = "/journal" +status = 301 +force = true + +[[redirects]] +from = "/on-learning-poems" +to = "/learning-poems" +status = 301 +force = true