initial transfer from minindie
This commit is contained in:
commit
15db8bfd34
27 changed files with 745 additions and 0 deletions
22
LICENSE.md
Normal file
22
LICENSE.md
Normal file
|
@ -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.
|
100
README.md
Normal file
100
README.md
Normal file
|
@ -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).
|
4
archetypes/default.md
Normal file
4
archetypes/default.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
+++
|
||||||
|
title = "{{ replace .Name "-" " " | title }}"
|
||||||
|
date = {{ .Date }}
|
||||||
|
+++
|
11
archetypes/posts.md
Normal file
11
archetypes/posts.md
Normal file
|
@ -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
|
||||||
|
---
|
11
layouts/_default/_markup/render-image.html
Normal file
11
layouts/_default/_markup/render-image.html
Normal file
|
@ -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 }}
|
||||||
|
|
26
layouts/_default/baseof.html
Normal file
26
layouts/_default/baseof.html
Normal file
|
@ -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>
|
57
layouts/_default/list.html
Normal file
57
layouts/_default/list.html
Normal file
|
@ -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 }}
|
74
layouts/_default/single.html
Normal file
74
layouts/_default/single.html
Normal file
|
@ -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 }}
|
13
layouts/_default/summary.html
Normal file
13
layouts/_default/summary.html
Normal file
|
@ -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>
|
45
layouts/_default/taxonomy.html
Normal file
45
layouts/_default/taxonomy.html
Normal file
|
@ -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="/images/RSS_icon.svg" 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 }}
|
44
layouts/bookmarks/single.html
Normal file
44
layouts/bookmarks/single.html
Normal file
|
@ -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 }}
|
8
layouts/index.html
Normal file
8
layouts/index.html
Normal file
|
@ -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 }}
|
0
layouts/partials/article-extra.html
Normal file
0
layouts/partials/article-extra.html
Normal file
6
layouts/partials/article-old-content.html
Normal file
6
layouts/partials/article-old-content.html
Normal file
|
@ -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>
|
0
layouts/partials/article-precontent.html
Normal file
0
layouts/partials/article-precontent.html
Normal file
17
layouts/partials/article-prevnext.html
Normal file
17
layouts/partials/article-prevnext.html
Normal file
|
@ -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>
|
10
layouts/partials/article-related.html
Normal file
10
layouts/partials/article-related.html
Normal file
|
@ -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 }}
|
8
layouts/partials/bio-hcard.html
Normal file
8
layouts/partials/bio-hcard.html
Normal file
|
@ -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/>
|
0
layouts/partials/footer-extra.html
Normal file
0
layouts/partials/footer-extra.html
Normal file
14
layouts/partials/footer.html
Normal file
14
layouts/partials/footer.html
Normal file
|
@ -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>
|
20
layouts/partials/head-extra.html
Normal file
20
layouts/partials/head-extra.html
Normal file
|
@ -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 }}
|
||||||
|
|
17
layouts/partials/header.html
Normal file
17
layouts/partials/header.html
Normal file
|
@ -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>
|
5
layouts/partials/homepage-body.html
Normal file
5
layouts/partials/homepage-body.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }}
|
||||||
|
{{ range $paginator.Pages }}
|
||||||
|
{{ .Render "summary" }}
|
||||||
|
{{ end }}
|
||||||
|
{{ partial "pagination.html" . }}
|
9
layouts/partials/pagination.html
Normal file
9
layouts/partials/pagination.html
Normal file
|
@ -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>
|
3
layouts/partials/single-title-extra.html
Normal file
3
layouts/partials/single-title-extra.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{{ with .AlternativeOutputFormats.Get "rss" }}
|
||||||
|
<a href="{{ .RelPermalink }}"><img style="height:1.5rem; display: inline;" src="/images/RSS_icon.svg" alt="RSS icon" /></a>
|
||||||
|
{{ end }}
|
204
static/css/style.css
Normal file
204
static/css/style.css
Normal file
|
@ -0,0 +1,204 @@
|
||||||
|
html {
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--bgcolor: #f8f8f2;
|
||||||
|
--fontcolor: #282a36;
|
||||||
|
--linkcolor: #00e;
|
||||||
|
--visitedcolor: #00e;
|
||||||
|
--precolor: #fff;
|
||||||
|
--prebgcolor: #000;
|
||||||
|
--alertbgcolor: white;
|
||||||
|
--hrcolor: #00e;
|
||||||
|
--blockquotecolor: white;
|
||||||
|
--pcodecolor: #000;
|
||||||
|
--sitetitlecolor: #00e;
|
||||||
|
}
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--bgcolor: #282a36;
|
||||||
|
--fontcolor: #f8f8f2;
|
||||||
|
--linkcolor: #ff79c6;
|
||||||
|
--visitedcolor: #ff79c6;
|
||||||
|
--precolor: #f8f8f2;
|
||||||
|
--prebgcolor: #383838;
|
||||||
|
--alertbgcolor: #44475a;
|
||||||
|
--hrcolor: #f8f8f2;
|
||||||
|
--blockquotecolor: #44475a;
|
||||||
|
--pcodecolor: #6272a4;
|
||||||
|
--sitetitlecolor: #f1fa8c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
max-width: 800px;
|
||||||
|
margin: 40px auto;
|
||||||
|
padding: 0 10px;
|
||||||
|
font: 14px/1.5 monospace;
|
||||||
|
color: var(--fontcolor);
|
||||||
|
background: var(--bgcolor);
|
||||||
|
}
|
||||||
|
a:link {
|
||||||
|
color: var(--linkcolor);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
color: var(--visitedcolor);
|
||||||
|
}
|
||||||
|
a:active {
|
||||||
|
color: var(--visitedcolor);
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3 {
|
||||||
|
line-height: 1.2;
|
||||||
|
color: #bd93f9;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
padding-top: 15px;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
}
|
||||||
|
p > code,
|
||||||
|
li > code {
|
||||||
|
color: var(--precolor);
|
||||||
|
background: var(--pcodecolor);
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
color: var(--precolor);
|
||||||
|
background: var(--prebgcolor);
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
color: var(--precolor);
|
||||||
|
background: var(--prebgcolor);
|
||||||
|
padding: 24px;
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
article {
|
||||||
|
padding: 24px 0;
|
||||||
|
}
|
||||||
|
.center {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
figcaption {
|
||||||
|
color: #888;
|
||||||
|
font: 12px/1.5 monospace;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
figure {
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
.avatar {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.alert {
|
||||||
|
color: var(--fontcolor);
|
||||||
|
background: var(--alertbgcolor);
|
||||||
|
padding: 24px;
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
.article-nextprev {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap-reverse;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
hr {
|
||||||
|
margin: 35px 33% 15px;
|
||||||
|
border-color: var(--hrcolor);
|
||||||
|
border-width: 3px;
|
||||||
|
}
|
||||||
|
hr.small {
|
||||||
|
margin: 35px 44% 25px;
|
||||||
|
border: 1px dashed var(--hrcolor);
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
background: var(--blockquotecolor);
|
||||||
|
margin: auto;
|
||||||
|
padding: 5px 25px;
|
||||||
|
}
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
padding-left: 1rem;
|
||||||
|
}
|
||||||
|
ul > li {
|
||||||
|
list-style-type: disclosure-closed;
|
||||||
|
}
|
||||||
|
.toc {
|
||||||
|
border: 1px solid var(--hrcolor);
|
||||||
|
margin: 0.5rem;
|
||||||
|
padding: 0rem 2rem;
|
||||||
|
}
|
||||||
|
h1.site-title {
|
||||||
|
color: var(--sitetitlecolor);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.bio-card .bio {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.bio-card .bio > img {
|
||||||
|
margin-right: 2rem;
|
||||||
|
align-self: flex-start;
|
||||||
|
}
|
||||||
|
.bio-card .bio > p {
|
||||||
|
align-self: center;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.bio-card .bio-name {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
a,
|
||||||
|
a:visited {
|
||||||
|
color: #000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a::after{
|
||||||
|
content: " (" attr(href) ") ";
|
||||||
|
}
|
||||||
|
blockquote,
|
||||||
|
code {
|
||||||
|
background: #fff;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 1.5em;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
nav,
|
||||||
|
footer,
|
||||||
|
hr,
|
||||||
|
.noprint {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
17
theme.toml
Normal file
17
theme.toml
Normal file
|
@ -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"
|
Loading…
Add table
Reference in a new issue