diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-12-01 22:27:26 -0800 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-12-01 22:28:46 -0800 |
| commit | 743d1e3d4c421385111dfd63482cd92a5fff02c1 (patch) | |
| tree | 8b79dfd7b89297b1c8c6864d57943f03e0a183fe /indieweb-micro/themes | |
| parent | 4d75a6ded99babeffc3c264a9f38b510a7c59ce7 (diff) | |
move micro to its own site (better compatability with indieweb feats)
Diffstat (limited to 'indieweb-micro/themes')
29 files changed, 877 insertions, 0 deletions
diff --git a/indieweb-micro/themes/MinIndie/LICENSE.md b/indieweb-micro/themes/MinIndie/LICENSE.md new file mode 100644 index 0000000..630c225 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Vimux + +Copyright (c) 2020 colorchestra + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/indieweb-micro/themes/MinIndie/README.md b/indieweb-micro/themes/MinIndie/README.md new file mode 100644 index 0000000..cef0972 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/README.md @@ -0,0 +1,100 @@ +# MinIndie + +This theme is **heavily** based on [smol](https://themes.gohugo.io/themes/smol/), a minimalist hugo theme, thanks to their work! + +MinIndie is a very minimal hugo theme with indieweb markups. A demo can be found on my blog at https://bacardi55.io + +## Features + +- No JavaScript +- No Google spyware or tracking of any kind +- No other external dependencies, embedded fonts or comment sections +- Dark mode support (depending on your OS's setting) +- Indieweb markup + +## Installation + +In your Hugo site `themes` directory, run: + +``` +git clone https:// +``` + +Next, open `config.toml` in the base of the Hugo site and ensure the theme option is set to `smol`. + +``` +theme = "minindie" +``` + +Lastly, add the following lines to your `config.toml` to set site parameters and make use of all the menu entries in the header and footer sections if you need them. + +``` +title = "Site Name" +baseURL = "https://your.domain.tld" +copyright = "A copyright message" + +# Parameters +[params] + subtitle = "ἕν οἶδα ὅτι οὐδὲν οἶδα" + dateFmt = "Monday, January 2, 2006" + # tagPostOlderThanXDays = 555 # To display a message if the post is older than this number of days. + # xslpath = "/rss.xsl" # If you want to theme your RSS feed. Optional. + +[params.author] + name = "your name" # required for h-card + email = "your@email.tld" + avatar = "/path/to/avatar.png" + bio = "A bio description<br />Html is accepted." + +[params.indieweb] + authorizationEndpoint = "https://indieauth.com/auth" + tokenEndpoint = "https://tokens.indieauth.com/token" + webmentionEndpoint = "https://webmention.io/your.domain.tld/webmention" + relmepgp = "/path/to//public/key.asc" + [[params.indieweb.relme]] + url = "https://" + [[params.indieweb.relme]] + url = "https://" + +# Menus: +## Header +[menu] + [[menu.main]] + identifier = "posts" + name = "Posts" + url = "/posts/" + weight = 1 + + [[menu.main]] + identifier = "categories" + name = "Categories" + url = "/categories/" + weight = 2 + + [[menu.main]] + identifier = "tags" + name = "Tags" + url = "/tags/" + weight = 3 + +## Footer + [[menu.footer]] + name = "Github" + url = "https://github.com/example" + weight = 1 + + [[menu.footer]] + name = "Mastodon" + url = "https://example.com/@user" + weight = 2 + + [[menu.footer]] + name = "Imprint" + url = "/imprint" + weight = 3 + +``` + +## License + +This theme is released under the [MIT license](https://github.com/colorchestra/smol/blob/master/LICENSE). diff --git a/indieweb-micro/themes/MinIndie/archetypes/default.md b/indieweb-micro/themes/MinIndie/archetypes/default.md new file mode 100644 index 0000000..ef75f76 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/archetypes/default.md @@ -0,0 +1,4 @@ ++++ +title = "{{ replace .Name "-" " " | title }}" +date = {{ .Date }} ++++ diff --git a/indieweb-micro/themes/MinIndie/archetypes/posts.md b/indieweb-micro/themes/MinIndie/archetypes/posts.md new file mode 100644 index 0000000..11182ff --- /dev/null +++ b/indieweb-micro/themes/MinIndie/archetypes/posts.md @@ -0,0 +1,11 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +slug: {{ now.Format "2006-01-02" }}-{{ .Name | urlize }} +type: posts +draft: true +categories: + - default +tags: + - default +--- diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html b/indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..41008ca --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html @@ -0,0 +1,11 @@ +{{ if .Title }} +<figure> + <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" /> + <figcaption>{{ .Title }}</figcaption> +</figure> +{{ else }} +<figure> + <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" /> +</figure> +{{ end }} + diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/baseof.html b/indieweb-micro/themes/MinIndie/layouts/_default/baseof.html new file mode 100644 index 0000000..e8b6411 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/baseof.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html lang="{{ .Site.LanguageCode | default "en-us" }}"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <style type=text/css>body{font-family:monospace;}</style> + <title>{{ .Title }} | {{ .Site.Title }}</title> + {{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }} + {{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }} + <link rel="stylesheet" href="{{ "css/style.css" | relURL }}"> + {{ range .Site.Params.customCSS -}} + <link rel="stylesheet" href="{{ . | relURL }}?rnd={{ now.Unix }}"> + {{- end }} + {{- with .OutputFormats.Get "RSS" -}} + {{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }} + {{- end }} + + {{ partial "head-extra.html" . }} +</head> +<body> + {{ partial "header" . }} + {{ block "main" . }}{{ end }} + {{ partial "footer" . }} +</body> +</html> diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/list.html b/indieweb-micro/themes/MinIndie/layouts/_default/list.html new file mode 100644 index 0000000..f3639a1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/list.html @@ -0,0 +1,57 @@ +{{ define "main" }} +<main class="content-list"> + {{ $pageKind := .Kind }} + {{ if or .Title .Content }} + <div> + {{ if .Title }} + <h1> + {{ .Title }} + {{ partial "single-title-extra.html" . }} + </h1> + {{ end }} + {{ with .Content }}<div class="justify">{{ . }}</div>{{ end }} + </div> + {{ end }} + + <div class="h-feed"> + {{ $yearCptr := "" }} + {{ $monthCptr := "" }} + {{ range .Paginator.Pages }} + {{ $postYear := .Date.Year }} + {{ $postMonth := .Date.Month }} + + {{ if or (ne $monthCptr $postMonth) (and (eq $yearCptr "") (eq $monthCptr "")) }} + {{ $yearCptr = $postYear }} + {{ $monthCptr = $postMonth }} + {{ if and (ne $yearCptr "") (ne $monthCptr "") }} + </ul> + </div> + {{ end }} + <div> + <h3>{{ $monthCptr }} {{ $yearCptr }}</h3> + <ul> + {{ end }} + + <li class="h-entry"> + <div hidden> + {{ partial "bio-hcard.html" . }} + </div> + <div class="post-title"> + <time class="date dt-published" datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "02" }}</time>: + {{ if eq $pageKind "term" }}[{{ .Type }}] {{ end }} + <a href="{{ .Permalink }}" class="u-url p-name title"> + {{.Title }} + </a> + </div> + </li> + + {{ $yearCptr = $postYear }} + {{ $monthCptr = $postMonth }} + {{ end }} + </ul> + </div> + </div> + + {{ partial "pagination.html" . }} +</main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/single.html b/indieweb-micro/themes/MinIndie/layouts/_default/single.html new file mode 100644 index 0000000..425efc1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/single.html @@ -0,0 +1,74 @@ +{{ define "main" }} +{{ $ageDays := div (sub now.Unix .Date.Unix) 86400 }} + <main> + <article class="h-entry"> + <h1 class="p-name">{{ .Title }}</h1> + + <div hidden>{{ partial "bio-hcard.html" . }}</div> + + {{ if .Date }} + <div><b> + <time class="dt-published" datetime="{{ .Date.Format "2006-01-02" }}"> + {{ .Date.Format (default "2006-01-02 15:04:05" .Site.Params.dateFmt) }} + </time> + - <a href="{{ .Permalink }}" class="u-url u-uid" >Permalink</a> + </b></div> + {{ end }} + + {{- if or .Params.categories .Params.tags -}} + <div class="article-meta"> + {{- with .Params.categories -}} + <span class="categories"> + Categories: + {{ range . }} + <a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> + {{ end }} + </span> + {{- end -}} + {{- if and .Params.categories .Params.tags -}} + -- + {{- end -}} + {{- with .Params.tags -}} + <span class="tags"> + Tags: + {{ range . }} + #<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" class="p-category">{{ . }}</a> + {{ end }} + </span> + {{- end -}} + </div> + {{- end -}} + + {{- with .Site.Params.tagPostOlderThanXDays -}} + {{- if and (gt $ageDays .) (eq $.Type "posts") -}} + {{ partial "article-old-content.html" . }} + {{- end -}} + {{- end -}} + + {{- partial "article-precontent.html" . -}} + + {{- if .Params.toc -}} + <div class="toc noprint"> + <h2>Table of Content</h2> + <aside> + {{ .TableOfContents }} + </aside> + </div> + {{- end -}} + + <div class="e-content"> + {{ .Content }} + </div> + + {{ partial "article-extra.html" . }} + + {{ if .Site.Params.enableNextPrevPages }} + {{ partial "article-prevnext.html" . }} + {{ end }} + + {{ if .Site.Params.enableRelatedPages }} + {{ partial "article-related.html" . }} + {{ end }} + </article> + </main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/summary.html b/indieweb-micro/themes/MinIndie/layouts/_default/summary.html new file mode 100644 index 0000000..a347932 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/summary.html @@ -0,0 +1,13 @@ +<article> + <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1> + <b><time>{{ .Date.Format (default "2006-01-02 15:04:05" .Site.Params.dateFmt) }}</time></b> + {{ range .Params.tags }} + <a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> + {{ end }} + <div> + {{ .Summary }} + {{ if .Truncated }} + <a href="{{ .Permalink }}">Read more...</a> + {{ end }} + </div> +</article> diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html b/indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html new file mode 100644 index 0000000..3e10031 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html @@ -0,0 +1,45 @@ +{{ define "main" }} +{{ $pageTitle := .Title }} +<main> + <div> + <h1> + {{ .Title }} + <a href="{{ .Permalink }}index.xml"> + <img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" /> + </a> + </h1> + <div> + {{ .Content }} + </div> + {{- if eq .Kind "taxonomy" -}} + <ul> + {{ range .Pages.ByTitle }} + <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li> + {{ end }} + </ul> + {{ end }} + {{- if eq .Kind "term" -}} + <p>Content linked to the taxonomy term « {{ strings.ToUpper .Title }} »:</p> + {{ $currentType := "" }} + {{ range sort .Pages.ByDate.Reverse ".Type" "desc" }} + {{ if or (eq $currentType "") (ne $currentType .Type) }} + {{ if ne $currentType "" }} + </ul> + </div> + {{ end }} + <div> + <h3>{{ strings.FirstUpper .Type }}</h3> + <ul> + {{ end }} + <li> + <time class="date dt-published" datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "2006-01-02" }}</time> + <a href="{{ .RelPermalink }}">{{ .Title }}</a> + </li> + {{ $currentType = .Type }} + {{ end }} + </ul> + </div> + {{- end -}} + </div> +</main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html b/indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html new file mode 100644 index 0000000..8ee4bf1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html @@ -0,0 +1,44 @@ +{{ define "main" }} + <main> + <article class="h-entry"> + <div hidden>{{ partial "bio-hcard.html" . }}</div> + + <h1 class="p-name"> + <a href="{{ .Params.bookmark_url }}" target="_blank" class=""> + {{ .Title }} + </a> + </h1> + <div><b> + <time class="dt-published" datetime="{{ .Date.Format "2006-01-02" }}"> + {{ .Date.Format (default "2006-01-02 15:04:05" .Site.Params.dateFmt) }} + </time> + - <a href="{{ .Permalink }}" class="u-url u-uid" >Permalink</a> + </b></div> + <div class="tags"> + Tags: + {{ range .Params.tags }} + <a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" class="p-category">{{ . }}</a> + {{ end }} + </div> + + {{ with .Params.description }} + <div class="bookmark-description"> + Description: + <blockquote>{{ . }}</blockquote> + </div> + {{ end }} + + {{ with .Content }} + <div class="e-content justify">{{ . }}</div> + {{ end }} + + <div> + → <a href="{{ .Params.bookmark_url }}" target="_blank" class="u-bookmark-of h-cite"> + {{ .Params.bookmark_url }} + </a><br /><br /> + </div> + + {{ partial "article-extra.html" . }} + </article> + </main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/index.html b/indieweb-micro/themes/MinIndie/layouts/index.html new file mode 100644 index 0000000..777a2fd --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/index.html @@ -0,0 +1,8 @@ +{{ define "main" }} + <main> + <hr /> + <h1 class="site-title">{{ .Site.Title }}</h1> + {{- partial "bio-hcard.html" . -}} + {{- partial "homepage-body.html" . -}} + </main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/notes/notes.html b/indieweb-micro/themes/MinIndie/layouts/notes/notes.html new file mode 100644 index 0000000..e0e0d17 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/notes/notes.html @@ -0,0 +1,42 @@ +{{ define "main" }} + <main> + {{ $pageKind := .Kind }} + {{ if or .Title .Content }} + <div> + {{ with .Title }} + <h1> + {{ . }} + <a href="/notes/index.xml"><img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" /></a> + <a href="https://indieweb.org/h-feed" target="_blank"><img style="height:1.5rem; display: inline;" src="/images/H_Feed_icon.svg" alt="h-feed icon" /></a> + </h1> + {{ end }} + {{ with .Content }}<div class="justify">{{ . }}</div>{{ end }} + </div> + {{ end }} + + <div class="h-feed"> + {{ range .Pages }} + <div class="h-entry note"> + <div hidden> + {{ partial "bio-hcard.html" . }} + </div> + <p class="p-content"> + {{ .Content }} + </p> + + <time class="date dt-published" datetime="{{ .Date.Format "2006-01-02 15:04" }}"> + <a href="{{ .RelPermalink }}">{{ .Date.Format "2006-01-02 15:04" }}</a> + </time> + + {{ with .Params.Tags }} + - Tags: + {{ range . }} + #<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" class="p-category">{{ . }}</a> + {{ end }} + {{ end }} + </div> + {{ end }} + </div> + + </main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/notes/single.html b/indieweb-micro/themes/MinIndie/layouts/notes/single.html new file mode 100644 index 0000000..32afcea --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/notes/single.html @@ -0,0 +1,44 @@ +{{ define "main" }} +{{ $ageDays := div (sub now.Unix .Date.Unix) 86400 }} + <main> + <article class="h-entry"> + <div hidden>{{ partial "bio-hcard.html" . }}</div> + <div><b> + <time class="dt-published" datetime="{{ .Date.Format "2006-01-02" }}"> + {{ .Date.Format (default "2006-01-02 15:04:05" .Site.Params.dateFmt) }} + </time> + - <a href="{{ .Permalink }}" class="u-url u-uid" >Permalink</a> + </b></div> + + {{- if or .Params.categories .Params.tags -}} + <div class="article-meta"> + {{- with .Params.categories -}} + <span class="categories"> + Categories: + {{ range . }} + <a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> + {{ end }} + </span> + {{- end -}} + {{- if and .Params.categories .Params.tags -}} + -- + {{- end -}} + {{- with .Params.tags -}} + <span class="tags"> + Tags: + {{ range . }} + #<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" class="p-category">{{ . }}</a> + {{ end }} + </span> + {{- end -}} + </div> + {{- end -}} + + {{- partial "article-precontent.html" . -}} + + <div class="e-content"> + {{ .Content }} + </div> + </article> + </main> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-extra.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-extra.html diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html new file mode 100644 index 0000000..785f3be --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html @@ -0,0 +1,6 @@ +<div class="alert noprint"> + <strong + >/!\ Warning: This article is older than {{ . }} days, make sure the content + is still relevant!</strong + > +</div> diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-precontent.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-precontent.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-precontent.html diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html new file mode 100644 index 0000000..d89b779 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html @@ -0,0 +1,17 @@ +<div class="article-nextprev noprint"> + <div class="next-post"> + {{ if .NextInSection }} + <a class="link-reverse" href="{{ .NextInSection.Permalink }}?ref=footer" + >« {{ .NextInSection.Title | truncate 30 "..." }}</a + > + {{ end }} + </div> + + <div class="previous-post"> + {{ if .PrevInSection }} + <a class="link-reverse" href="{{ .PrevInSection.Permalink }}?ref=footer" + >{{ .PrevInSection.Title | truncate 30 "..."}} »</a + > + {{ end }} + </div> +</div> diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-related.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-related.html new file mode 100644 index 0000000..5a6fe50 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-related.html @@ -0,0 +1,10 @@ +{{ $related := .Site.RegularPages.Related . | first 5 }} {{ with $related }} +<div class="noprint"> + <h2>Releated Posts</h2> + <ul> + {{ range . }} + <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li> + {{ end }} + </ul> +</div> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html b/indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html new file mode 100644 index 0000000..0a476e4 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html @@ -0,0 +1,8 @@ +<div class="h-card p-author bio-card" style="text-align:center;"> + <div class="bio"> + <img class="u-photo avatar" src="{{ .Site.Params.Author.avatar }}" alt="{{ .Site.Params.Author.name }}'s avatar"> + <p class="p-note">{{ .Site.Params.Author.Bio | safeHTML }}</p> + </div> + <p class="bio-name"><a href="{{ .Site.BaseURL }}" rel="me" class="p-nickname p-name u-url">{{ .Site.Params.Author.name }}</a></p> +</div> +<hr/> diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/footer-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/footer-extra.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/footer-extra.html diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/footer.html b/indieweb-micro/themes/MinIndie/layouts/partials/footer.html new file mode 100644 index 0000000..978a390 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/footer.html @@ -0,0 +1,14 @@ +<hr /> +<footer> + <p> + {{- range .Site.Menus.footer }} + <a href="{{ .URL }}"><b>{{ .Name }}</b></a>. + {{- end }} + </p> + + {{ partial "footer-extra.html" . }} + + <p style="text-align: center" class="copyright"> + © <a href="{{ .Site.BaseURL }}"><b>{{ if .Site.Copyright }}{{ .Site.Copyright }}{{ else }}{{ .Site.Title }}{{ end }}</b></a>. + </p> +</footer> diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html new file mode 100644 index 0000000..8c3984f --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html @@ -0,0 +1,20 @@ +{{- range .Site.Params.indieweb.relme }} + <link rel="me" href="{{ .url }}" /> +{{- end -}} + +{{- with .Site.Params.indieweb.relmepgp -}} + <link rel="pgpkey" href="{{ . }}"> +{{- end -}} + +{{ with .Site.Params.indieweb }} + <link + rel="authorization_endpoint" + href="{{ .authorizationEndpoint | default "https://indieauth.com/auth" }}" + /> + <link + rel="token_endpoint" + href="{{ .tokenEndpoint | default "https://tokens.indieauth.com/token" }}" + /> + <link rel="webmention" href="{{ .webmentionEndpoint }}" /> +{{ end }} + diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/header.html b/indieweb-micro/themes/MinIndie/layouts/partials/header.html new file mode 100644 index 0000000..efbd8e1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/header.html @@ -0,0 +1,17 @@ +<header> + <div style="display:flex;flex-flow:row wrap;justify-content:space-between"> + <div style="align-self:flex-start;"> + {{ strings.Repeat ( .Site.Params.Author.Name | len | add 6 ) "=" }}<br> + == <a href="{{ .Site.BaseURL }}">{{ .Site.Params.Author.Name }}</a> ==<br> + {{ strings.Repeat ( .Site.Params.Author.Name | len | add 6 ) "=" }} + </div> + <div style="align-self:center;">{{ .Site.Params.subtitle }}</div> + </div> + <nav style="margin: 1rem auto;"> + {{ with .Site.Menus.main }} + {{ range . }} + <a href="{{ .URL | relURL }}"><b>{{ .Name }}</b></a>. + {{ end }} + {{ end }} + </nav> +</header> diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html b/indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html new file mode 100644 index 0000000..151ef62 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html @@ -0,0 +1,5 @@ +{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }} +{{ range $paginator.Pages }} + {{ .Render "summary" }} +{{ end }} +{{ partial "pagination.html" . }} diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/pagination.html b/indieweb-micro/themes/MinIndie/layouts/partials/pagination.html new file mode 100644 index 0000000..79f8053 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/pagination.html @@ -0,0 +1,9 @@ +<div> +{{ if .Paginator.HasPrev }} + <a href="{{ .Paginator.Prev.URL }}">Previous Page</a> +{{ end }} +{{ .Paginator.PageNumber }} of {{ .Paginator.TotalPages }} +{{ if .Paginator.HasNext }} + <a href="{{ .Paginator.Next.URL }}">Next Page</a> +{{ end }} +</div> diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html new file mode 100644 index 0000000..bd79e22 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html @@ -0,0 +1,3 @@ +{{ with .AlternativeOutputFormats.Get "rss" }} +<a href="{{ .RelPermalink }}"><img style="height:1.5rem; display: inline;" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-label='RSS' role='img' viewBox='0 0 512 512'%3E%3Cpath d='M0 0h512v512H0' fill='%23f80'/%3E%3Cpath d='M109 271A132 133 0 0 1 241 403h60A192 193 0 0 0 109 211v-54A246 247 0 0 1 355 403h60A306 307 0 0 0 109 97m35 235a35 35 0 1 0 2 0' fill='%23fff'/%3E%3C/svg%3E" alt="RSS icon" /></a> +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/static/css/style.css b/indieweb-micro/themes/MinIndie/static/css/style.css new file mode 100644 index 0000000..26bd17b --- /dev/null +++ b/indieweb-micro/themes/MinIndie/static/css/style.css @@ -0,0 +1,250 @@ +html { + overflow-y: scroll; +} + +/* 🌸 PASTEL PALETTE */ +:root { + --bgcolor: #fff7fb; + --fontcolor: #3a2c3d; + + --linkcolor: #ff77c8; + --visitedcolor: #d76dff; + + --precolor: #4a3e4f; + --prebgcolor: #ffe6f4; + + --alertbgcolor: #ffe0f1; + --hrcolor: #ffbde6; + + --blockquotecolor: #ffe8f6; + --pcodecolor: #f7d2f0; + + --sitetitlecolor: #ff99dd; + --titlecolor: #c77fff; +} + +/* 🌙 DARK MODE PASTEL NIGHT */ +@media (prefers-color-scheme: dark) { + :root { + --bgcolor: #241b2b; + --fontcolor: #f8e8ff; + + --linkcolor: #ff9be9; + --visitedcolor: #e49cff; + + --precolor: #ffeefe; + --prebgcolor: #35263f; + + --alertbgcolor: #3f304a; + --hrcolor: #f4cfff; + + --blockquotecolor: #3a2b45; + --pcodecolor: #614c70; + + --sitetitlecolor: #ffd1f6; + --titlecolor: #d9a7ff; + } +} + +/* 🌸 TYPO + BASE */ +body { + max-width: 800px; + margin: 40px auto; + padding: 0 10px; + + font: 15px/1.6 "IBM Plex Mono", "Fira Mono", monospace; + color: var(--fontcolor); + background: var(--bgcolor); + + transition: background 0.3s ease, color 0.3s ease; +} + +/* 🌸 LINKS */ +a { + color: var(--linkcolor); + text-decoration: none; + transition: color 0.2s ease, text-shadow 0.2s ease; +} + +a:hover { + color: var(--visitedcolor); + text-shadow: 0 0 6px currentColor; +} + +a:visited { + color: var(--visitedcolor); +} + +/* 🌸 HEADERS */ +h1, h2, h3 { + line-height: 1.25; + color: var(--titlecolor); + margin-top: 1.6rem; + font-weight: 700; +} + +h1.site-title { + color: var(--sitetitlecolor); + text-align: center; + font-size: 2rem; + margin-bottom: 1rem; +} + +/* 🌸 PARAGRAPHS */ +p { + margin-top: 1.3rem; +} + +/* 🌸 INLINE CODE */ +p > code, +li > code { + color: var(--precolor); + background: var(--pcodecolor); + padding: 3px 5px; + border-radius: 6px; +} + +/* 🌸 FULL CODE */ +code { + color: var(--precolor); + background: var(--prebgcolor); + padding: 3px 5px; + border-radius: 6px; +} + +pre { + color: var(--precolor); + background: var(--prebgcolor); + padding: 24px; + overflow-x: auto; + border-radius: 12px; + box-shadow: 0 0 10px rgba(255, 180, 220, 0.25); +} + +/* 🌸 ARTICLES */ +article { + padding: 24px 0; +} + +/* 🌸 IMAGES */ +img { + display: block; + max-width: 100%; + height: auto; + margin: auto; + border-radius: 12px; +} + +/* cute avatar */ +.avatar { + width: 100px; + height: 100px; + border-radius: 50%; + box-shadow: 0 0 8px rgba(255, 140, 200, 0.4); +} + +/* 🌸 ALERTS */ +.alert { + color: var(--fontcolor); + background: var(--alertbgcolor); + padding: 20px; + border-radius: 12px; + box-shadow: 0 0 12px rgba(255, 180, 220, 0.3); + overflow-x: auto; +} + +/* 🌸 NEXT/PREV */ +.article-nextprev { + display: flex; + flex-flow: row wrap-reverse; + justify-content: space-between; +} + +/* 🌸 DIVIDERS */ +hr { + margin: 35px 33% 15px; + border-color: var(--hrcolor); + border-width: 3px; + border-radius: 3px; +} + +hr.small { + margin: 35px 44% 25px; + border: 1px dashed var(--hrcolor); +} + +/* 🌸 BLOCKQUOTE */ +blockquote { + background: var(--blockquotecolor); + margin: 1.2rem 0; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 0 8px rgba(255, 200, 240, 0.25); + border-left: 4px solid var(--hrcolor); +} + +/* 🌸 LISTS */ +ol, ul { + padding-left: 1.1rem; +} + +ul > li { + list-style-type: disclosure-closed; +} + +/* 🌸 TABLES */ +table { + text-align: left; + border: 1px solid var(--hrcolor); + border-radius: 10px; + overflow: hidden; +} + +thead th, tfoot th, tfoot td { + padding: 6px 10px; + background-color: var(--alertbgcolor); + color: var(--titlecolor); +} + +td { + padding: 8px 10px; +} + +tbody tr:nth-child(even) { + background-color: var(--alertbgcolor); +} + +/* 🌸 RESPONSIVE MOE */ +@media all and (max-width: 800px) { + .bio-card .bio { + justify-content: space-around; + flex-direction: column; + } + .bio-card .bio > img { + align-self: center; + margin: auto; + } + .bio-card .bio > p { + align-self: center; + text-align: center; + } +} + +/* PRINT */ +@media print { + a, a:visited { + color: #000; + text-decoration: none; + } + a::after { + content: " (" attr(href) ") "; + } + nav, footer, hr, .noprint { + display: none !important; + } + pre, blockquote, code { + background: #fff; + border: none; + box-shadow: none; + } +} diff --git a/indieweb-micro/themes/MinIndie/theme.toml b/indieweb-micro/themes/MinIndie/theme.toml new file mode 100644 index 0000000..313427c --- /dev/null +++ b/indieweb-micro/themes/MinIndie/theme.toml @@ -0,0 +1,17 @@ +name = "minindie" +license = "MIT" +licenselink = "https://git.sr.ht/~bacardi55/MinIndie/tree/main/item/LICENCE.md" +description = "Minimal Hugo theme for the indieweb." +homepage = "https://sr.ht/~bacardi55/MinIndie" +tags = ["blog", "minimal", "monospace", "dark mode", "simple", "clean", "light", "responsive", "fast", "no-js", "no-tracking", "privacy", "indieweb"] +features = ["blog", "privacy", "responsive", "fast", "indieweb"] +min_version = "0.0.1" + +[author] + name = "bacardi55" + homepage = "bacardi55.io" + +[original] + author = "Morph" + homepage = "https://morph.sh" + repo = "https://github.com/colorchestra/smol" |
