commit f5d9aece1e609a9b6b33afd07a90a98cc18036ba Author: uwap Date: Tue Jan 20 15:43:05 2026 +0100 init diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..b3b601f --- /dev/null +++ b/.envrc @@ -0,0 +1,4 @@ +if command -v nix-shell &> /dev/null +then + use flake +fi diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f2443e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +_site +_cache +.env +.direnv diff --git a/_cms.ts b/_cms.ts new file mode 100644 index 0000000..94f6dde --- /dev/null +++ b/_cms.ts @@ -0,0 +1,5 @@ +import lumeCMS from "lume/cms/mod.ts"; + +const cms = lumeCMS(); + +export default cms; diff --git a/_components/aboutme.vto b/_components/aboutme.vto new file mode 100644 index 0000000..5a63d94 --- /dev/null +++ b/_components/aboutme.vto @@ -0,0 +1,78 @@ +--- +css: | + .aboutme { + display: flex; + margin: 3em auto; + background: rgba(0, 0, 0, 0.5); + width: 48rem; + min-width: 524px; + border: 3px ridge #8C2; + } + .aboutme h1 { + font-size: 4em; + } + .aboutme a { + color: #FFF; + text-decoration: none; + } + .aboutme > .text > p.intro { + font-size: 2em; + color: #9C8; + } + .aboutme > div.ava > img { + border-radius: 160px; + margin: 1.5ex; + margin-bottom: .5ex; + } + .aboutme > .text { + flex: 1; + padding-left: 2em; + } + .aboutme > .text > h1 { + margin: 1.5ex; + color: #9F4; + } + .aboutme > * > .socials > a.pronouns { + color: #fff; + font-size: 2em; + baseline: bottom; + display: block; + margin-bottom: 1em; + } + .aboutme > * > .socials > a.pronouns > img { + vertical-align: middle; + filter: invert(81%) sepia(55%) saturate(634%) hue-rotate(39deg) brightness(91%) contrast(89%); + } + .aboutme > * > .socials { + margin: 1em; + margin-top: 0; + } + .aboutme > * > .socials img { + filter: invert(81%) sepia(55%) saturate(634%) hue-rotate(39deg) brightness(91%) contrast(89%); + } + .aboutme > * > .socials a { + margin-right: .75ex; + } +--- +
+ +
+

{{ h1 }}

+

{{ intro }}

+

+
+
diff --git a/_config.ts b/_config.ts new file mode 100644 index 0000000..88577ff --- /dev/null +++ b/_config.ts @@ -0,0 +1,11 @@ +import lume from "lume/mod.ts"; +import sass from "lume/plugins/sass.ts"; +import icons from "lume/plugins/icons.ts"; + +const site = lume(); +site.use(sass()); +site.use(icons()); +site.add("styles.scss"); +site.add("img"); + +export default site; diff --git a/_includes/layout.vto b/_includes/layout.vto new file mode 100644 index 0000000..b0e5476 --- /dev/null +++ b/_includes/layout.vto @@ -0,0 +1,15 @@ + + + + + My first page + + + + +
+ Home +
+ {{ content }} + + diff --git a/_includes/sass/layout.scss b/_includes/sass/layout.scss new file mode 100644 index 0000000..82e0ebb --- /dev/null +++ b/_includes/sass/layout.scss @@ -0,0 +1,32 @@ +html { + min-width: 100%; + min-height: 100%; + margin: 0; + padding: 0; + body { + margin: 0; + padding: 0; + background: #1980a8; + background: linear-gradient(164deg,rgba(25, 128, 168, 1) 0%, rgba(87, 199, 133, 1) 50%, rgba(203, 207, 153, 1) 100%); + + #appbar { + height: 6em; + background: #196089; + border-bottom: 1px solid #444; + box-shadow: 0 0 2px 0 #000; + line-height: 6em; + padding: 0 1em; + + & > a { + color: #fff; + font-size: 3em; + text-align: center; + weight: bold; + } + } + } + a { + cursor: pointer; + text-decoration: none; + } +} diff --git a/deno.json b/deno.json new file mode 100644 index 0000000..11ecb4c --- /dev/null +++ b/deno.json @@ -0,0 +1,70 @@ +{ + "imports": { + "lume/": "https://cdn.jsdelivr.net/gh/lumeland/lume@3.1.4/", + "lume/jsx-runtime": "https://cdn.jsdelivr.net/gh/oscarotero/ssx@0.1.14/jsx-runtime.ts", + "lume/cms/": "https://cdn.jsdelivr.net/gh/lumeland/cms@0.14.11/" + }, + "permissions": { + "lume": { + "read": true, + "write": [ + "./" + ], + "import": [ + "cdn.jsdelivr.net:443", + "jsr.io:443", + "deno.land:443", + "esm.sh:443" + ], + "net": [ + "0.0.0.0", + "cdn.jsdelivr.net:443", + "data.jsdelivr.com:443", + "jsr.io:443", + "deno.land:443", + "esm.sh:443", + "registry.npmjs.org:443" + ], + "env": true, + "run": true, + "ffi": true, + "sys": true + } + }, + "tasks": { + "lume": { + "description": "Run Lume command", + "command": "deno run -P=lume lume/cli.ts" + }, + "build": { + "description": "Build the site for production", + "command": "deno task lume" + }, + "serve": { + "description": "Run and serve the site for development", + "command": "deno task lume -s" + } + }, + "compilerOptions": { + "types": [ + "lume/types.ts" + ], + "jsx": "react-jsx", + "jsxImportSource": "lume" + }, + "unstable": [ + "temporal", + "fmt-component" + ], + "lint": { + "plugins": [ + "https://cdn.jsdelivr.net/gh/lumeland/lume@3.1.4/lint.ts" + ], + "rules": { + "exclude": [ + "no-import-prefix" + ] + } + }, + "lock": false +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..567f021 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1768874166, + "narHash": "sha256-oocBqE1/0hqog1iUNLHtz6OLclTY0QjIC+GsCe+gcFI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6bbe2a9fadf324fb98714ee19d60632c094a0b32", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..55d9cad --- /dev/null +++ b/flake.nix @@ -0,0 +1,21 @@ +{ + description = "A prisma test project"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/master"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = nixpkgs.legacyPackages.${system}; + in { + devShells.default = pkgs.mkShell { + nativeBuildInputs = [ pkgs.bashInteractive ]; + buildInputs = with pkgs; [ + deno + ]; + shellHook = with pkgs; '' + alias build="deno bundle --platform=browser index.html --outdir dist" + alias serve="deno run -ENR jsr:@std/http/file-server dist/" + ''; + }; + }); +} diff --git a/img/ava.jpeg b/img/ava.jpeg new file mode 100644 index 0000000..3feaacb Binary files /dev/null and b/img/ava.jpeg differ diff --git a/index.vto b/index.vto new file mode 100644 index 0000000..16c4826 --- /dev/null +++ b/index.vto @@ -0,0 +1,11 @@ +--- +layout: layout.vto +--- +{{ await comp.aboutme({ + h1: "👋🏻 Hi!", + intro: "I'm uwap and I like to:
  🍲 cook
  🧑🏼‍💻 code

I post about both these things here in my blog.", + mastodon: "https://queerchen.de/@uwap", + git: "https://git.uwap.name/uwap", + pronouns: "they/them", + pronounsDB: "https://en.pronouns.page/@uwap", +}) }} diff --git a/styles.scss b/styles.scss new file mode 100644 index 0000000..71fa8c8 --- /dev/null +++ b/styles.scss @@ -0,0 +1 @@ +@use "sass/layout";