[build] command = "yarn build" publish = "public" [build.environment] YARN_VERSION = "1.22.4" YARN_FLAGS = "--no-ignore-optional --frozen-lockfile" GO_VERSION = "1.14.4" # Ensure *only* Pretty URLs are enabled, even though this is already set up in # the Netlify dashboard. [build.processing] skip_processing = false [build.processing.css] bundle = false minify = false [build.processing.js] bundle = false minify = false [build.processing.html] pretty_urls = true [build.processing.images] compress = false [context.deploy-preview] command = "yarn build:preview" # ignore = "git log -1 --pretty=format:'%an' | grep 'dependabot'" [context.branch-deploy] command = "yarn build:preview" # https://github.com/netlify/cli/blob/master/docs/netlify-dev.md#netlifytoml-dev-block [dev] framework = "#custom" command = "yarn start --baseURL=/ --appendPort=false --disableLiveReload" port = 1338 targetPort = 1337 publish = "public" autoLaunch = false # Cache resoures between builds: # https://github.com/jakejarvis/netlify-plugin-cache [[plugins]] package = "@netlify/plugin-local-install-core" [[plugins]] package = "./plugins/netlify-plugin-cache" [plugins.inputs] paths = ["resources", "public", "_vendor"] [[plugins]] package = "netlify-plugin-debug-cache" # The most important headers and redirects are specified in the _headers and # _redirects files generated by Hugo. These are additional custom rules. # PGP key: open in browser, download correctly [[headers]] for = "/jarvis.asc" [headers.values] Cache-Control = "no-cache" Content-Type = "text/plain; charset=UTF-8" Content-Disposition = "inline; filename=\"jarvis.asc\"" # AMP cache invalidation key requirements: # https://developers.google.com/amp/cache/update-cache#update-cache-guidelines [[headers]] for = "/.well-known/amphtml/apikey.pub" [headers.values] Content-Type = "text/plain; charset=UTF-8" # Redirect Netlify and www subdomains to primary domain: [[redirects]] from = "https://jakejarvis.netlify.com/*" to = "https://jarv.is/:splat" status = 301 force = true [[redirects]] from = "https://jakejarvis.netlify.app/*" to = "https://jarv.is/:splat" status = 301 force = true [[redirects]] from = "https://www.jarv.is/*" to = "https://jarv.is/:splat" status = 301 force = true # Support ancient RSS subscriptions and links from WordPress era: [[redirects]] from = "/feed" to = "/feed.xml" status = 301 [[redirects]] from = "/rss" to = "/feed.xml" status = 301 [[redirects]] from = "/index.xml" to = "/feed.xml" status = 301 [[redirects]] from = "/index.php" to = "/" status = 301 [[redirects]] from = "/blog/*" to = "/notes/" status = 301 [[redirects]] from = "/archives/*" to = "/notes/" status = 301 [[redirects]] # Not sure if these XML-RPC requests are malicious but forward them to # webmention.io anyway. from = "/xmlrpc.php" to = "https://webmention.io/jarv.is/xmlrpc" status = 302 # Proxy data to Simple Analytics endpoints: [[redirects]] from = "/sa/send*" to = "https://queue.simpleanalyticscdn.com/simple.gif:splat" status = 200 [[redirects]] from = "/sa/append*" to = "https://queue.simpleanalyticscdn.com/append:splat" status = 200 [[redirects]] # This noscript pixel needs to pass unknown arguments along for AMP pages: # https://amp.dev/documentation/components/amp-pixel/ from = "/sa/noscript.gif*" to = "https://queue.simpleanalyticscdn.com/noscript.gif:splat" status = 200 # More miscellaneous mirrors/redirects: [[redirects]] from = "/resume" to = "/resume.pdf" status = 302 [[redirects]] from = "/me.jpg" to = "/img/me.jpg" status = 301 [[redirects]] from = "/me_large.jpg" to = "/img/me_large.jpg" status = 301 [[redirects]] from = "/favicon.ico" to = "/img/favicon.ico" status = 200 [[redirects]] from = "/apple-touch-icon.png" to = "/img/apple-touch-icon.png" status = 200 [[redirects]] from = "/safari-pinned-tab.svg" to = "/img/safari-pinned-tab.svg" status = 200 [[redirects]] from = "/keybase.txt" to = "/.well-known/keybase.txt" status = 301 [[redirects]] from = "/twemoji/svg/*" to = "/vendor/emoji/svg/:splat" status = 301 # Mirror these directories from elsewhere to mimic GitHub Pages behavior and # keep this main repository squeaky clean. # https://github.com/jakejarvis/random-sites (private) [[redirects]] from = "/y2k/*" to = "https://modest-jackson-d5516b.netlify.com/y2k/:splat" status = 200 [[redirects]] from = "/hugo-node/*" to = "https://modest-jackson-d5516b.netlify.com/hugo-node/:splat" status = 200 [[redirects]] from = "/cli/*" to = "https://modest-jackson-d5516b.netlify.com/cli/:splat" status = 200 [[redirects]] from = "/ios-trackers/*" to = "https://modest-jackson-d5516b.netlify.com/ios-trackers/:splat" status = 200 [[redirects]] from = "/scrabble/*" to = "https://modest-jackson-d5516b.netlify.com/scrabble/:splat" status = 200 [[redirects]] from = "/awesome/*" to = "https://modest-jackson-d5516b.netlify.com/awesome/:splat" status = 200 [[redirects]] from = "/candies/*" to = "https://modest-jackson-d5516b.netlify.com/candies/:splat" status = 200 [[redirects]] from = "/comp20/*" to = "https://modest-jackson-d5516b.netlify.com/comp20/:splat" status = 200 # H A C K E R M A N ( ͡° ͜ʖ ͡°) [[redirects]] from = "*/wp-admin/*" to = "/403.html" status = 403 [[redirects]] from = "*/admin/*" to = "/403.html" status = 403 [[redirects]] from = "*/wp-login.php" to = "/403.html" status = 403 [[redirects]] from = "*/login.php" to = "/403.html" status = 403 [[redirects]] from = "*/wlwmanifest.xml" to = "/403.html" status = 403