commit 67a82113237e4b0339172a982b11cd2340444417
Author: Sam Therapy <sam@samtherapy.net>
Date:   Sun May 14 22:12:19 2023 +0200

    Initial commit
    
    Signed-off-by: Sam Therapy <sam@samtherapy.net>

diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..6d397fe
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,39 @@
+kind: pipeline
+type: docker
+name: Build & Deploy
+
+clone:
+  disable: true
+
+steps:
+  - name: Clone
+    image: woodpeckerci/plugin-git
+    settings:
+      recursive: true
+
+  - name: Build site
+    image: denoland/deno
+    commands:
+      - deno task build
+    depends_on:
+      - "Clone"
+
+  - name: Push to Pages
+    image: plugins/gh-pages
+    settings:
+      remote_url:
+        from_secret: URL
+      password:
+        from_secret: PASS
+      target_branch: pages
+      pages_directory: dist
+      copy_contents: true
+      user_name: Sam Therapy
+      user_email: sam@samtherapy.net
+    depends_on:
+      - "Build site"
+    when:
+      branch:
+        - master
+      event:
+        - push
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..64d3d6a
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,12 @@
+# EditorConfig is awesome: https://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b4b6374
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,88 @@
+# Lume generated site
+dist/
+
+# DS Store
+.DS_Store
+._.DS_Store
+**/.DS_Store
+**/._.DS_Store
+
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+
+# next.js build output
+.next
+
+# nuxt.js build output
+.nuxt
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless
+
+# FuseBox cache
+.fusebox/
+
+# Snyk
+.dccache
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3c2d050
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,11 @@
+{
+  "deno.enable": true,
+  "deno.lint": true,
+  "deno.unstable": true,
+  "[typescript]": {
+    "editor.defaultFormatter": "denoland.vscode-deno"
+  },
+  "[typescriptreact]": {
+    "editor.defaultFormatter": "denoland.vscode-deno"
+  }
+}
diff --git a/_config.ts b/_config.ts
new file mode 100644
index 0000000..8a8ed01
--- /dev/null
+++ b/_config.ts
@@ -0,0 +1,50 @@
+import lume from "lume/mod.ts"
+
+// Stable plugins
+import attributes from "lume/plugins/attributes.ts"
+import codeHighlight from "lume/plugins/code_highlight.ts"
+import esbuild from "lume/plugins/esbuild.ts"
+import jsx from "lume/plugins/jsx_preact.ts"
+import inline from "lume/plugins/inline.ts";
+import katex from "lume/plugins/katex.ts"
+import lightningcss from "lume/plugins/lightningcss.ts"
+import metas from "lume/plugins/metas.ts"
+import minifyHTML from "lume/plugins/minify_html.ts"
+import mdx from "lume/plugins/mdx.ts"
+import pug from "lume/plugins/pug.ts"
+import remark from "lume/plugins/remark.ts"
+import sass from "lume/plugins/sass.ts"
+import sourceMaps from "lume/plugins/source_maps.ts"
+import svgo from "lume/plugins/svgo.ts"
+
+// Experimental plugins
+
+// Custom plugins
+import toml from "./custom/toml/toml.ts"
+
+const site = lume({
+  src: "./src",
+  dest: "./dist",
+})
+
+site
+  .copy("static", ".")
+  .loadData([".toml"], toml)
+  .use(attributes())
+  .use(codeHighlight())
+  .use(katex())
+  .use(metas())
+  .use(jsx())
+  .use(mdx())
+  .use(remark())
+  .use(pug())
+  .use(svgo())
+  .use(esbuild({
+    extensions: [".ts", ".js"],
+  }))
+  .use(lightningcss())
+  .use(sass())
+  .use(minifyHTML())
+  .use(inline())
+
+export default site
diff --git a/_redirects b/_redirects
new file mode 100644
index 0000000..c7ccf35
--- /dev/null
+++ b/_redirects
@@ -0,0 +1 @@
+/*  /index.html 200
diff --git a/custom/toml/toml.ts b/custom/toml/toml.ts
new file mode 100644
index 0000000..341740e
--- /dev/null
+++ b/custom/toml/toml.ts
@@ -0,0 +1,6 @@
+import { parse } from "std/toml/mod.ts"
+
+export default async function toml(path: string | URL) {
+  const content = await Deno.readTextFile(path)
+  return parse(content)
+}
diff --git a/deno.json b/deno.json
new file mode 100644
index 0000000..0eb4ba5
--- /dev/null
+++ b/deno.json
@@ -0,0 +1,42 @@
+{
+  "tasks": {
+    "lume": "echo \"import 'lume/cli.ts'\" | deno run --unstable -A -",
+    "build": "deno task lume",
+    "serve": "deno task lume -s"
+  },
+  "lock": false,
+  "compilerOptions": {
+    "jsx": "react-jsx",
+    "jsxImportSource": "npm:preact",
+    "lib": [
+      "dom",
+      "dom.iterable",
+      "dom.asynciterable",
+      "deno.ns"
+    ]
+  },
+  "imports": {
+    "lume/": "https://deno.land/x/lume@v1.16.2/",
+    "experimental/": "https://raw.githubusercontent.com/lumeland/experimental-plugins/main/",
+    "std/": "https://deno.land/std/"
+  },
+  "lint": {
+    "files": {
+      "exclude": [
+        "src/_includes/styles/external/",
+        "dist/"
+      ]
+    }
+  },
+  "fmt": {
+    "options": {
+      "semiColons": false
+    },
+    "files": {
+      "exclude": [
+        "src/_includes/styles/external/",
+        "dist"
+      ]
+    }
+  }
+}
diff --git a/src/_data.toml b/src/_data.toml
new file mode 100644
index 0000000..546c5f4
--- /dev/null
+++ b/src/_data.toml
@@ -0,0 +1,11 @@
+# Site metas from Lume metas plugin
+[metas]
+site = "What you're trying to access is dead"
+lang = "en"
+description = "The website of a random fishe"
+icon = "img/favicon.png"
+keywords = ["dead", "down", "cheese"]
+generator = false
+
+[mergedKeys]
+metas = "object"
diff --git a/src/_includes/layouts/base.pug b/src/_includes/layouts/base.pug
new file mode 100644
index 0000000..cadb39b
--- /dev/null
+++ b/src/_includes/layouts/base.pug
@@ -0,0 +1,13 @@
+doctype html
+html(lang=metas.lang)
+  head
+    title= title
+    include meta.pug
+  body
+    header
+      h1= title
+      h2= subtitle
+    main
+      | !{content}
+    footer
+      include footer.html
diff --git a/src/_includes/layouts/footer.html b/src/_includes/layouts/footer.html
new file mode 100644
index 0000000..e69de29
diff --git a/src/_includes/layouts/meta.pug b/src/_includes/layouts/meta.pug
new file mode 100644
index 0000000..0304346
--- /dev/null
+++ b/src/_includes/layouts/meta.pug
@@ -0,0 +1,4 @@
+meta(charset="utf-8")
+meta(name='viewport', content='width=device-width, initial-scale=1')
+link(rel="shortcut icon", href="/img/favicon.png", type="image/png" inline)
+link(rel="stylesheet", href="/css/style.css" inline)
diff --git a/src/_includes/styles/base.scss b/src/_includes/styles/base.scss
new file mode 100644
index 0000000..e7aae07
--- /dev/null
+++ b/src/_includes/styles/base.scss
@@ -0,0 +1,8 @@
+@use "styles/sakura.theme";
+
+:root {
+  font-family: -apple-system, BlinkMacSystemFont, "Avenir Next", Avenir, "Nimbus Sans L", Roboto, Noto, "Segoe UI", Arial, Helvetica, "Helvetica Neue", sans-serif;
+  justify-content: center;
+  text-align: center;
+}
+
diff --git a/src/_includes/styles/external/sakura.scss b/src/_includes/styles/external/sakura.scss
new file mode 100644
index 0000000..5aa9bc5
--- /dev/null
+++ b/src/_includes/styles/external/sakura.scss
@@ -0,0 +1,264 @@
+/* Sakura.css v1.4.1
+ * ================
+ * Minimal css theme.
+ * Project: https://github.com/oxalorg/sakura/
+ */
+
+/* Body */
+
+html {
+  font-size: 62.5%; // So that root size becomes 10px
+  font-family: $font-family-base;
+}
+
+body {
+  // $font-size-base must be a rem value
+  font-size: $font-size-base;
+  line-height: 1.618;
+  max-width: 60em;
+  margin: auto;
+  color: $color-text;
+  background-color: $color-bg;
+  padding: 13px;
+}
+
+@media (max-width: 684px) {
+  body {
+    font-size: $font-size-base * 0.85;
+  }
+}
+
+@media (max-width: 382px) {
+  body {
+    font-size: $font-size-base * 0.75;
+  }
+}
+
+@mixin word-wrap() {
+  overflow-wrap: break-word;
+  word-wrap: break-word;
+  -ms-word-break: break-all;
+  word-break: break-word;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  line-height: 1.1;
+  font-family: $font-family-heading;
+  font-weight: 700;
+  margin-top: 3rem;
+  margin-bottom: 1.5rem;
+  @include word-wrap;
+}
+
+h1 {
+  font-size: 2.35em
+}
+
+h2 {
+  font-size: 2.00em
+}
+
+h3 {
+  font-size: 1.75em
+}
+
+h4 {
+  font-size: 1.5em
+}
+
+h5 {
+  font-size: 1.25em
+}
+
+h6 {
+  font-size: 1em
+}
+
+p {
+  margin-top: 0px;
+  margin-bottom: 2.5rem;
+}
+
+small,
+sub,
+sup {
+  font-size: 75%;
+}
+
+hr {
+  border-color: $color-blossom;
+}
+
+a {
+  text-decoration: none;
+  color: $color-blossom;
+
+  &:visited {
+    color: darken($color-blossom, 10%);
+  }
+
+  &:hover {
+    color: $color-fade;
+    border-bottom: 2px solid $color-text;
+  }
+
+}
+
+ul {
+  padding-left: 1.4em;
+  margin-top: 0px;
+  margin-bottom: 2.5rem;
+}
+
+li {
+  margin-bottom: 0.4em;
+}
+
+blockquote {
+  margin-left: 0px;
+  margin-right: 0px;
+  padding-left: 1em;
+  padding-top: 0.8em;
+  padding-bottom: 0.8em;
+  padding-right: 0.8em;
+  border-left: 5px solid $color-blossom;
+  margin-bottom: 2.5rem;
+  background-color: $color-bg-alt;
+}
+
+blockquote p {
+  margin-bottom: 0;
+}
+
+img,
+video {
+  height: auto;
+  max-width: 100%;
+  margin-top: 0px;
+  margin-bottom: 2.5rem;
+}
+
+/* Pre and Code */
+
+pre {
+  background-color: $color-bg-alt;
+  display: block;
+  padding: 1em;
+  overflow-x: auto;
+  margin-top: 0px;
+  margin-bottom: 2.5rem;
+  font-size: 0.9em;
+}
+
+code,
+kbd,
+samp {
+  font-size: 0.9em;
+  padding: 0 0.5em;
+  background-color: $color-bg-alt;
+  white-space: pre-wrap;
+}
+
+pre>code {
+  padding: 0;
+  background-color: transparent;
+  white-space: pre;
+  font-size: 1em;
+}
+
+/* Tables */
+
+table {
+  text-align: justify;
+  width: 100%;
+  border-collapse: collapse;
+}
+
+td,
+th {
+  padding: 0.5em;
+  border-bottom: 1px solid $color-bg-alt;
+}
+
+/* Buttons, forms and input */
+
+input,
+textarea {
+  border: 1px solid $color-text;
+
+  &:focus {
+    border: 1px solid $color-blossom;
+  }
+}
+
+textarea {
+  width: 100%;
+}
+
+.button,
+button,
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+  display: inline-block;
+  padding: 5px 10px;
+  text-align: center;
+  text-decoration: none;
+  white-space: nowrap;
+
+  background-color: $color-blossom;
+  color: $color-bg;
+  border-radius: 1px;
+  border: 1px solid $color-blossom;
+  cursor: pointer;
+  box-sizing: border-box;
+
+  &[disabled] {
+    cursor: default;
+    opacity: .5;
+  }
+
+  &:focus:enabled,
+  &:hover:enabled {
+    background-color: $color-fade;
+    border-color: $color-fade;
+    color: $color-bg;
+    outline: 0;
+  }
+}
+
+textarea,
+select,
+input {
+  color: $color-text;
+  padding: 6px 10px;
+  /* The 6px vertically centers text on FF, ignored by Webkit */
+  margin-bottom: 10px;
+  background-color: $color-bg-alt;
+  border: 1px solid $color-bg-alt;
+  border-radius: 4px;
+  box-shadow: none;
+  box-sizing: border-box;
+
+  &:focus {
+    border: 1px solid $color-blossom;
+    outline: 0;
+  }
+}
+
+input[type="checkbox"]:focus {
+  outline: 1px dotted $color-blossom;
+}
+
+label,
+legend,
+fieldset {
+  display: block;
+  margin-bottom: .5rem;
+  font-weight: 600;
+}
diff --git a/src/_includes/styles/sakura.theme.scss b/src/_includes/styles/sakura.theme.scss
new file mode 100644
index 0000000..faf575a
--- /dev/null
+++ b/src/_includes/styles/sakura.theme.scss
@@ -0,0 +1,15 @@
+// Settings for SakuraCSS
+$color-blossom: #ffffff;
+$color-fade: #c9c9c9;
+
+$color-bg: #222222;
+$color-bg-alt: #4a4a4a;
+
+/* $color-text: #dedce5; */
+$color-text: #c9c9c9;
+$font-size-base: 1.8rem;
+
+$font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
+$font-family-heading: $font-family-base;
+
+@import "styles/external/sakura";
diff --git a/src/_includes/types.ts b/src/_includes/types.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/css/style.scss b/src/css/style.scss
new file mode 100644
index 0000000..8fa490b
--- /dev/null
+++ b/src/css/style.scss
@@ -0,0 +1,5 @@
+@use "styles/base";
+
+img {
+  max-width: 40%;
+}
diff --git a/src/index.mdx b/src/index.mdx
new file mode 100644
index 0000000..9976db5
--- /dev/null
+++ b/src/index.mdx
@@ -0,0 +1,11 @@
+---
+title: It's over
+subtitle: Shit's fucked
+layout: layouts/base.pug
+---
+The service you're trying to access is currently down.
+<img src="./img/503.jpg" alt="http.cat/503" inline />
+It might be back soon. It might not. Who knows? \
+Not me, I'm a static page.
+
+
diff --git a/src/static/img/503.jpg b/src/static/img/503.jpg
new file mode 100644
index 0000000..189db15
Binary files /dev/null and b/src/static/img/503.jpg differ
diff --git a/src/static/img/favicon.png b/src/static/img/favicon.png
new file mode 100644
index 0000000..e9ead3f
Binary files /dev/null and b/src/static/img/favicon.png differ
