diff options
| author | soaos <soaos@soaos.dev> | 2026-04-03 17:20:59 -0400 |
|---|---|---|
| committer | soaos <soaos@soaos.dev> | 2026-04-03 17:20:59 -0400 |
| commit | f28c56ddd35ab468527eda2b116f300732938205 (patch) | |
| tree | 35afd7cfd032650202fbca9eddac66c0939314f1 /templates | |
Initial Commit (Fresh Start)
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/about.html | 10 | ||||
| -rw-r--r-- | templates/base.html | 115 | ||||
| -rw-r--r-- | templates/blog.html | 37 | ||||
| -rw-r--r-- | templates/heaven.html | 29 | ||||
| -rw-r--r-- | templates/hell.html | 22 | ||||
| -rw-r--r-- | templates/index.html | 60 | ||||
| -rw-r--r-- | templates/macros.html | 62 | ||||
| -rw-r--r-- | templates/page.html | 2 | ||||
| -rw-r--r-- | templates/post.html | 30 | ||||
| -rw-r--r-- | templates/section.html | 2 | ||||
| -rw-r--r-- | templates/shortcodes/age.html | 1 | ||||
| -rw-r--r-- | templates/shortcodes/album_list.html | 16 | ||||
| -rw-r--r-- | templates/shortcodes/soaosed.html | 3 | ||||
| -rw-r--r-- | templates/shortcodes/subtree.html | 12 | ||||
| -rw-r--r-- | templates/shortcodes/title_bar.html | 8 | ||||
| -rw-r--r-- | templates/shortcodes/tree_view.html | 5 | ||||
| -rw-r--r-- | templates/shortcodes/treelink.html | 8 | ||||
| -rw-r--r-- | templates/shortcodes/window.html | 3 | ||||
| -rw-r--r-- | templates/shortcodes/window_body.html | 1 |
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 }}
{{ 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> |