diff --git a/.envrc b/.envrc
index 8392d15..3550a30 100644
--- a/.envrc
+++ b/.envrc
@@ -1 +1 @@
-use flake
\ No newline at end of file
+use flake
diff --git a/.forgejo/workflows/deployment.yml b/.forgejo/workflows/deployment.yml
new file mode 100644
index 0000000..8fd2d58
--- /dev/null
+++ b/.forgejo/workflows/deployment.yml
@@ -0,0 +1,23 @@
+name: notohh.dev
+
+on: [push]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: install nix
+ uses: https://github.com/DeterminateSystems/nix-installer-action@v5
+ with:
+ github-token: ${{ secrets.GH_TOKEN }}
+ - name: build
+ run: |
+ nix run nixpkgs#dart-sass -- scss/main.scss static/dist/main.css
+ nix run nixpkgs#elmPackages.elm-land -- build
+ - name: deploy
+ uses: https://github.com/cloudflare/wrangler-action@v3
+ with:
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+ accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ command: pages deploy ./dist --project-name=notohh-dev --commit-dirty=true
diff --git a/.gitignore b/.gitignore
index 5c41f01..6bee23b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,10 @@
-.hugo_build.lock
\ No newline at end of file
+/dist
+/.elm-land
+/.env
+/elm-stuff
+/node_modules
+.DS_Store
+*.pem
+
+/static/dist
+node_modules
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 51edd47..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "themes/gokarna"]
- path = themes/gokarna
- url = https://github.com/526avijitgupta/gokarna.git
diff --git a/README.md b/README.md
index 69b5451..703b33b 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,6 @@
-
-
- notohh.dev
-
-
-
-
built with hugo, deployed with cloudflare.
+
+
notohh.dev
+
+ Built with Elm Land 🌈 Deployed with Cloudflare
+
\ No newline at end of file
diff --git a/archetypes/default.md b/archetypes/default.md
deleted file mode 100644
index c6f3fce..0000000
--- a/archetypes/default.md
+++ /dev/null
@@ -1,5 +0,0 @@
-+++
-title = '{{ replace .File.ContentBaseName "-" " " | title }}'
-date = {{ .Date }}
-draft = true
-+++
diff --git a/content/about/_index.md b/content/about/_index.md
deleted file mode 100644
index 3567ac2..0000000
--- a/content/about/_index.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "about"
-type = "page"
-+++
-
-22 y/o. nix enthusiast, interested in linux and different languages / technologies.
-
-PGP: C3CB 3B31 AF3F 986C 39E0 BE5B BD47 506D 475E E86DPGP: C3CB 3B31 AF3F 986C 39E0 BE5B BD47 506D 475E E86D
diff --git a/content/projects/_index.md b/content/projects/_index.md
deleted file mode 100644
index bf81b60..0000000
--- a/content/projects/_index.md
+++ /dev/null
@@ -1,7 +0,0 @@
-+++
-title = "projects"
-type = "page"
-+++
-
-- [snowflake](/projects/snowflake)
-- [basegbot](/projects/basegbot)
\ No newline at end of file
diff --git a/content/projects/basegbot.md b/content/projects/basegbot.md
deleted file mode 100644
index 7db20b3..0000000
--- a/content/projects/basegbot.md
+++ /dev/null
@@ -1,4 +0,0 @@
-+++
-title = "basegbot"
-type = "page"
-+++
\ No newline at end of file
diff --git a/content/projects/snowflake.md b/content/projects/snowflake.md
deleted file mode 100644
index d8e5c89..0000000
--- a/content/projects/snowflake.md
+++ /dev/null
@@ -1,29 +0,0 @@
-+++
-title = "snowflake"
-type = "page"
-+++
-
-![Screenshot updated: 2023-06-08](https://i.imgur.com/23Gv6Gh.png)
-
-snowflake is my lifeblood. written and configured in nix, its my desktop, my laptop, my servers, my everything.
-
-## Features
-
-+ multi-config repo, with configs for servers, laptop, and desktop
-+ multi-system home-manager setup
-+ secrets provisioning with [sops-nix](https://github.com/Mic92/sops-nix)
-+ multiple fully declarative self hosted services (and some containerized ones, with a docker backend)
-+ wayland configs for hyprland and river
-+ custom packages not found in nixpkgs
-
-## Credit
-#### people who've inspired me to dive into nix, and i've stolen stuff from (you guys are awesome!)
-+ [fufexan](https://github.com/fufexan) - a ton of home manager, hyprland stuff, and some gh workflows
-+ [Misterio77](https://github.com/Misterio77) - flake, and some other boilerplate
-+ [NobbZ](https://github.com/NobbZ) - general nix assistance
-+ [MatthiasBenaets](https://github.com/MatthiasBenaets) - amazing nixos introduction video
-+ [sioodmy](https://github.com/sioodmy) - general dotfile, readme badges, and hyprland stuff
-+ [MatthewCroughan](https://github.com/MatthewCroughan) - traefik config used as reference
-+ [seqizz](https://github.com/seqizz/nixos-config/blob/3ee51f406a8c7aa3afde9cdee97a43641b2ed2ef/modules/server/rustypaste.nix) - rustypaste config
-+ [Yavko](https://github.com/yavko) - ironbar config used as reference
-+ [hlissner](https://github.com/hlissner) - [security.nix](modules/security.nix)
\ No newline at end of file
diff --git a/elm-land.json b/elm-land.json
new file mode 100644
index 0000000..268a80b
--- /dev/null
+++ b/elm-land.json
@@ -0,0 +1,45 @@
+{
+ "app": {
+ "elm": {
+ "development": {
+ "debugger": true
+ },
+ "production": {
+ "debugger": false
+ }
+ },
+ "env": [],
+ "html": {
+ "attributes": {
+ "html": {
+ "lang": "en"
+ },
+ "head": {}
+ },
+ "title": "notohh.dev",
+ "meta": [
+ {
+ "charset": "UTF-8"
+ },
+ {
+ "http-equiv": "X-UA-Compatible",
+ "content": "IE=edge"
+ },
+ {
+ "name": "viewport",
+ "content": "width=device-width, initial-scale=1.0"
+ }
+ ],
+ "link": [
+ {
+ "rel": "stylesheet",
+ "href": "/dist/main.css"
+ }
+ ],
+ "script": []
+ },
+ "router": {
+ "useHashRouting": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/elm.json b/elm.json
new file mode 100644
index 0000000..9a6dec1
--- /dev/null
+++ b/elm.json
@@ -0,0 +1,25 @@
+{
+ "type": "application",
+ "source-directories": [
+ "src",
+ ".elm-land/src"
+ ],
+ "elm-version": "0.19.1",
+ "dependencies": {
+ "direct": {
+ "elm/browser": "1.0.2",
+ "elm/core": "1.0.5",
+ "elm/html": "1.0.0",
+ "elm/json": "1.1.3",
+ "elm/url": "1.0.0"
+ },
+ "indirect": {
+ "elm/time": "1.0.0",
+ "elm/virtual-dom": "1.0.3"
+ }
+ },
+ "test-dependencies": {
+ "direct": {},
+ "indirect": {}
+ }
+}
\ No newline at end of file
diff --git a/flake.lock b/flake.lock
index 9491c2f..ee1e5e1 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1703637592,
- "narHash": "sha256-8MXjxU0RfFfzl57Zy3OfXCITS0qWDNLzlBAdwxGZwfY=",
+ "lastModified": 1704194953,
+ "narHash": "sha256-RtDKd8Mynhe5CFnVT8s0/0yqtWFMM9LmCzXv/YKxnq4=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "cfc3698c31b1fb9cdcf10f36c9643460264d0ca8",
+ "rev": "bd645e8668ec6612439a9ee7e71f7eac4099d4f6",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 2dd9e54..719dc46 100644
--- a/flake.nix
+++ b/flake.nix
@@ -6,11 +6,7 @@
url = "github:nixos/nixpkgs/nixos-unstable";
};
};
- outputs = {
- self,
- nixpkgs,
- ...
- }: let
+ outputs = {nixpkgs, ...}: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
@@ -22,7 +18,11 @@
nil
git
alejandra
- hugo
+ dart-sass
+ nodejs
+ elmPackages.elm
+ elmPackages.elm-land
+ elmPackages.elm-format
];
};
};
diff --git a/hugo.toml b/hugo.toml
deleted file mode 100644
index 37da7d2..0000000
--- a/hugo.toml
+++ /dev/null
@@ -1,41 +0,0 @@
-baseURL = "https://notohh.dev/"
-defaultContentLanguage = "en"
-languageCode = "en"
-
-title = "notohh"
-
-theme = "gokarna"
-
-enableRobotsTXT = true
-
-[menu]
- [[menu.main]]
- identifier = "status"
- name = "status"
- url = "https://status.flake.sh/status/kumo"
- pre = ""
- weight = 1
-
- [[menu.main]]
- identifier = "about"
- name = "about"
- url = "/about/"
- weight = 2
-
- [[menu.main]]
- identifier = "projects"
- name = "projects"
- url = "/projects/"
- weight = 3
-
-[params]
- avatarURL = "images/pfp.jpg"
- avatarSize = "size-m"
- accentColor = "#74c7ec"
- socialIcons = [
- {name = "github", url = "https://git.flake.sh/notohh"},
- {name = "twitter", url = "https://twitter.com/notohhh"},
- {name = "twitch", url = "https://www.twitch.tv/notohh"},
- {name = "discord", url = "https://discord.com/users/155965294429470720"}
- ]
- pygmentsStyle = "catppuccin-mocha"
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..c157930
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,570 @@
+{
+ "name": "14-scss-and-assets",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "14-scss-and-assets",
+ "version": "1.0.0",
+ "license": "ISC",
+ "devDependencies": {
+ "concurrently": "7.6.0",
+ "sass": "1.57.1"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
+ "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
+ "dev": true,
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/concurrently": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz",
+ "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "date-fns": "^2.29.1",
+ "lodash": "^4.17.21",
+ "rxjs": "^7.0.0",
+ "shell-quote": "^1.7.3",
+ "spawn-command": "^0.0.2-1",
+ "supports-color": "^8.1.0",
+ "tree-kill": "^1.2.2",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "conc": "dist/bin/concurrently.js",
+ "concurrently": "dist/bin/concurrently.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
+ }
+ },
+ "node_modules/date-fns": {
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+ "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
+ },
+ "engines": {
+ "node": ">=0.11"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/date-fns"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
+ "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+ "dev": true
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+ "dev": true
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/sass": {
+ "version": "1.57.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz",
+ "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/spawn-command": {
+ "version": "0.0.2-1",
+ "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
+ "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==",
+ "dev": true
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "dev": true,
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..4693674
--- /dev/null
+++ b/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "14-scss-and-assets",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "start": "npm i && npm run dev",
+ "dev": "concurrently \"npm:dev:*\"",
+ "dev:sass": "sass -w scss/main.scss static/dist/main.css",
+ "dev:elm-land": "elm-land server",
+ "build": "npm run build:sass && npm run build:elm-land",
+ "build:sass": "sass scss/main.scss static/dist/main.css",
+ "build:elm-land": "elm-land build"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "devDependencies": {
+ "concurrently": "7.6.0",
+ "sass": "1.57.1"
+ }
+}
\ No newline at end of file
diff --git a/scss/colors.scss b/scss/colors.scss
new file mode 100644
index 0000000..2e92c60
--- /dev/null
+++ b/scss/colors.scss
@@ -0,0 +1,24 @@
+/* tokyonight */
+
+$red: #f7768e;
+$orange: #ff9e64;
+$yellow: #e0af68;
+$light-green: #9ece6a;
+$green: #73daca;
+$turquoise: #89ddff;
+$light-cyan: #b4f9f8;
+$teal: #2ac3de;
+$cyan: #7dcfff;
+$blue: #7aa2f7;
+$magenta: #bb9af7;
+$white: #c0caf5;
+$light-gray: #9aa5ce;
+$parameters: #cfc9c2;
+$comment: #565f89;
+$black: #414868;
+$foreground: #a9b1d6;
+$foreground-highlight: #c0caf5;
+$foreground-gutter: #363b54;
+$background: #1a1b26;
+$background-highlight: #30374b;
+$background-menu: #16161e;
\ No newline at end of file
diff --git a/scss/main.scss b/scss/main.scss
new file mode 100644
index 0000000..514ec68
--- /dev/null
+++ b/scss/main.scss
@@ -0,0 +1,12 @@
+@import './colors.scss';
+@import url('https://fonts.googleapis.com/css2?family=Work+Sans&display=swap');
+
+* {
+ font-family: 'Work Sans', sans-serif;
+ background-color: $background;
+ color: $white;
+}
+
+h1 {
+
+}
\ No newline at end of file
diff --git a/src/Pages/About.elm b/src/Pages/About.elm
new file mode 100644
index 0000000..d6dc4ac
--- /dev/null
+++ b/src/Pages/About.elm
@@ -0,0 +1,12 @@
+module Pages.About exposing (page)
+
+import Html exposing (..)
+import Html.Attributes exposing (..)
+import View exposing (View)
+
+
+page : View msg
+page =
+ { title = "about"
+ , body = [ Html.text "/about" ]
+ }
diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm
new file mode 100644
index 0000000..71137f6
--- /dev/null
+++ b/src/Pages/Home_.elm
@@ -0,0 +1,15 @@
+module Pages.Home_ exposing (page)
+
+import Html exposing (..)
+import Html.Attributes exposing (..)
+import View exposing (View)
+
+
+page : View msg
+page =
+ { title = "home"
+ , body =
+ [ h1 [] [ text "notohh.dev" ]
+ , p [] [ text "Under construction" ]
+ ]
+ }
diff --git a/src/Pages/NotFound_.elm b/src/Pages/NotFound_.elm
new file mode 100644
index 0000000..347121a
--- /dev/null
+++ b/src/Pages/NotFound_.elm
@@ -0,0 +1,69 @@
+module Pages.NotFound_ exposing (Model, Msg, page)
+
+import Effect exposing (Effect)
+import Html exposing (..)
+import Page exposing (Page)
+import Route exposing (Route)
+import Route.Path
+import Shared
+import View exposing (View)
+
+
+page : Shared.Model -> Route () -> Page Model Msg
+page shared route =
+ Page.new
+ { init = init
+ , update = update
+ , subscriptions = subscriptions
+ , view = view
+ }
+
+
+
+-- INIT
+
+
+type alias Model =
+ {}
+
+
+init : () -> ( Model, Effect Msg )
+init () =
+ ( {}
+ , Effect.none
+ )
+
+
+
+-- UPDATE
+
+
+type Msg
+ = NoOp
+
+
+update : Msg -> Model -> ( Model, Effect Msg )
+update msg model =
+ case msg of
+ NoOp ->
+ ( model
+ , Effect.none
+ )
+
+
+
+-- SUBSCRIPTIONS
+
+
+subscriptions : Model -> Sub Msg
+subscriptions model =
+ Sub.none
+
+
+
+-- VIEW
+
+
+view : Model -> View Msg
+view model =
+ View.fromString "This page doesnt exist!"
diff --git a/src/Pages/Projects.elm b/src/Pages/Projects.elm
new file mode 100644
index 0000000..2de1a46
--- /dev/null
+++ b/src/Pages/Projects.elm
@@ -0,0 +1,12 @@
+module Pages.Projects exposing (page)
+
+import Html exposing (..)
+import Html.Attributes exposing (..)
+import View exposing (View)
+
+
+page : View msg
+page =
+ { title = "projects"
+ , body = [ Html.text "/projects" ]
+ }
diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png
deleted file mode 100644
index d0115a5..0000000
Binary files a/static/android-chrome-192x192.png and /dev/null differ
diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png
deleted file mode 100644
index fbe0e50..0000000
Binary files a/static/android-chrome-512x512.png and /dev/null differ
diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png
deleted file mode 100644
index aa9723b..0000000
Binary files a/static/apple-touch-icon.png and /dev/null differ
diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png
deleted file mode 100644
index 8dc7a53..0000000
Binary files a/static/favicon-16x16.png and /dev/null differ
diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png
deleted file mode 100644
index 66e61c3..0000000
Binary files a/static/favicon-32x32.png and /dev/null differ
diff --git a/static/favicon.ico b/static/favicon.ico
deleted file mode 100644
index 92dd3d8..0000000
Binary files a/static/favicon.ico and /dev/null differ
diff --git a/static/icons/last-fm.svg b/static/icons/last-fm.svg
deleted file mode 100644
index 4811d72..0000000
--- a/static/icons/last-fm.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
\ No newline at end of file
diff --git a/static/images/pfp.jpg b/static/images/pfp.jpg
deleted file mode 100644
index fc81f7e..0000000
Binary files a/static/images/pfp.jpg and /dev/null differ
diff --git a/static/site.webmanifest b/static/site.webmanifest
deleted file mode 100644
index 45dc8a2..0000000
--- a/static/site.webmanifest
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
\ No newline at end of file
diff --git a/themes/gokarna b/themes/gokarna
deleted file mode 160000
index 9d9e752..0000000
--- a/themes/gokarna
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9d9e7521f1ba1273a547603ceb971c2847389f77