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…
Reference in a new issue