init
This commit is contained in:
commit
f5d9aece1e
13 changed files with 313 additions and 0 deletions
4
.envrc
Normal file
4
.envrc
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
if command -v nix-shell &> /dev/null
|
||||
then
|
||||
use flake
|
||||
fi
|
||||
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
_site
|
||||
_cache
|
||||
.env
|
||||
.direnv
|
||||
5
_cms.ts
Normal file
5
_cms.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import lumeCMS from "lume/cms/mod.ts";
|
||||
|
||||
const cms = lumeCMS();
|
||||
|
||||
export default cms;
|
||||
78
_components/aboutme.vto
Normal file
78
_components/aboutme.vto
Normal file
|
|
@ -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;
|
||||
}
|
||||
---
|
||||
<div class="aboutme">
|
||||
<div class="ava">
|
||||
<img src="img/ava.jpeg" width="256" height="256" />
|
||||
<div class="socials">
|
||||
<a href="{{ pronounsDB }}" target="_blank" class="pronouns">
|
||||
<img src="{{ "transgender:solid" |> icon("fontawesome") }}" width="48" height="48" />
|
||||
{{ pronouns }}
|
||||
</a>
|
||||
<a href="{{ mastodon }}" target="_blank">
|
||||
<img src="{{ "mastodon:brands" |> icon("fontawesome") }}" width="48" height="48" />
|
||||
</a>
|
||||
<a href="{{ git }}" target="_blank">
|
||||
<img src="{{ "git:brands" |> icon("fontawesome") }}" width="48" height="48" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text">
|
||||
<h1>{{ h1 }}</h1>
|
||||
<p class="intro">{{ intro }}</p>
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
11
_config.ts
Normal file
11
_config.ts
Normal file
|
|
@ -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;
|
||||
15
_includes/layout.vto
Normal file
15
_includes/layout.vto
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>My first page</title>
|
||||
<link rel="stylesheet" href="/styles.css" />
|
||||
<link rel="stylesheet" href="/style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="appbar">
|
||||
<a href="/">Home</a>
|
||||
</div>
|
||||
{{ content }}
|
||||
</body>
|
||||
</html>
|
||||
32
_includes/sass/layout.scss
Normal file
32
_includes/sass/layout.scss
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
70
deno.json
Normal file
70
deno.json
Normal file
|
|
@ -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
|
||||
}
|
||||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
|
|
@ -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
|
||||
}
|
||||
21
flake.nix
Normal file
21
flake.nix
Normal file
|
|
@ -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/"
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
||||
BIN
img/ava.jpeg
Normal file
BIN
img/ava.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
11
index.vto
Normal file
11
index.vto
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
layout: layout.vto
|
||||
---
|
||||
{{ await comp.aboutme({
|
||||
h1: "👋🏻 Hi!",
|
||||
intro: "I'm uwap and I like to:<br/> 🍲 cook<br/> 🧑🏼💻 code<br/><br/>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",
|
||||
}) }}
|
||||
1
styles.scss
Normal file
1
styles.scss
Normal file
|
|
@ -0,0 +1 @@
|
|||
@use "sass/layout";
|
||||
Loading…
Add table
Add a link
Reference in a new issue