diff options
| -rw-r--r-- | .envrc | 1 | ||||
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | archetypes/default.md | 5 | ||||
| -rw-r--r-- | content/hello-world.md | 16 | ||||
| -rw-r--r-- | flake.lock | 61 | ||||
| -rw-r--r-- | flake.nix | 46 | ||||
| -rw-r--r-- | hugo.toml | 24 | ||||
| -rw-r--r-- | layouts/_markup/render-blockquote.gmi | 1 | ||||
| -rw-r--r-- | layouts/_markup/render-codeblock.gmi | 3 | ||||
| -rw-r--r-- | layouts/_markup/render-heading.gmi | 3 | ||||
| -rw-r--r-- | layouts/_markup/render-link.gmi | 4 | ||||
| -rw-r--r-- | layouts/baseof.gmi | 2 | ||||
| -rw-r--r-- | layouts/baseof.html | 14 | ||||
| -rw-r--r-- | layouts/home.gmi | 5 | ||||
| -rw-r--r-- | layouts/home.html | 12 | ||||
| -rw-r--r-- | layouts/page.gmi | 21 | ||||
| -rw-r--r-- | layouts/page.html | 10 | ||||
| -rw-r--r-- | layouts/taxonomy.gmi | 9 | ||||
| -rw-r--r-- | layouts/taxonomy.html | 8 | ||||
| -rw-r--r-- | static/styles.css | 45 |
20 files changed, 293 insertions, 0 deletions
@@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..73fdcda --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/public +/resources +/.hugo_build.lock diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..25b6752 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/content/hello-world.md b/content/hello-world.md new file mode 100644 index 0000000..f1fe71d --- /dev/null +++ b/content/hello-world.md @@ -0,0 +1,16 @@ ++++ +title = "Hello, world!" +date = 2025-08-18T13:00:00+00:00 +draft = false ++++ + +So, this is finally it. The long awaited (by literally no one) andre4ik3 home +page. + +Basically it's a static site built with Hugo. Very light on CSS and no JS at +all (so far, hopefully stays true). + +I literally joined relvokcor.xyz on ... 2019-09-16 (at least that's the date my +home directory got created). And it took me until now to even get some +semblance of a homepage. Nice. + diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..3348c7e --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1755512770, + "narHash": "sha256-sSyN21cEi1IVy2BDbgVdmB4jITal8KxruuiSev3L0F4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4c7a7243d147dda1eaee0a373aeb28c9d0b2c9b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "utils": "utils" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "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" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..86a452f --- /dev/null +++ b/flake.nix @@ -0,0 +1,46 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/release-25.05"; + utils.url = "github:numtide/flake-utils"; + }; + + outputs = { utils, ... }@inputs: utils.lib.eachDefaultSystem (system: let + pkgs = inputs.nixpkgs.legacyPackages.${system}; + + fonts = pkgs.stdenv.mkDerivation { + name = "caladea-woff2"; + src = pkgs.caladea; + nativeBuildInputs = [ pkgs.woff2 ]; + buildPhase = '' + pushd "share/fonts/truetype" + + for file in *.ttf; do + woff2_compress "$file" + done + + mkdir -p "$out" + mv *.woff2 "$out" + ''; + }; + + site = pkgs.stdenv.mkDerivation { + name = "site"; + src = ./.; + nativeBuildInputs = [ pkgs.hugo ]; + buildPhase = '' + runHook preBuild + ln -sf "${fonts}" "static/fonts" + hugo --destination "$out" + runHook postBuild + ''; + }; + + in { + inherit (inputs) self; + devShells.default = pkgs.mkShell { + packages = [ pkgs.hugo ]; + }; + + packages.default = site; + }); +} diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..af2e2a2 --- /dev/null +++ b/hugo.toml @@ -0,0 +1,24 @@ +baseURL = "https://relvokcor.xyz/~andre4ik3" +languageCode = "en-us" +title = "andre4ik3" + +[mediaTypes."text/gemini"] +suffixes = ["gmi"] + +[outputFormats.gemini] +isPlainText = true +mediaType = "text/gemini" +permalinkable = true +protocol = "gemini://" + +# [outputs] +# home = ["html", "gemini"] +# section = ["html", "gemini"] +# taxonomy = ["html", "gemini"] +# term = ["html", "gemini"] +# page = ["html", "gemini"] + +[markup.goldmark.extensions.extras] +delete.enable = true +insert.enable = true +mark.enable = true diff --git a/layouts/_markup/render-blockquote.gmi b/layouts/_markup/render-blockquote.gmi new file mode 100644 index 0000000..434d5ad --- /dev/null +++ b/layouts/_markup/render-blockquote.gmi @@ -0,0 +1 @@ +> {{ .Text }} diff --git a/layouts/_markup/render-codeblock.gmi b/layouts/_markup/render-codeblock.gmi new file mode 100644 index 0000000..fccccac --- /dev/null +++ b/layouts/_markup/render-codeblock.gmi @@ -0,0 +1,3 @@ +```{{ .Type }} +{{ .Inner }} +``` diff --git a/layouts/_markup/render-heading.gmi b/layouts/_markup/render-heading.gmi new file mode 100644 index 0000000..d33cde1 --- /dev/null +++ b/layouts/_markup/render-heading.gmi @@ -0,0 +1,3 @@ + +{{ strings.Repeat .Level "#" }} {{ .Text }} + diff --git a/layouts/_markup/render-link.gmi b/layouts/_markup/render-link.gmi new file mode 100644 index 0000000..3ca54ac --- /dev/null +++ b/layouts/_markup/render-link.gmi @@ -0,0 +1,4 @@ + + +=> {{ .Destination | safeURL }} {{ .Text }} + diff --git a/layouts/baseof.gmi b/layouts/baseof.gmi new file mode 100644 index 0000000..8dd62f5 --- /dev/null +++ b/layouts/baseof.gmi @@ -0,0 +1,2 @@ +{{ block "main" . }} +{{ end }} diff --git a/layouts/baseof.html b/layouts/baseof.html new file mode 100644 index 0000000..bcf79c4 --- /dev/null +++ b/layouts/baseof.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>{{ .Title }}</title> + <link rel="stylesheet" href="{{ "styles.css" | absURL }}"> + </head> + <body> + <main> + {{ block "main" . }} + {{ end }} + </main> + </body> +</html> diff --git a/layouts/home.gmi b/layouts/home.gmi new file mode 100644 index 0000000..14bdf33 --- /dev/null +++ b/layouts/home.gmi @@ -0,0 +1,5 @@ +# Hello World + +{{ range .Site.RegularPages }} +=> {{ .RelPermalink }} {{ .PublishDate.UTC.Format "2006-01-02" }} {{ .LinkTitle }} +{{ end }} diff --git a/layouts/home.html b/layouts/home.html new file mode 100644 index 0000000..d9706d6 --- /dev/null +++ b/layouts/home.html @@ -0,0 +1,12 @@ +{{ define "main" }} + <h1>andre4ik3</h1> + + Welcome to my home page! :) + + <ul> + {{ range .Site.RegularPages }} + <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li> + {{ end }} + </ul> + +{{ end }} diff --git a/layouts/page.gmi b/layouts/page.gmi new file mode 100644 index 0000000..7a9cfc8 --- /dev/null +++ b/layouts/page.gmi @@ -0,0 +1,21 @@ +{{ define "main" }} +# {{ .Title }} + +{{ + .Content + | transform.HTMLUnescape + | strings.ReplaceRE `<strong>(.*)</strong>` `*$1*` + | strings.ReplaceRE `<em>(.*)</em>` `*$1*` + | strings.ReplaceRE `<code>(.*)</code>` "`$1`" + + | strings.ReplaceRE `<p>(.*)</p>` "$1\n" + | strings.ReplaceRE `<p>(.*)\n` "$1 " + | strings.ReplaceRE `\n(.*)</p>` " $1\n" + | strings.ReplaceRE `(\w.+?)\n(\w.+?)` "$1 $2" + + | strings.ReplaceRE `</?[uo]l>` `` + | strings.ReplaceRE `<li>(.*)\n` `* $1` + | strings.ReplaceRE `</li>` `` +}} + +{{ end }} diff --git a/layouts/page.html b/layouts/page.html new file mode 100644 index 0000000..3012822 --- /dev/null +++ b/layouts/page.html @@ -0,0 +1,10 @@ +{{ define "main" }} + <h1>{{ .Title }}</h1> + <a href="..">Back...</a> + <p>Published on {{ .PublishDate.UTC.Format "2006-01-02" }}</p> + + <article> + {{ .Content }} + </article> +{{ end }} + diff --git a/layouts/taxonomy.gmi b/layouts/taxonomy.gmi new file mode 100644 index 0000000..0991ebc --- /dev/null +++ b/layouts/taxonomy.gmi @@ -0,0 +1,9 @@ +# {{ .Title }} + +{{ .Content }} + +{{ range .Pages }} +=> {{ .RelPermalink }} {{ .LinkTitle }} +{{ end }} + + diff --git a/layouts/taxonomy.html b/layouts/taxonomy.html new file mode 100644 index 0000000..3382425 --- /dev/null +++ b/layouts/taxonomy.html @@ -0,0 +1,8 @@ +{{ define "main" }} + <h1>{{ .Title }}</h1> + {{ .Content }} + {{ range .Pages }} + <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2> + {{ end }} +{{ end }} + diff --git a/static/styles.css b/static/styles.css new file mode 100644 index 0000000..1296f0a --- /dev/null +++ b/static/styles.css @@ -0,0 +1,45 @@ +@font-face { + font-family: "Caladea"; + src: url(fonts/Caladea-Regular.woff2); +} + +@font-face { + font-family: "Caladea"; + src: url(fonts/Caladea-Bold.woff2); + font-weight: bold; +} + +@font-face { + font-family: "Caladea"; + src: url(fonts/Caladea-Italic.woff2); + font-style: italic; +} + +@font-face { + font-family: "Caladea"; + src: url(fonts/Caladea-BoldItalic.woff2); + font-style: italic; + font-weight: bold; +} + +html, body { + font-family: "Caladea", serif; + background-color: #ffffee; + color: #222222; +} + +@media (prefers-color-scheme: dark) { + html, body { + background-color: #222; + color: #eee; + } + + a { color: #8888ff; } + a:visited { color: #ff88ff; } +} + +main { + width: clamp(60em, 80vw, 100em); + max-width: 100%; + margin: auto; +} |
