aboutsummaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorsoaos <soaos@soaos.dev>2026-04-03 17:20:59 -0400
committersoaos <soaos@soaos.dev>2026-04-03 17:20:59 -0400
commitf28c56ddd35ab468527eda2b116f300732938205 (patch)
tree35afd7cfd032650202fbca9eddac66c0939314f1 /templates
Initial Commit (Fresh Start)
Diffstat (limited to 'templates')
-rw-r--r--templates/about.html10
-rw-r--r--templates/base.html115
-rw-r--r--templates/blog.html37
-rw-r--r--templates/heaven.html29
-rw-r--r--templates/hell.html22
-rw-r--r--templates/index.html60
-rw-r--r--templates/macros.html62
-rw-r--r--templates/page.html2
-rw-r--r--templates/post.html30
-rw-r--r--templates/section.html2
-rw-r--r--templates/shortcodes/age.html1
-rw-r--r--templates/shortcodes/album_list.html16
-rw-r--r--templates/shortcodes/soaosed.html3
-rw-r--r--templates/shortcodes/subtree.html12
-rw-r--r--templates/shortcodes/title_bar.html8
-rw-r--r--templates/shortcodes/tree_view.html5
-rw-r--r--templates/shortcodes/treelink.html8
-rw-r--r--templates/shortcodes/window.html3
-rw-r--r--templates/shortcodes/window_body.html1
19 files changed, 426 insertions, 0 deletions
diff --git a/templates/about.html b/templates/about.html
new file mode 100644
index 0000000..613c944
--- /dev/null
+++ b/templates/about.html
@@ -0,0 +1,10 @@
+{% extends "base.html" %}
+{% import "macros.html" as macros %}
+{% block content %}
+
+{% set soaos = macros::soaosed(text="soaos") | trim %}
+{{ macros::window(title="🦌 About Me", close="..") }}
+{{ page.content | safe }}
+{{ macros::endwindow() }}
+
+{% endblock content %} \ No newline at end of file
diff --git a/templates/base.html b/templates/base.html
new file mode 100644
index 0000000..2902d19
--- /dev/null
+++ b/templates/base.html
@@ -0,0 +1,115 @@
+{% import "macros.html" as macros %}
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <title>soaos</title>
+ <link rel="icon" href="favicon.png" />
+ <link
+ rel="preload"
+ href="/assets/UnifontExMono.woff2"
+ as="font"
+ type="font/woff2"
+ crossorigin="anonymous"
+ />
+ <link rel="stylesheet" href="/98.css" />
+ <link rel="stylesheet" href="/style.css" />
+ <meta charset="UTF-8" />
+ {% block headcontent %} {% endblock headcontent %}
+ </head>
+ <body>
+ <header>
+ <div class="window">
+ <div class="title-bar">
+ <div class="title-bar-text">𐂂 Badass header</div>
+ </div>
+ <div class="window-body centered">
+ <h1 class="flip" data-title="𐂂🌲🌲🌲 soaos 🌲🌲🌲𐂂">
+ <span class="hidden-selectable">𐂂🌲🌲🌲 soaos 🌲🌲🌲𐂂</span>
+ </h1>
+ </div>
+ </div>
+ </header>
+ <main>{% block content %} {% endblock content %}</main>
+ <footer class="window">
+ <div class="title-bar">
+ <div class="title-bar-text">🎖 Badges</div>
+ </div>
+ <div class="window-body">
+ <ul id="badge-grid" class="no-bullets">
+ <li>
+ <a href="https://lynx.browser.org/" target="_blank"
+ ><img src="/assets/badges/lynx.gif" alt="Lynx Compatible"
+ /></a>
+ </li>
+ <li>
+ <a href="https://www.debian.org/" target="_blank"
+ ><img
+ src="/assets/badges/powered-by-debian.gif"
+ alt="Powered by Debian"
+ /></a>
+ </li>
+ <li>
+ <a href="/hell"
+ ><img
+ class="evil-box"
+ src="/assets/badges/go2hell.gif"
+ alt="Go 2 Hell Now!"
+ /></a>
+ </li>
+ <li>
+ <a
+ href="/assets/badges/soaos.png"
+ download
+ data-tooltip="🦌 - Link to me on your site!"
+ ><img src="/assets/badges/soaos.png" alt="soaos.dev"
+ /></a>
+ </li>
+ <li>
+ <img src="/assets/badges/cookies.png" alt="Cookie-Free Page" />
+ </li>
+ <li>
+ <a href="https://creativecommons.org/publicdomain/zero/1.0/" target="_blank"
+ ><img
+ src="/assets/badges/cc-zero.png"
+ alt="Work on this site released under CC0"
+ /></a>
+ </li>
+ <li>
+ <a href="https://indieweb.org" target="_blank"
+ ><img
+ src="/assets/badges/indieweb.png"
+ alt="Work on this site released under CC0"
+ /></a>
+ </li>
+ <li>
+ <a href="https://soaos.dev/atom.xml" target="_blank"
+ ><img
+ src="/assets/badges/rss.gif"
+ alt="RSS Feed"
+ /></a>
+ </li>
+ <li>
+ <a href="https://status.cafe/users/soaos" target="_blank"><img src="https://status.cafe/assets/button.png" alt="Status Cafe"/></a>
+ </li>
+ </ul>
+ </div>
+ <div class="status-bar">
+ <p data-tooltip="🦌 -<3" class="status-bar-field">
+ <span class="red-on-white">█🍁█</span>
+ </p>
+ <p class="status-bar-field">
+ <a href="https://evilr.ing/soaos/previous" class="evil">⛧</a>
+ <a href="https://evilr.ing" class="evil">EVILRING</a>
+ <a href="https://evilr.ing/soaos/next" class="evil">⛤</a>
+ </p>
+ <p class="status-bar-field">
+ <span class="hidden">Built at: </span>{{ now() }}
+ </p>
+ <p class="status-bar-field">
+ <a href="https://soaos.dev" class="flip" data-title="soaos"><span class="hidden-selectable">soaos<span/></a>
+ </p>
+ </div>
+ </footer>
+ </body>
+</html>
diff --git a/templates/blog.html b/templates/blog.html
new file mode 100644
index 0000000..e454299
--- /dev/null
+++ b/templates/blog.html
@@ -0,0 +1,37 @@
+{% extends "base.html" %}
+{% block content %}
+<div class="window">
+ <div class="title-bar">
+ <div class="title-bar-text">📖 Blog</div>
+ <div class="title-bar-controls">
+ <a href="/"><button aria-label="Close"></button></a>
+ </div>
+ </div>
+ <div class="window-body">
+ <p>
+ Welcome to my blog! This is where I'll post longer content about stuff I'm
+ working on. I'm working out some channels for posting day-to-day short
+ form shit too so keep an eye out for that.
+ </p>
+ <h2>Latest Posts</h2>
+ <div class="sunken-panel">
+ <ul class="tree-view" style="height: 8rem; overflow-y: scroll">
+ {% for year, posts in section.pages | group_by(attribute="year") %}
+ <li>
+ <details open>
+ <summary><b>{{ year }}</b></summary>
+ <ul>
+ {% for post in posts %}
+ <li>
+ <a href="{{post.permalink}}">{{post.title}}</a> - {{post.date}}
+ </li>
+ {% endfor %}
+ </ul>
+ </details>
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
+ </div>
+</div>
+{% endblock content %} \ No newline at end of file
diff --git a/templates/heaven.html b/templates/heaven.html
new file mode 100644
index 0000000..93a86ac
--- /dev/null
+++ b/templates/heaven.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+
+<html lang="en">
+
+<head>
+ <title>heaven</title>
+ <link rel="stylesheet" href="/style.css">
+ <link rel="stylesheet" href="/heaven/heaven.css">
+ <meta charset="UTF-8">
+</head>
+
+<body>
+ <div id="heavenly-host"></div>
+ <div class="centered">
+ <details class="holy">
+ <summary>🕊🕊🕊
+ (please enable autoplay to hear music lol)</summary>
+ <audio autoplay loop controls>
+ <source src="/heaven/everytime_we_touch_nightcore.ogg">
+ </audio>
+ </details>
+ <h1 class="holy">😇 GOD BLESS YOU FRIEND... YOU ARE IN HEAVEN! 😇</h1>
+ <div class="huge holy section">
+ YOU ARE LOVED <span style="color: var(--red);">💖</span><span style="color: var(--red);">🌹</span>
+ </div>
+</body>
+
+</html>
+
diff --git a/templates/hell.html b/templates/hell.html
new file mode 100644
index 0000000..d799db3
--- /dev/null
+++ b/templates/hell.html
@@ -0,0 +1,22 @@
+<!doctype html>
+
+<html lang="en">
+ <head>
+ <title>hell</title>
+ <link rel="icon" href="/hell/smallfire.gif" />
+ <link
+ rel="preload"
+ href="/assets/UnifontExMono.woff2"
+ as="font"
+ type="font/woff2"
+ />
+ <link rel="stylesheet" href="/style.css" />
+ <link rel="stylesheet" href="/hell.css" />
+ <meta charset="UTF-8" />
+ </head>
+
+ <body>
+ <massive-fucking-background-flame></massive-fucking-background-flame>
+ {{ section.content | safe }}
+ </body>
+</html>
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..baee426
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,60 @@
+{% extends "base.html" %}
+{% import "macros.html" as macros %}
+{% block content %}
+
+{% set soaos = macros::soaosed(text="soaos") | trim %}
+{% set Soaos = macros::soaosed(text="Soaos") | trim %}
+{{macros::window(title="👤 Welcome to " ~ soaos ~ ".dev")}}
+<div>
+ <div id="status">
+ </div>
+ <br>
+</div>
+{{ macros::treeview(height="16rem")}}
+
+{{ macros::subtree(name="On this site", open=true) }}
+{{ macros::treelink(text="📖 Blog", url="/blog") }}
+<!-- {{ macros::subtree(name="🌲 Projects", open=true, url="/projects") }}
+ {{ macros::endsubtree() }} -->
+{{ macros::treelink(text="🦌 About Me", url="/about", wip=true, wip_tooltip="🦌 -honestly these things are redundant,
+everything is under construction") }}
+{{ macros::endsubtree() }}
+
+{{ macros::subtree(name=Soaos ~ ' Services', open=true) }}
+{{ macros::treelink(text="🌱 Git Repositories", url="https://git.soaos.dev", blank=true, wip=true) }}
+{{ macros::treelink(text="📺 Videos", url="https://tv.soaos.dev/c/soaosdev", blank=true) }}
+<!-- {{ macros::treelink(text="🗃 Web Archive", url="https://archive.soaos.dev", blank=true) }} -->
+<!-- {{ macros::treelink(text="🔍 Search Engine", url="https://search.soaos.dev", blank=true) }} -->
+<!-- {{ macros::treelink(text="♊ Gemini Site", url="gemini://soaos.dev", blank=true) }} -->
+{{ macros::endsubtree() }}
+
+{{ macros::subtree(name="Find me on the Web", open=true) }}
+{{ macros::treelink(text="📧 E-Mail: soaos@soaos.dev", url="mailto:soaos@soaos.dev", rel="me") }}
+{{ macros::treelink(text="💬 Matrix: @soaos:matrix.soaos.dev", url="https://matrix.to/#/@soaos:matrix.soaos.dev",
+rel="me") }}
+{{ macros::treelink(text="☕ StatusCafe: soaos", url="https://status.cafe/users/soaos", blank=true, rel="me") }}
+{{ macros::treelink(text="🐘 Mastodon: soaos@furry.engineer", url="http://soaos.dog", rel="me", blank=true) }}
+<!-- {{ macros::treelink(text="🦀 SSB: @Y1EKP4PU77qby4lI+m5MN6+NcYdjTdRQlV6NmluevuY=.ed25519", url="https://ssb.soaos.dev/~core/ssb/#@Y1EKP4PU77qby4lI+m5MN6+NcYdjTdRQlV6NmluevuY=.ed25519", rel="me", blank=true) }} -->
+<!-- {{ macros::treelink(text="⬡ ListenBrainz: soaos", url="https://listenbrainz.org/user/soaos/", rel="me", blank=true) }} -->
+{{ macros::endsubtree() }}
+
+{{macros::endtreeview()}}
+{{macros::endwindow()}}
+<script id="status-template" type="text/html">
+<h3>Latest Status</h3>
+<div id="statuscafe" class="sunken-panel"><div id="statuscafe-username"></div><div id="statuscafe-content"></div></div>
+</script>
+<script>
+ document.getElementById("status").innerHTML = document.getElementById("status-template").innerHTML;
+ fetch("https://status.cafe/users/soaos/status.json")
+ .then(r => r.json())
+ .then(r => {
+ if (!r.content.length) {
+ document.getElementById("statuscafe-content").innerHTML = "No status yet."
+ return
+ }
+ document.getElementById("statuscafe-username").innerHTML = '<a href="https://status.cafe/users/soaos" target="_blank">' + r.author + '</a> ' + r.face + ' ' + r.timeAgo
+ document.getElementById("statuscafe-content").innerHTML = r.content
+ })
+</script>
+{% endblock content %} \ No newline at end of file
diff --git a/templates/macros.html b/templates/macros.html
new file mode 100644
index 0000000..5642fc2
--- /dev/null
+++ b/templates/macros.html
@@ -0,0 +1,62 @@
+{% macro window(title, close=false) %}
+<div class="window">
+ <div class="title-bar">
+ <div class="title-bar-text">{{title | safe}}</div>
+ <div class="title-bar-controls">
+ {% if close %}
+ <a href="{{ close }}"><button aria-label="Close"></button></a>
+ {% endif %}
+ </div>
+ </div>
+ <div class="window-body">
+{% endmacro window %}
+
+{% macro endwindow() %}
+ </div>
+</div>
+{% endmacro endwindow %}
+
+
+{% macro soaosed(text) %}
+<span class="flip" data-title="{{ text }}"
+ ><span class="hidden-selectable">{{ text }}</span></span
+>
+{% endmacro soaosed %}
+
+{% macro treeview(height="auto") %}
+<div class="sunken-panel">
+ <ul class="tree-view" style="height: {{height}}; overflow-y: scroll">
+{% endmacro treeview %}
+
+{% macro endtreeview() %}
+ </ul>
+</div>
+{% endmacro endtreeview %}
+
+{% macro subtree(name, url="", open=false, blank=false) %}
+<li>
+ <details {% if open %}open{% endif %}>
+ <summary>
+ {% if url %}<a href="{{ url }}" {% if blank %}target="_blank"{% endif %}>{% else %}<b>{% endif %}
+ {{ name | safe }}
+ {% if url %}</a>{% else %}</b>{% endif %}
+ </summary>
+ <ul>
+{% endmacro subtree %}
+
+{% macro endsubtree() %}
+ </ul>
+ </details>
+</li>
+{% endmacro endsubtree %}
+
+{% macro treelink(text, url="", blank=false, wip=false, wip_tooltip="") %}
+<li>
+ <a href="{{ url }}" {% if blank %} target="_blank" {% endif %} {% if rel %} rel="{{ rel }}" {% endif %}>{{ text | safe }}</a>
+ {% if wip %}
+ <span {% if wip_tooltip %}data-tooltip="{{ wip_tooltip }}" {% endif %}>
+ <span class="under-construction unselectable">⚠</span>
+ </span>
+ {% endif %}
+</li>
+{% endmacro treelink %} \ No newline at end of file
diff --git a/templates/page.html b/templates/page.html
new file mode 100644
index 0000000..4cd271b
--- /dev/null
+++ b/templates/page.html
@@ -0,0 +1,2 @@
+{% extends "base.html" %} {% block content %} {{ page.content | safe }} {%
+endblock content %}
diff --git a/templates/post.html b/templates/post.html
new file mode 100644
index 0000000..ae884d5
--- /dev/null
+++ b/templates/post.html
@@ -0,0 +1,30 @@
+{% extends "base.html" %}
+{% block headcontent %}
+<meta property="og:title" content="{{page.title}}" />
+<meta property="og:description" content="{{page.description}}" />
+<meta property="og:type" content="website" />
+<meta property="og:url" content="{{page.permalink}}" />
+<meta property="og:image" content="https://seccdn.libravatar.org/avatar/60676663f4ef6962ce3619df033ff144?s=128&d=identicon" />
+<meta property="og:image:width" content="128" />
+<meta property="og:image:height" content="128" />
+<meta name="theme-color" content="#a7c080" />
+<meta name="twitter:card" content="summary_large_image" />
+{% endblock headcontent %}
+{% block content %}
+<div class="window">
+ <div class="title-bar">
+ <b>📰 Post: {{ page.title }}</b>
+ <div class="title-bar-controls">
+ <button
+ aria-label="Help"
+ data-tooltip="Posted {{ page.date }}&#xa;{{ page.word_count }} words ({{ page.reading_time }} minutes)"
+ ></button>
+ <a href="../"><button aria-label="Close"></button></a>
+ </div>
+ </div>
+ <div class="window-body">
+ <h1>{{ page.title }}</h1>
+ <article>{{ page.content | safe}}</article>
+ </div>
+</div>
+{% endblock content %}
diff --git a/templates/section.html b/templates/section.html
new file mode 100644
index 0000000..0bf66d0
--- /dev/null
+++ b/templates/section.html
@@ -0,0 +1,2 @@
+{% extends "base.html" %} {% block content %} {{ section.content | safe }} {%
+endblock content %}
diff --git a/templates/shortcodes/age.html b/templates/shortcodes/age.html
new file mode 100644
index 0000000..8af71ec
--- /dev/null
+++ b/templates/shortcodes/age.html
@@ -0,0 +1 @@
+{{ now() | date(format='%Y') | int - 2002 }} \ No newline at end of file
diff --git a/templates/shortcodes/album_list.html b/templates/shortcodes/album_list.html
new file mode 100644
index 0000000..74439ca
--- /dev/null
+++ b/templates/shortcodes/album_list.html
@@ -0,0 +1,16 @@
+{% import "macros.html" as macros %}
+{% set data = load_data(path="data/albums.json") %}
+
+{{ macros::treeview(height="32rem") }}
+{% for genre, albums in data.albums | group_by(attribute="genre") %}
+
+{{ macros::subtree(name=genre, open=false) }}
+{% for album in albums %}
+ {{ macros::treelink(text=album.artist ~ " - <i>" ~ album.name ~ `</i><br>
+ <img class="album-thumb" src="https://coverartarchive.org/release-group/` ~ album.release_group ~ `/front"/>`,
+ url="https://musicbrainz.org/release-group/" ~ album.release_group, blank=true) }}
+{% endfor %}
+{{ macros::endsubtree() }}
+
+{% endfor %}
+{{ macros::endtreeview() }}
diff --git a/templates/shortcodes/soaosed.html b/templates/shortcodes/soaosed.html
new file mode 100644
index 0000000..c5ae639
--- /dev/null
+++ b/templates/shortcodes/soaosed.html
@@ -0,0 +1,3 @@
+<span class="flip" data-title="{{ body }}"
+ ><span class="hidden-selectable">{{ body }}</span></span
+> \ No newline at end of file
diff --git a/templates/shortcodes/subtree.html b/templates/shortcodes/subtree.html
new file mode 100644
index 0000000..09f29ce
--- /dev/null
+++ b/templates/shortcodes/subtree.html
@@ -0,0 +1,12 @@
+<li>
+ <details {% if open %}open{% endif %}>
+ <summary>
+ {% if url %}<a href="{{ url }}" {% if blank %}target="_blank"{% endif %}>{% else %}<b>{% endif %}
+ {{ name | safe }}
+ {% if url %}</a>{% else %}</b>{% endif %}
+ </summary>
+ <ul>
+ {{ body | markdown | safe }}
+ </ul>
+ </details>
+</li> \ No newline at end of file
diff --git a/templates/shortcodes/title_bar.html b/templates/shortcodes/title_bar.html
new file mode 100644
index 0000000..facc6fb
--- /dev/null
+++ b/templates/shortcodes/title_bar.html
@@ -0,0 +1,8 @@
+<div class="title-bar">
+ <div class="title-bar-text">{{ body | safe }}</div>
+ <div class="title-bar-controls">
+ {% if close %}
+ <a href="{{ close }}"><button aria-label="Close"></button></a>
+ {% endif %}
+ </div>
+</div>
diff --git a/templates/shortcodes/tree_view.html b/templates/shortcodes/tree_view.html
new file mode 100644
index 0000000..e8de782
--- /dev/null
+++ b/templates/shortcodes/tree_view.html
@@ -0,0 +1,5 @@
+<div class="sunken-panel">
+ <ul class="tree-view" {% if height %} style="height: {{height}}; overflow-y: scroll" {% endif %} >
+ {{ body | markdown | safe }}
+ </ul>
+</div>
diff --git a/templates/shortcodes/treelink.html b/templates/shortcodes/treelink.html
new file mode 100644
index 0000000..ff80fdc
--- /dev/null
+++ b/templates/shortcodes/treelink.html
@@ -0,0 +1,8 @@
+<li>
+ <a href="{{ url }}" {% if blank %} target="_blank" {% endif %} {% if rel %} rel="{{ rel }}" {% endif %}>{{ text }}</a>
+ {% if wip %}
+ <span {% if wip_tooltip %}data-tooltip="{{ wip_tooltip }}" {% endif %}>
+ <span class="under-construction unselectable">⚠</span>
+ </span>
+ {% endif %}
+</li> \ No newline at end of file
diff --git a/templates/shortcodes/window.html b/templates/shortcodes/window.html
new file mode 100644
index 0000000..8abddbe
--- /dev/null
+++ b/templates/shortcodes/window.html
@@ -0,0 +1,3 @@
+<div class="window">
+{{ body | safe }}
+</div>
diff --git a/templates/shortcodes/window_body.html b/templates/shortcodes/window_body.html
new file mode 100644
index 0000000..f7c84a7
--- /dev/null
+++ b/templates/shortcodes/window_body.html
@@ -0,0 +1 @@
+<div class="window-body">{{ body | markdown | safe }}</div>