feat: completely reworked structure with nostyleplease theme

This commit is contained in:
ae 2025-02-17 01:21:30 +02:00
parent a4014b4afe
commit 953e68dc13
Signed by: ae
GPG Key ID: 995EFD5C1B532B3E
39 changed files with 532 additions and 209 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
public/
.hugo_build.lock
/resources/_gen

Binary file not shown.

Binary file not shown.

View File

@ -1,35 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Experimental privacy-centric project that aims to provide a random selection of open-source services free of charge">
<link rel="stylesheet" href="style-min.css">
<link rel="icon" type="image/png" href="/assets/favicon-96x96.png" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="/assets/favicon.svg" />
<link rel="shortcut icon" href="/assets/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="Umbrella" />
<link rel="manifest" href="/assets/webmanifest.json" />
<title>Umbrella - Contact</title>
</head>
<body>
<div class="page">
<h1>Umbrella. <a href="/">home</a> <a href="/contact">contact</a></h1>
<p>Umbrella.haus is an experimental, privacy-centric project that aims to provide a curated selection of open-source services free of charge.</p>
<div class="section">
<h2>Contact</h2>
<ul>
<li>Signal: <code>xmr.02</code></li>
<li>Email: <code>ben (at) uq.ci</code></li>
<li>PGP: <a href="https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1530f5132a1228578d2b4168995efd5c1b532b3e"><code>1530 F513 2A12 2857 8D2B 4168 995E FD5C 1B53 2B3E</code></a></li>
</ul>
</div>
</div>
</body>
</html>

5
content/_index.md Normal file
View File

@ -0,0 +1,5 @@
---
title: ""
date: 2025-02-16T16:36:41+02:00
draft: false
---

19
hugo.yaml Normal file
View File

@ -0,0 +1,19 @@
baseURL: https://umbrella.haus
title: Umbrella
language: en-GB
theme: nostyleplease
params:
theme_config:
appearance: dark
back_home_text: <<
date_format: 2006-01-02
isListGroupByDate: false
assets:
favicon: /images/favicon.ico
faviconsvg: /images/favicon.svg
favicon96: /images/favicon-96x96.png
appleTouchIcon: /images/apple-touch-icon.png
manifest: /manifest.json

View File

@ -1,56 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Experimental privacy-centric project that aims to provide a random selection of open-source services free of charge">
<link rel="stylesheet" href="style-min.css">
<link rel="icon" type="image/png" href="/assets/favicon-96x96.png" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="/assets/favicon.svg" />
<link rel="shortcut icon" href="/assets/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="Umbrella" />
<link rel="manifest" href="/assets/webmanifest.json" />
<title>Umbrella</title>
</head>
<body>
<div class="page">
<h1>Umbrella. <a href="/">home</a> <a href="/contact">contact</a></h1>
<p>Umbrella.haus is an experimental, privacy-centric project that aims to provide a curated selection of open-source services free of charge.</p>
<div class="section">
<h2>Services</h2>
<ul>
<li><a href="https://git.umbrella.haus">Gitea</a>: Forge software package for hosting software version control using Git.</li>
<li><a href="https://4.umbrella.haus">4get</a>: Proxy search engine that doesn't suck. Features a JavaScript-free interface and supports searching for websites, images, videos, news, and music.</li>
<li><a href="https://ip.umbrella.haus">EchoIP</a>: Simple IP address lookup service with support for ASN, country, and city lookups powered by the MaxMind GeoIP database.</li>
<li><a href="https://speed.umbrella.haus">LibreSpeed</a>: Extremely lightweight speedtest implemented in JavaScript (telemetry disabled). Utilizes XMLHttpRequest and Web Workers.</li>
</ul>
</div>
<div class="section">
<h2>Tor Relays</h2>
<ul>
<li><a href="https://metrics.torproject.org/rs.html#details/15CD2C302869242498AFEB2369C0E95882DFCB6A">Caspian</a> <code>15CD 2C30 2869 2424 98AF EB23 69C0 E958 82DF CB6A</code></li>
<li><a href="https://metrics.torproject.org/rs.html#details/625CC20FF07AF5853EE4A11F9F0ADB023A229A24">Sargasso</a> <code>625C C20F F07A F585 3EE4 A11F 9F0A DB02 3A22 9A24</code></li>
<li><a href="https://metrics.torproject.org/rs.html#details/DF6B339CF595EE2E23CAEDD61F2C51030236C5CE">Vostok</a> <code>DF6B 339C F595 EE2E 23CA EDD6 1F2C 5103 0236 C5CE</code></li>
</ul>
</div>
<div class="section">
<h2>Under Construction 🏗️</h2>
<ul>
<li>New services:</li>
<ul>
<li><a href="https://codeberg.org/aryak/mozhi">Mozhi</a>: Frontend for multiple translation engines</li>
<li><a href="https://github.com/PrivateBin/PrivateBin">PrivateBin</a>: Zero-knowledge pastebin</li>
</ul>
</ul>
</div>
</div>
</body>
</html>

19
static/contact.txt Normal file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Clearweb: golfed.xyz, umbrella.haus
Onion: golfed6fzytoktol4de4o4nerap3xuykhfm5makfzscib65df3khnpyd.onion
PGP: 1530F5132A1228578D2B4168995EFD5C1B532B3E
Email: hello@golfed.xyz
Matrix: @ae:golfed.xyz
Signal: @xmr.02
Updated: 29/11/2024
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQQVMPUTKhIoV40rQWiZXv1cG1MrPgUCZ0mHzQAKCRCZXv1cG1Mr
Pl6yAQCjFkLnaCH9f3BQgAsCwpmjmxQzcOsVoptf4eB08ZJNbAD/RH2Suz1CJSWe
LTusruFyxPEbzDsT+jNvebZRY91A5gQ=
=UfKa
-----END PGP SIGNATURE-----

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 197 KiB

After

Width:  |  Height:  |  Size: 197 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 299 KiB

1
style-min.css vendored
View File

@ -1 +0,0 @@
@font-face {font-family: 'Inter';font-style: normal;font-weight: 400;font-display: auto;src: url("/assets/fonts/Inter400-Latin.woff2") format("woff2");}@font-face {font-family: 'Inter';font-style: normal;font-weight: 500;font-display: auto;src: url("/assets/fonts/Inter500-Latin.woff2") format("woff2");}:root {font-family: "Inter", sans-serif;}body {background-color: #202124;color: #ccc;margin: 0;}.page {max-width: 800px;margin: auto;padding: 20px 40px;}.section {background-color: rgba(255, 255, 255, 0.05);margin-bottom: 20px;border-left: 4px solid #5e81ac;}.section h2 {font-size: 18px;font-weight: 600;color: #fff;padding: 8px 16px;margin: 0;background-color: transparent;border-left: none;}p {background-color: #49688e;padding: 16px 32px;color: #fff;text-align: center;}p > a {color: #fff;font-weight: 600 }h1 {font-size: 42px;color: #eee;font-weight: 600;margin-bottom: 8px;line-height: 32px;}h1 > a {font-size: 22px;color: #aaa }ul {padding: 8px 32px 16px;margin: 0;}li {font-size: 16px;font-weight: 400;margin-bottom: 8px;color: #ccc;}li > a {color: #5e81ac;font-weight: 600;}code {background-color: rgba(94, 129, 172, 0.2);color: #5e81ac;padding: 1px 6px;border-radius: 4px;font-family: "Courier New", monospace;}footer {text-align: center;padding: 20px;font-style: italic;}footer a {color: #ccc;}a {color: #5e81ac;text-decoration: none;transition: color 0.3s ease;}a:hover {color: #81a1c1;text-decoration: underline;}

117
style.css
View File

@ -1,117 +0,0 @@
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: auto;
src: url("/assets/fonts/Inter400-Latin.woff2") format("woff2");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
font-display: auto;
src: url("/assets/fonts/Inter500-Latin.woff2") format("woff2");
}
:root {
font-family: "Inter", sans-serif;
}
body {
background-color: #202124;
color: #ccc;
margin: 0;
}
.page {
max-width: 800px;
margin: auto;
padding: 20px 40px;
}
.section {
background-color: rgba(255, 255, 255, 0.05);
margin-bottom: 20px;
border-left: 4px solid #5e81ac;
}
.section h2 {
font-size: 18px;
font-weight: 600;
color: #fff;
padding: 8px 16px;
margin: 0;
background-color: transparent;
border-left: none;
}
p {
background-color: #49688e;
padding: 16px 32px;
color: #fff;
text-align: center;
}
p > a {
color: #fff;
font-weight: 600
}
h1 {
font-size: 42px;
color: #eee;
font-weight: 600;
margin-bottom: 8px;
line-height: 32px;
}
h1 > a {
font-size: 22px;
color: #aaa
}
ul {
padding: 8px 32px 16px;
margin: 0;
}
li {
font-size: 16px;
font-weight: 400;
margin-bottom: 8px;
color: #ccc;
}
li > a {
color: #5e81ac;
font-weight: 600;
}
code {
background-color: rgba(94, 129, 172, 0.2);
color: #5e81ac;
padding: 1px 6px;
border-radius: 4px;
font-family: "Courier New", monospace;
}
footer {
text-align: center;
padding: 20px;
font-style: italic;
}
footer a {
color: #ccc;
}
a {
color: #5e81ac;
text-decoration: none;
transition: color 0.3s ease;
}
a:hover {
color: #81a1c1;
text-decoration: underline;
}

View File

@ -0,0 +1,185 @@
// -------------- THEME SWITCHER -------------- //
@mixin theme($--bg-color, $--primary-text-color, $--secondary-text-color, $--link-color, $--visited-link-color, $--highlight) {
background-color: $--bg-color;
color: $--primary-text-color;
a {
color: $--link-color;
&:visited { color: $--visited-link-color; }
}
details {
border: thin solid $--primary-text-color;
}
details summary {
color: $--primary-text-color;
}
details[open] summary {
border-bottom: 1px solid $--primary-text-color;
}
pre {
background: $--bg-color;
}
code:not(pre > code) {
background-color: $--primary-text-color;
color: $--bg-color;
}
*:target {
background: $--highlight;
color: $--primary-text-color;
}
table, th, td {
border: thin solid $--primary-text-color;
}
.toc {
border: thin solid $--primary-text-color;
padding: 1rem;
}
figcaption { color: $--secondary-text-color; }
blockquote {
border: thin solid $--primary-text-color;
}
}
@mixin dark-appearance {
@include theme(#000300, #eff6ee, #000300, #33658a, #55dde0, #9197ae); // modus-vivendi
}
@mixin light-appearance {
@include theme(#ffffff, #000000, #595959, #3548cf, #8f0075, #dae5ec); // modus-operandi
}
body[a="dark"] { @include dark-appearance; }
body[a="light"] { @include light-appearance; }
@media (prefers-color-scheme: dark) {
body[a="auto"] { @include dark-appearance; }
}
@media (prefers-color-scheme: light) {
body[a="auto"] { @include light-appearance; }
}
// -------------------------------------------- //
html { height: 100%; }
body {
font-family: monospace;
font-size: 16px;
line-height: 1.4;
margin: 0;
min-height: 100%;
overflow-wrap: break-word;
}
h2, h3, h4, h5, h6 { margin-top: 1.5rem; }
p { margin: 1rem 0; }
li { margin: 0.4rem 0; }
a {
text-decoration: none;
&:hover { text-decoration: underline; }
}
hr {
text-align: center;
border: 0;
margin: 2rem 0;
&:before { content: '/////' }
&:after { content: attr(data-content) '/////' }
}
pre {
padding: 1em;
overflow-x: auto; /* Fix pre content overflowing parent without scroll bar */
}
table { width: 100%; }
table, th, td {
border-collapse: collapse;
padding: 0.4rem;
}
code {
text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
code:not(pre > code) {
padding: 0.1em 0.2em;
font-size: 90%;
}
code.has-jax {
-webkit-font-smoothing: antialiased;
background: inherit !important;
border: none !important;
font-size: 100%;
}
blockquote {
padding: 1rem;
p { margin: 0; }
}
img {
max-width: 100%;
display: block;
margin: 0 auto;
}
figcaption {
text-align: center;
opacity: 0.5;
}
details {
padding: 1rem;
}
details summary {
text-decoration: none;
}
details[open] summary {
margin-bottom: 0.5em;
padding-bottom: 0.5em;
}
.post-meta {
display: flex;
justify-content: space-between;
align-items: center;
}
.w {
max-width: 640px;
margin: 0 auto;
padding: 4rem 2rem;
}
.toc {
padding: 1rem;
}
.site-footer {
margin-top: 2em;
}

View File

@ -0,0 +1,25 @@
[[entries]]
title = "services"
entries = [
{ title = "4get (proxy search engine)", url = "https://4.umbrella.haus/" },
{ title = "gitea (git hosting)", url = "https://git.umbrella.haus/" },
{ title = "echoip (ip lookup)", url = "https://ip.umbrella.haus/" },
{ title = "librespeed (speedtest)", url = "https://speed.umbrella.haus/" },
]
[[entries]]
title = "tor relays"
entries = [
{ title = "caspian (15CD2C...DFCB6A)", url = "https://metrics.torproject.org/rs.html#details/15CD2C302869242498AFEB2369C0E95882DFCB6A" },
{ title = "sargasso (625CC2...229A24)", url = "https://metrics.torproject.org/rs.html#details/625CC20FF07AF5853EE4A11F9F0ADB023A229A24" },
{ title = "vostok (DF6B33...36C5CE)", url = "https://metrics.torproject.org/rs.html#details/DF6B339CF595EE2E23CAEDD61F2C51030236C5CE" },
]
[[entries]]
title = "contacts"
entries = [
{ title = "email (hello at golfed.xyz)", url = "mailto:hello@golfed.xyz" },
{ title = "pgp (1530F5...532B3E)", url = "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1530f5132a1228578d2b4168995efd5c1b532b3e" },
{ title = "matrix (@ae:golfed.xyz)", url = "https://matrix.to/#/@ae:golfed.xyz" },
{ title = "signal (xmr.02)", url = "https://signal.me/#eu/9aAt0tk36ErVZygWxf_dk81_r_2jTaxUxVCuvl_h6LONUyREI7hLm42Oa8RYJgoz" },
]

View File

@ -0,0 +1,8 @@
{{ define "main" }}
{{- partial "back_link.html" . -}}
<header>
<h1>404 Not Found</h1>
</header>
{{ end }}

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="{{ $.Site.LanguageCode }}">
{{- partial "head.html" . -}}
<body a="{{ $.Site.Params.theme_config.appearance | default "auto" }}">
<main class="page-content" aria-label="Content">
<div class="w">
{{- block "main" . }}{{- end }}
{{ partial "footer.html" }}
</div>
</main>
</body>
</html>

View File

@ -0,0 +1,8 @@
{{ define "main" }}
{{ partial "back_link.html" .}}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ partial "post_list.html" (dict "context" . "section" .Section)}}
{{ end }}

View File

@ -0,0 +1,21 @@
{{ define "main" }}
{{ partial "back_link.html" .}}
<article>
<p class="post-meta">
<time datetime="{{ .Date }}">
{{ .Date | time.Format site.Params.theme_config.date_format }}
</time>
</p>
<h1>{{ .Title }}</h1>
{{ if .Params.toc }}
<aside {{ if .Params.tocBorder }} class="toc" {{ end }}>
{{ .TableOfContents }}
</aside>
{{ end }}
{{ .Content }}
</article>
{{ end }}

View File

@ -0,0 +1,8 @@
{{ define "main" }}
{{ partial "back_link.html" .}}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ partial "post_list.html" (dict "context" .)}}
{{ end }}

View File

@ -0,0 +1,8 @@
{{ define "main" }}
{{ partial "back_link.html" .}}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ partial "post_list.html" (dict "context" .)}}
{{ end }}

View File

@ -0,0 +1,12 @@
{{ define "main" }}
<header>
<h1>{{ $.Site.Title }}</h1>
{{- if $.Site.Params.theme_config.show_description -}}
<p>{{ $.Site.Params.description }}</p>
{{- end -}}
</header>
{{ .Content }}
{{ partial "menu_item.html" (dict "context" . "collection" $.Site.Data.menu.entries) }}
{{ end }}

View File

@ -0,0 +1 @@
<a href="{{ "" | relURL }}">{{ $.Site.Params.theme_config.back_home_text }}</a>

View File

@ -0,0 +1,3 @@
<footer class="site-footer">
<p>{{ now.Format "2006" }} / <a href="/contact.txt" target="_blank" rel="noopener noreferrer">contact.txt</a> / <a href="https://golfed.xyz" target="_blank" rel="noopener noreferrer">golfed.xyz</a></p>
</footer>

View File

@ -0,0 +1,28 @@
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
{{ if .IsPage }} <meta name="description" content="{{ .Summary }}"> {{ end }}
<title>
{{ if not .IsHome }}
{{ .Title }}
{{ else }}
{{ $.Site.Title }}
{{ end }}
</title>
<link rel="shortcut icon" type="image/x-icon" href="{{ $.Site.Params.favicon | relURL }}" />
{{ $options := (dict "outputStyle" "compressed" "enableSourceMap" (not hugo.IsProduction)) }}
{{ $sass := resources.Get "css/main.scss" }}
{{ $style := $sass | css.Sass $options | resources.Fingerprint "sha512" }}
<link rel="stylesheet" href="{{ $style.Permalink | relURL }}" integrity="{{ $style.Data.Integrity }}" />
{{ if .Params.mathjax }} {{ partial "mathjax.html" . }} {{ end }}
<!-- Custom icons -->
<link rel="icon" type="image/png" href="{{ site.Params.assets.favicon96 | default "favicon-96x96.png" | absURL }}" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="{{ site.Params.assets.faviconsvg | default "favicon.svg" | absURL }}" />
<link rel="shortcut icon" href="{{ site.Params.assets.favicon | default "favicon.ico" | absURL }}" />
<link rel="apple-touch-icon" sizes="180x180" href="{{ site.Params.assets.appleTouchIcon | default "apple-touch-icon.png" | absURL }}" />
<link rel="manifest" href="{{ site.Params.assets.manifest | default "manifest.json" | absURL }}" />
</head>

View File

@ -0,0 +1,21 @@
<script>
MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
displayMath: [['$$','$$'], ['\\[', '\\]']],
processEscapes: true,
processEnvironments: true
},
options: {
skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre']
}
};
window.addEventListener('load', (event) => {
document.querySelectorAll("mjx-container").forEach(function(x){
x.parentElement.classList += 'has-jax'})
});
</script>
<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

View File

@ -0,0 +1,19 @@
<ul>
{{- range $item := .collection -}}
<li>
{{- with $item.url -}}
<a href="{{ $item.url | relURL }}">{{ safeHTML $item.title }}</a>
{{- else -}}
{{ safeHTML $item.title }}
{{- end -}}
</li>
{{- if $item.entries }}
{{ partial "menu_item.html" (dict "context" . "collection" $item.entries) }}
{{- end -}}
{{- if $item.post_list -}}
{{ partial "post_list.html" (dict "context" . "section" $item.post_list.section "limit" $item.post_list.limit "show_more" $item.post_list.show_more "show_more_text" $item.post_list.show_more_text "show_more_url" $item.post_list.show_more_url) -}}
{{- end -}}
{{- end -}}
</ul>

View File

@ -0,0 +1,39 @@
{{- $posts := "" -}}
{{- if .section -}}
{{- $posts = (where site.RegularPages "Section" .section) -}}
{{- else -}}
{{- if (eq .context.Kind "taxonomy") -}}
{{- $posts = .context.Pages -}}
{{- else -}}
{{- if (eq .context.Kind "term") -}}
{{- $posts = .context.Data.Pages -}}
{{- else -}}
{{- $posts = site.RegularPages }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $limit_exceeded:= "" -}}
{{- if (and .limit (gt (len $posts) .limit)) -}}
{{- $limit_exceeded = true -}}
{{- else -}}
{{- $limit_exceeded = false -}}
{{ end }}
{{- if (gt (len $posts) 0) }}
{{- if .limit }}
{{ $posts = (first .limit $posts ) }}
{{ end }}
<ul>
{{- range $post := $posts -}}
<li>
<span>{{- ($post.Date | time.Format site.Params.theme_config.date_format) }}</span>
<a href="{{ $post.Permalink | relURL }}">{{ $post.Title }}</a>
</li>
{{ end }}
{{- if and .show_more $limit_exceeded }}
<li><a href="{{ .show_more_url | relURL }}">{{ .show_more_text | default "Show more..." }}</a></li>
{{ end }}
</ul>
{{ end }}

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="{{ $.Site.LanguageCode }}">
{{- partial "head.html" . -}}
<body a="{{ $.Site.Params.theme_config.appearance | default "auto" }}">
<main class="page-content" aria-label="Content">
<div class="w">
<div class="post-meta">
{{ partial "back_link.html" .}}
<p>
<time datetime="{{ .Date }}">
{{ .Date | time.Format site.Params.theme_config.date_format }}
</time>
</p>
</div>
{{- block "main" . }}{{- end }}
{{ partial "footer.html" }}
</div>
</main>
</body>
</html>

View File

@ -0,0 +1,21 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ .Content }}
<!-- divide post list by year -->
{{ if .Site.Params.theme_config.isListGroupByDate }}
{{ range .Pages.GroupByDate "2006 Year" }}
<p>{{ .Key }}</p>
<ul>
{{ range .Pages }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ end }}
</ul>
{{ end }}
{{ else }}
{{ partial "post_list.html" (dict "context" . "section" .Section)}}
{{ end }}
{{ end }}

View File

@ -0,0 +1,14 @@
{{ define "main" }}
<article>
<h1>{{ .Title }}</h1>
{{ if .Params.toc }}
<aside {{ if .Params.tocBorder }} class="toc" {{ end }}>
{{ .TableOfContents }}
</aside>
{{ end }}
{{ .Content }}
</article>
{{ end }}

View File

@ -0,0 +1,6 @@
<details {{ if eq (.Get "open" | default "false") "true" }}open{{ end }}>
<summary>
{{ .Get "summary" | default "Details:" }}
</summary>
{{ .Inner | markdownify }}
</details>

View File

@ -0,0 +1,3 @@
<span>
$${{ .Get 0 }}$$
</span>

View File

@ -0,0 +1,3 @@
<span>
\({{ .Get 0 }}\)
</span>

View File

@ -0,0 +1,21 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "no-style-please"
license = "MIT"
licenselink = "https://github.com/Masellum/hugo-theme-nostyleplease/blob/main/LICENSE"
description = "a (nearly) no-CSS, fast, minimalist Hugo theme ported from riggraz/no-style-please."
homepage = "https://github.com/Masellum/hugo-theme-nostyleplease"
tags = ["blog", "minimalist"]
features = []
min_version = "0.41.0"
[author]
name = "Masellum"
homepage = "Masellum.github.io"
# If porting an existing theme
[original]
name = "riggraz"
homepage = "https://riggraz.dev/"
repo = "https://github.com/riggraz/no-style-please"