summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.envrc1
-rw-r--r--.gitignore3
-rw-r--r--archetypes/default.md5
-rw-r--r--content/hello-world.md16
-rw-r--r--flake.lock61
-rw-r--r--flake.nix46
-rw-r--r--hugo.toml24
-rw-r--r--layouts/_markup/render-blockquote.gmi1
-rw-r--r--layouts/_markup/render-codeblock.gmi3
-rw-r--r--layouts/_markup/render-heading.gmi3
-rw-r--r--layouts/_markup/render-link.gmi4
-rw-r--r--layouts/baseof.gmi2
-rw-r--r--layouts/baseof.html14
-rw-r--r--layouts/home.gmi5
-rw-r--r--layouts/home.html12
-rw-r--r--layouts/page.gmi21
-rw-r--r--layouts/page.html10
-rw-r--r--layouts/taxonomy.gmi9
-rw-r--r--layouts/taxonomy.html8
-rw-r--r--static/styles.css45
20 files changed, 293 insertions, 0 deletions
diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -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;
+}