summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormms <michal@sapka.me>2024-04-10 22:08:41 +0200
committermms <michal@sapka.me>2024-04-10 22:08:41 +0200
commit3f7488846906dce323f89bb44703cd4a2c7565cc (patch)
treeac7f5bdd1884f384934b56bebebb65eb57c4e9ae
parent678093d4e186bd839a9c1d802ea88233bd192aeb (diff)
feat: nameplate and more composition
-rw-r--r--assets/covers/colosus-the-forbin-project.jpgbin0 -> 108220 bytes
-rw-r--r--assets/covers/dune-part-1.jpgbin0 -> 858459 bytes
-rw-r--r--assets/covers/dune-part-2.jpgbin0 -> 99343 bytes
-rw-r--r--assets/covers/ghost-in-the-machine.jpgbin0 -> 336899 bytes
-rw-r--r--assets/covers/hardware.jpgbin0 -> 65799 bytes
-rw-r--r--assets/covers/lawnmower-man-2.jpgbin0 -> 462450 bytes
-rw-r--r--assets/covers/lawnmower-man.pgbin0 -> 1479300 bytes
-rw-r--r--assets/covers/mwl-absolute-freebsd.jpgbin0 -> 804425 bytes
-rw-r--r--assets/covers/mwl-zfs-mastery.jpgbin0 -> 179509 bytes
-rw-r--r--assets/covers/patlabor-movie-1.jpgbin0 -> 72143 bytes
-rw-r--r--assets/covers/persona-5-strikers.jpgbin0 -> 363701 bytes
-rw-r--r--assets/covers/sapkowski-time-of-contemt.jpgbin0 -> 58122 bytes
-rw-r--r--content-org/blog.org53
-rw-r--r--content/blog/2022/version_2.md (renamed from content/site/updates/2022/version_2.md)6
-rw-r--r--content/blog/2023/108.md (renamed from content/site/updates/2023/108.md)6
-rw-r--r--content/blog/2023/a-meme-site.md (renamed from content/site/updates/2023/a-meme-site.md)6
-rw-r--r--content/blog/2023/a-new-layout.md (renamed from content/site/updates/2023/a-new-layout.md)6
-rw-r--r--content/blog/2023/a-site-about-nothing.md (renamed from content/site/updates/2023/a-site-about-nothing.md)6
-rw-r--r--content/blog/2023/an-entire-month-of-posts.md (renamed from content/site/updates/2023/an-entire-month-of-posts.md)6
-rw-r--r--content/blog/2023/blog.md (renamed from content/site/updates/2023/blog.md)6
-rw-r--r--content/blog/2023/bsd-section.md (renamed from content/site/updates/2023/bsd-section.md)6
-rw-r--r--content/blog/2023/ch-ch-changes.md (renamed from content/site/updates/2023/ch-ch-changes.md)6
-rw-r--r--content/blog/2023/fixing-ipv6-and-securing-the-domain.md (renamed from content/site/updates/2023/fixing-ipv6-and-securing-the-domain.md)4
-rw-r--r--content/blog/2023/follow-this-blog-on-twitter.md (renamed from content/site/updates/2023/follow-this-blog-on-twitter.md)6
-rw-r--r--content/blog/2023/i-now-host-my-own-code.md (renamed from content/site/updates/2023/i-now-host-my-own-code.md)6
-rw-r--r--content/blog/2023/new-domain-bsd-and-sayonara-memes.md (renamed from content/site/updates/2023/new-domain-bsd-and-sayonara-memes.md)6
-rw-r--r--content/blog/2023/now-served-from-ipv6.md (renamed from content/site/updates/2023/now-served-from-ipv6.md)6
-rw-r--r--content/blog/2023/openbsd-74.md (renamed from content/site/updates/2023/openbsd-74.md)6
-rw-r--r--content/blog/2023/removed-plausible.md (renamed from content/site/updates/2023/removed-plausible.md)6
-rw-r--r--content/blog/2023/statistics-are-now-public.md (renamed from content/site/updates/2023/statistics-are-now-public.md)6
-rw-r--r--content/blog/2023/this-blog-is-ai-free.md (renamed from content/site/updates/2023/this-blog-is-ai-free.md)6
-rw-r--r--content/blog/2023/this-site-no-longer-spies-for-youtube.md (renamed from content/site/updates/2023/this-site-no-longer-spies-for-youtube.md)6
-rw-r--r--content/blog/2024/gitea.md (renamed from content/site/updates/2024/gitea.md)4
-rw-r--r--content/blog/2024/rss-full.md (renamed from content/site/updates/2024/rss-full.md)2
-rw-r--r--content/stats.md (renamed from content/site/info.md)20
-rw-r--r--layouts/_default/index.html56
l---------layouts/partials/homepage/.#nameplate.html1
-rw-r--r--layouts/partials/homepage/bsd.html2
-rw-r--r--layouts/partials/homepage/buttons.html36
-rw-r--r--layouts/partials/homepage/emacs.html2
-rw-r--r--layouts/partials/homepage/nameplate.html49
-rw-r--r--layouts/partials/homepage/startrek.html2
-rw-r--r--layouts/shortcodes/post-count.html1
-rw-r--r--static/style.css487
44 files changed, 429 insertions, 398 deletions
diff --git a/assets/covers/colosus-the-forbin-project.jpg b/assets/covers/colosus-the-forbin-project.jpg
new file mode 100644
index 0000000..201b648
--- /dev/null
+++ b/assets/covers/colosus-the-forbin-project.jpg
Binary files differ
diff --git a/assets/covers/dune-part-1.jpg b/assets/covers/dune-part-1.jpg
new file mode 100644
index 0000000..c3b1db8
--- /dev/null
+++ b/assets/covers/dune-part-1.jpg
Binary files differ
diff --git a/assets/covers/dune-part-2.jpg b/assets/covers/dune-part-2.jpg
new file mode 100644
index 0000000..e446bc4
--- /dev/null
+++ b/assets/covers/dune-part-2.jpg
Binary files differ
diff --git a/assets/covers/ghost-in-the-machine.jpg b/assets/covers/ghost-in-the-machine.jpg
new file mode 100644
index 0000000..50f46d9
--- /dev/null
+++ b/assets/covers/ghost-in-the-machine.jpg
Binary files differ
diff --git a/assets/covers/hardware.jpg b/assets/covers/hardware.jpg
new file mode 100644
index 0000000..6e0f3c0
--- /dev/null
+++ b/assets/covers/hardware.jpg
Binary files differ
diff --git a/assets/covers/lawnmower-man-2.jpg b/assets/covers/lawnmower-man-2.jpg
new file mode 100644
index 0000000..696ecca
--- /dev/null
+++ b/assets/covers/lawnmower-man-2.jpg
Binary files differ
diff --git a/assets/covers/lawnmower-man.pg b/assets/covers/lawnmower-man.pg
new file mode 100644
index 0000000..5577bdc
--- /dev/null
+++ b/assets/covers/lawnmower-man.pg
Binary files differ
diff --git a/assets/covers/mwl-absolute-freebsd.jpg b/assets/covers/mwl-absolute-freebsd.jpg
new file mode 100644
index 0000000..273d221
--- /dev/null
+++ b/assets/covers/mwl-absolute-freebsd.jpg
Binary files differ
diff --git a/assets/covers/mwl-zfs-mastery.jpg b/assets/covers/mwl-zfs-mastery.jpg
new file mode 100644
index 0000000..29bfcd9
--- /dev/null
+++ b/assets/covers/mwl-zfs-mastery.jpg
Binary files differ
diff --git a/assets/covers/patlabor-movie-1.jpg b/assets/covers/patlabor-movie-1.jpg
new file mode 100644
index 0000000..b71e371
--- /dev/null
+++ b/assets/covers/patlabor-movie-1.jpg
Binary files differ
diff --git a/assets/covers/persona-5-strikers.jpg b/assets/covers/persona-5-strikers.jpg
new file mode 100644
index 0000000..fce1ccd
--- /dev/null
+++ b/assets/covers/persona-5-strikers.jpg
Binary files differ
diff --git a/assets/covers/sapkowski-time-of-contemt.jpg b/assets/covers/sapkowski-time-of-contemt.jpg
new file mode 100644
index 0000000..7207957
--- /dev/null
+++ b/assets/covers/sapkowski-time-of-contemt.jpg
Binary files differ
diff --git a/content-org/blog.org b/content-org/blog.org
index 96ce6d3..5aa0857 100644
--- a/content-org/blog.org
+++ b/content-org/blog.org
@@ -8,10 +8,63 @@
#+HUGO_SECTION: blog
* 2024 [28/28] :@blog:
+
:PROPERTIES:
:EXPORT_HUGO_SECTION: blog/2024
:END:
+
+
+
+** Patlabor: The Movie (1989)
+There was a time when /Patlabor/ was an established name.
+It was huge, it had /Mamoru Oshii/.
+Now, sadly, it's mostly forgotten.
+
+/Patlabor: The Movie/ is the first from the universe.
+I'll cover the following two soon, as this is my rewatch after decades.
+
+Action is set in the distant future of 1999.
+Manual labor is aided by Labors, huge exoskeletons.
+Tokyo is undergoing a huge project where old suburbs are demolished an artificial island are created on the coast.
+Some Labors are going berserk, destroying everything on their paths despite being unmanned.
+
+Let's start with the visual feast.
+The movie looks stunning!
+Yes, later movies from IG tops what we see here, and sometimes the faces may look weird.
+It's not perfect.
+But if we would simply tell ourselves that this style of animations is the peak and let's just try to maintain the quality, I'd be more than happy.
+The way this 35-year-old movie looks is a testament to manual drawings.
+The design, the camera work, the coloring - I loved every second.
+
+/The Movie/ is an Oshii-type of movie.
+It came in this short period, where /anime/ was treating western culture as something alien and cool.
+We're seeing this in Jin-Roh, Evangelion, GITS, and many others.
+Here we've got Bible.
+
+And this shows the biggest problem of /Patlabor: The Movie/: it is shallow.
+On surface level, we've got everything one could ever want: Unabomber-style genius on a quest to stop progress at all cost.
+We're seeing how /old/ is discarded in the name of progress.
+We've also got a huge computer system which is maintained without deep understanding of how it works.
+Basically, 1999 is like 2024.
+
+But none of this is really developped.
+The main characters never stop and think, that maybe the world is not going the best route?
+Eiichi Hoba, the aforementioned Unabomber, is just a plot device: the viewer is also never confronted with his viewpoint.
+
+As it stands, /Movie 1/ story is disjointed:
+on one side we've got the real and interesting question.
+On the other, no one looks for answers and just accepts the risks of unconstrained growth.
+But maybe this was the point?
+We're seeing the same today: the world is ending and most people are racing to be the last one to shut down the lights.
+
+/Patlabor: Movie 1/ is good on its own, but it suffers from being proto Ghost in the Shell.
+It's not near as good, nor is it as good as its sequel.
+But taking it at face value is really solid.
+I had huge fun rewatching it, but left unsatisfied for this psychological treast Oshii is known for.
+
+My rating is 3.75/10
+
** DONE OpenBSD 7.5 released
CLOSED: [2024-04-05 Fri 09:39]
:PROPERTIES:
diff --git a/content/site/updates/2022/version_2.md b/content/blog/2022/version_2.md
index 6b72e43..a0a55a8 100644
--- a/content/site/updates/2022/version_2.md
+++ b/content/blog/2022/version_2.md
@@ -1,10 +1,8 @@
---
date: 2022-05-02T21:10:00+02:00
draft: false
-category:
-- site
-- site-update
-- update
+categories:
+- blog
year: 2022
title: Second version
abstract: There's a new version of this site.
diff --git a/content/site/updates/2023/108.md b/content/blog/2023/108.md
index 2c51457..97be0c3 100644
--- a/content/site/updates/2023/108.md
+++ b/content/blog/2023/108.md
@@ -1,9 +1,7 @@
---
title: "#108"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: a pointless number
date: 2023-04-06T22:07:14+02:00
draft: false
diff --git a/content/site/updates/2023/a-meme-site.md b/content/blog/2023/a-meme-site.md
index 423baff..01d0319 100644
--- a/content/site/updates/2023/a-meme-site.md
+++ b/content/blog/2023/a-meme-site.md
@@ -1,9 +1,7 @@
---
title: "A Meme Site"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
absract: I created a meme site.
date: 2023-01-10T17:32:12+01:00
draft: false
diff --git a/content/site/updates/2023/a-new-layout.md b/content/blog/2023/a-new-layout.md
index 24eb96a..d672a03 100644
--- a/content/site/updates/2023/a-new-layout.md
+++ b/content/blog/2023/a-new-layout.md
@@ -1,9 +1,7 @@
---
title: "A New Layout"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: The fourth look and feel for the site
date: 2023-03-09T09:05:38+01:00
draft: false
diff --git a/content/site/updates/2023/a-site-about-nothing.md b/content/blog/2023/a-site-about-nothing.md
index 9e3b40f..d7fe4d0 100644
--- a/content/site/updates/2023/a-site-about-nothing.md
+++ b/content/blog/2023/a-site-about-nothing.md
@@ -1,9 +1,7 @@
---
title: "A Site About Nothing"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: It's an E/N now
date: 2023-03-26T08:20:12+01:00
year: 2023
diff --git a/content/site/updates/2023/an-entire-month-of-posts.md b/content/blog/2023/an-entire-month-of-posts.md
index f8c2b3e..7e7373c 100644
--- a/content/site/updates/2023/an-entire-month-of-posts.md
+++ b/content/blog/2023/an-entire-month-of-posts.md
@@ -1,9 +1,7 @@
---
title: "An Entire Month of Posts"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: I've posted everyday for the last month!
date: 2023-02-17T13:05:32+01:00
year: 2023
diff --git a/content/site/updates/2023/blog.md b/content/blog/2023/blog.md
index 31d105c..606f033 100644
--- a/content/site/updates/2023/blog.md
+++ b/content/blog/2023/blog.md
@@ -1,9 +1,7 @@
---
title: "My Blog now has a Blog"
-category:
- - site
- - site-update
- - update
+categories:
+ - blog
abstract: Blogs moved under Blog
date: 2023-12-05T22:17:05+01:00
draft: false
diff --git a/content/site/updates/2023/bsd-section.md b/content/blog/2023/bsd-section.md
index d5e9245..0cff928 100644
--- a/content/site/updates/2023/bsd-section.md
+++ b/content/blog/2023/bsd-section.md
@@ -1,9 +1,7 @@
---
title: "BSD Is Now a Section"
-category:
- - site
- - site-update
- - update
+categories:
+ - blog
abstract:
date: 2023-11-28T22:17:05+01:00
draft: false
diff --git a/content/site/updates/2023/ch-ch-changes.md b/content/blog/2023/ch-ch-changes.md
index 2720ac5..09d3ef5 100644
--- a/content/site/updates/2023/ch-ch-changes.md
+++ b/content/blog/2023/ch-ch-changes.md
@@ -1,9 +1,7 @@
---
title: "Ch-Ch-Changes"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: Version 4.1?
date: 2023-05-10T11:05:20+02:00
draft: false
diff --git a/content/site/updates/2023/fixing-ipv6-and-securing-the-domain.md b/content/blog/2023/fixing-ipv6-and-securing-the-domain.md
index 0f871ba..ef00369 100644
--- a/content/site/updates/2023/fixing-ipv6-and-securing-the-domain.md
+++ b/content/blog/2023/fixing-ipv6-and-securing-the-domain.md
@@ -1,7 +1,7 @@
---
title: Fixing IPv6 and securing the domain
-category:
-- site
+categories:
+- blog
abstract: Mistakes were made
date: 2023-05-05T13:55:14+02:00
year: 2023
diff --git a/content/site/updates/2023/follow-this-blog-on-twitter.md b/content/blog/2023/follow-this-blog-on-twitter.md
index da63002..25e47bd 100644
--- a/content/site/updates/2023/follow-this-blog-on-twitter.md
+++ b/content/blog/2023/follow-this-blog-on-twitter.md
@@ -1,9 +1,7 @@
---
title: "Follow This Blog on Twitter"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: You can now follow this blog on twtr!
date: 2023-03-15T19:24:02+01:00
draft: false
diff --git a/content/site/updates/2023/i-now-host-my-own-code.md b/content/blog/2023/i-now-host-my-own-code.md
index 6ceb485..ef3e1ea 100644
--- a/content/site/updates/2023/i-now-host-my-own-code.md
+++ b/content/blog/2023/i-now-host-my-own-code.md
@@ -1,9 +1,7 @@
---
title: "I Now Host My Own Code"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: Why I left Github.
year: 2023
date: 2023-01-08T16:08:51+01:00
diff --git a/content/site/updates/2023/new-domain-bsd-and-sayonara-memes.md b/content/blog/2023/new-domain-bsd-and-sayonara-memes.md
index 15e1dd8..d1c0f3d 100644
--- a/content/site/updates/2023/new-domain-bsd-and-sayonara-memes.md
+++ b/content/blog/2023/new-domain-bsd-and-sayonara-memes.md
@@ -1,9 +1,7 @@
---
title: "New Domain, BSD and Sayonara Memes!"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: this site is now running on FreeBSD!
date: 2023-02-05T21:53:03+01:00
draft: false
diff --git a/content/site/updates/2023/now-served-from-ipv6.md b/content/blog/2023/now-served-from-ipv6.md
index b04e099..7a8bb72 100644
--- a/content/site/updates/2023/now-served-from-ipv6.md
+++ b/content/blog/2023/now-served-from-ipv6.md
@@ -1,9 +1,7 @@
---
title: "Now Served From IPv6"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: Added the missing AAAA record
date: 2023-05-03T19:47:30+02:00
year: 2023
diff --git a/content/site/updates/2023/openbsd-74.md b/content/blog/2023/openbsd-74.md
index 45b8f11..1c9fc86 100644
--- a/content/site/updates/2023/openbsd-74.md
+++ b/content/blog/2023/openbsd-74.md
@@ -1,9 +1,7 @@
---
title: "Now on OpenBSD 7.4"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: OS updated!
date: 2023-11-07T16:18:07+01:00
draft: false
diff --git a/content/site/updates/2023/removed-plausible.md b/content/blog/2023/removed-plausible.md
index 918629f..e5c8c4b 100644
--- a/content/site/updates/2023/removed-plausible.md
+++ b/content/blog/2023/removed-plausible.md
@@ -1,9 +1,7 @@
---
title: "Removed Plausible analytics"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: I will know even less about you
date: 2023-11-10T22:18:07+01:00
draft: false
diff --git a/content/site/updates/2023/statistics-are-now-public.md b/content/blog/2023/statistics-are-now-public.md
index 2210801..d72b5ae 100644
--- a/content/site/updates/2023/statistics-are-now-public.md
+++ b/content/blog/2023/statistics-are-now-public.md
@@ -1,9 +1,7 @@
---
title: "Statistics Are Now Public"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: this blog has open statistics for eveyone to marvel at
date: 2023-02-04T17:18:14+01:00
draft: false
diff --git a/content/site/updates/2023/this-blog-is-ai-free.md b/content/blog/2023/this-blog-is-ai-free.md
index 3953d58..a4cb6aa 100644
--- a/content/site/updates/2023/this-blog-is-ai-free.md
+++ b/content/blog/2023/this-blog-is-ai-free.md
@@ -1,9 +1,7 @@
---
title: "This Blog Is AI Free"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
year: 2023
abstract: No AI for me
date: 2023-01-30T13:12:28+01:00
diff --git a/content/site/updates/2023/this-site-no-longer-spies-for-youtube.md b/content/blog/2023/this-site-no-longer-spies-for-youtube.md
index 47c0b7f..9c0248f 100644
--- a/content/site/updates/2023/this-site-no-longer-spies-for-youtube.md
+++ b/content/blog/2023/this-site-no-longer-spies-for-youtube.md
@@ -1,9 +1,7 @@
---
title: "This Site No Longer Spies for Youtube"
-category:
-- site
-- site-update
-- update
+categories:
+- blog
abstract: Linking to YT in place of embeding is better for page load sped
date: 2023-02-02T14:58:42+01:00
year: 2023
diff --git a/content/site/updates/2024/gitea.md b/content/blog/2024/gitea.md
index e8ba404..ae888f7 100644
--- a/content/site/updates/2024/gitea.md
+++ b/content/blog/2024/gitea.md
@@ -2,7 +2,7 @@
title = "Moved to Gitea"
author = ["Michał Sapka"]
date = 2024-02-03T21:55:00+01:00
-categories = ["site"]
+categories = ["blog"]
draft = false
abstract = "I changed my hosted git site to Gitea"
+++
@@ -29,4 +29,4 @@ You can see it under [michal.sapka.me/git/](https://michal.sapka.me/git/).
[^fn:3]: [Forgejo.org](https://forgejo.org/)
[^fn:4]: [Answering Forgejo federation questions](https://forgejo.org/2023-01-10-answering-forgejo-federation-questions/)
[^fn:5]: [gitea.com](https://about.gitea.com/)
-[^fn:6]: none of my family would know what the code does, but it is still pretty. \ No newline at end of file
+[^fn:6]: none of my family would know what the code does, but it is still pretty.
diff --git a/content/site/updates/2024/rss-full.md b/content/blog/2024/rss-full.md
index a9a0cd3..c870c57 100644
--- a/content/site/updates/2024/rss-full.md
+++ b/content/blog/2024/rss-full.md
@@ -2,7 +2,7 @@
title = "Full content in RSS"
author = ["Michał Sapka"]
date = 2024-03-11T21:43:00+01:00
-categories = ["site"]
+categories = ["blog"]
draft = false
weight = 2001
abstract = "RSS feed not provides the full content"
diff --git a/content/site/info.md b/content/stats.md
index 385f32f..5d12865 100644
--- a/content/site/info.md
+++ b/content/stats.md
@@ -1,30 +1,14 @@
---
-title: "Site info"
+title: "Site stats"
category:
- site-info
skip-title: true
-abstract: Basic info about this site.
-type: special
+abstract: Statistics of this site
date: 2023-11-08T15:01:07+01:00
draft: false
hardback: true
---
-## Information sheet
-Name: Michal's Sapka Website
-Established: 2022-04-05
-Subpage count: {{<post-count>}}
-Generator: [Hugo](https://gohugo.io/)
-Running on: [OpenBSD](https://www.openbsd.org/)
-Hosted on: [OpenBSD Amsterdam](https://openbsd.amsterdam/)
-Web stack: Pf + Relayd + Httpd
-Money earned due to this website: 0 USD (minus costs)
-
-## Recent site updates
-
-{{<recent-updates site>}}
-{{</recent-updates>}}
-
## License
All content on this site is licensed under [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).
diff --git a/layouts/_default/index.html b/layouts/_default/index.html
index 7a3330d..c9c3aae 100644
--- a/layouts/_default/index.html
+++ b/layouts/_default/index.html
@@ -12,25 +12,21 @@ Hey! I'm Michał Sapka, a computer programmer living in Kraków, Poland. This we
</nav>
<BR>
-<div>
- <a href="https://nonbot.org/pledged/view/9b37caf2-57c1-4934-9bea-69c54eb46452" target="_blank">
- <img style="height:128px;margin-top:10px;margin-bottom:10px;" src="https://nonbot.org/images/nonbot_pledged_logo.svg" alt="Human-made Content">
- </a>
-</div>
<h2>Recent updates and publications </h2>
{{ range first 10
.Site.RegularPages.ByDate.Reverse
}}
- {{ partial "partials/article_list_item.html" . }}
+{{ partial "partials/article_list_item.html" . }}
{{ end }}
-<p><a href="/all_updates">&raquo; All updates</a><BR>
-<a href="/blog/">&raquo; Go to blog</a></p>
+<p>
+ <a href="/blog/">&raquo; Go to blog</a></p>
+</p>
- {{ partial "partials/homepage/bsd.html" . }}
- {{ partial "partials/homepage/emacs.html" . }}
- {{ partial "partials/homepage/startrek.html" . }}
+{{ partial "partials/homepage/bsd.html" . }}
+{{ partial "partials/homepage/emacs.html" . }}
+{{ partial "partials/homepage/startrek.html" . }}
<h2>Sections</h2>
<nav>
@@ -38,48 +34,14 @@ Hey! I'm Michał Sapka, a computer programmer living in Kraków, Poland. This we
<P><a class="sec-link" href="/articles/"><b>Articles</b>: longer publications that don't fit blog or any other category.</a> </p>
<P><a class="sec-link" href="/funnies/"><b>Funnies</b>: A small, curated collection of things I found funny or ammusing.</a> </p>
<p><a class="sec-link" href="/git/"><b>Version control system</b> : My little code repository. I don't expect to cooporate on any of those, so it's just stagit.</a></p>
- <p><a class="sec-link" href="/site/"><b>Site info</b> : you can find site updates, metrics, statics, and legal thingies here.</a></p>
</nav>
<h2>TOC</h2>
You can also use <a href="/toc">Table of Contents</a>.
-<br><br>
-<h2>Web buttons</h2>
+{{ partial "partials/homepage/buttons.html" . }}
+{{ partial "partials/homepage/nameplate.html" . }}
-<nav>
- {{ partial "button-15" (dict "button" . "file" "open-bsd.png" "alt" "Powered by OpenBSD" "href" "https://openbsd.org") }}
- {{ partial "button-15" (dict "button" . "file" "gnu-emacs.png" "alt" "Powered by GNU Emacs" "href" "https://www.gnu.org/software/emacs/") }}
- {{ partial "button-15" (dict "button" . "file" "star-trek.gif" "alt" "I am a trekkie" "href" "/star-trek/") }}
- {{ partial "button-15" (dict "button" . "file" "rss-20.gif" "alt" "RSS Feed" "href" "/index.xml") }}
- {{ partial "button-15" (dict "button" . "file" "self-hosted.gif" "alt" "Self hosted on OpenBSD Amsterdam" "href" "https://openbsd.amsterdam/") }}
- {{ partial "button-15" (dict "button" . "file" "text-powered.gif" "alt" "Text powered" ) }}
- {{ partial "button-15" (dict "button" . "file" "freebsd.gif" "alt" "Freebsd" "href" "https://freebsd.org" ) }}
- {{ partial "button-15" (dict "button" . "file" "coffee.gif" "alt" "Powered by cofee") }}
- {{ partial "button-15" (dict "button" . "file" "firefox.png" "alt" "Gef Firefox" "href" "https://www.mozilla.org/firefox/") }}
- {{ partial "button-15" (dict "button" . "file" "http-11.png" "alt" "Served with HTTP 1.1") }}
- {{ partial "button-15" (dict "button" . "file" "jabber.gif" "alt" "Use Jabber") }}
- {{ partial "button-15" (dict "button" . "file" "lisp.png" "alt" "Use Lisp") }}
- {{ partial "button-15" (dict "button" . "file" "ruby-lang.png" "alt" "Use Ruby" "href" "https://www.ruby-lang.org/") }}
- {{ partial "button-15" (dict "button" . "file" "evangelion.png" "alt" "Neon Genesis Evangelion 4 Life" ) }}
- {{ partial "button-15" (dict "button" . "file" "lain.png" "alt" "Serial Experiments Lain 4 Life" ) }}
- {{ partial "button-15" (dict "button" . "file" "2600.gif" "alt" "Read 2600" "href" "https://2600.com") }}
- {{ partial "button-15" (dict "button" . "file" "digitial-freedom.png" "alt" "Digital Freedom") }}
- {{ partial "button-15" (dict "button" . "file" "about-me.gif" "alt" "about me" "href" "/about" ) }}
- {{ partial "button-15" (dict "button" . "file" "archive-rg.png" "alt" "Archive.org" ) }}
- {{ partial "button-15" (dict "button" . "file" "bash.png" "alt" "bash nerd" ) }}
- {{ partial "button-15" (dict "button" . "file" "cc-sa.png" "alt" "CC-by-SA" ) }}
- {{ partial "button-15" (dict "button" . "file" "gpg.png" "alt" "gpg" "href" "/me/contact/" ) }}
- {{ partial "button-15" (dict "button" . "file" "knoppix.gif" "alt" "knoppix" ) }}
- {{ partial "button-15" (dict "button" . "file" "mp3.png" "alt" "mp3" ) }}
- {{ partial "button-15" (dict "button" . "file" "no-win.gif" "alt" "No windows" ) }}
- {{ partial "button-15" (dict "button" . "file" "opensource.png" "alt" "Open Source" "href" "/git" ) }}
- {{ partial "button-15" (dict "button" . "file" "quake.gif" "alt" "Quake" ) }}
- {{ partial "button-15" (dict "button" . "file" "seinfeld.gif" "alt" "Seinfeld" ) }}
- {{ partial "button-15" (dict "button" . "file" "st-voy.gif" "alt" "Voyager" ) }}
- {{ partial "button-15" (dict "button" . "file" "thinkpad.gif" "alt" "IBM Thinkpad" ) }}
- {{ partial "button-15" (dict "button" . "file" "torrent.png" "alt" "Torrent" ) }}
-</nav>
{{ end }}
diff --git a/layouts/partials/homepage/.#nameplate.html b/layouts/partials/homepage/.#nameplate.html
new file mode 120000
index 0000000..5fa0764
--- /dev/null
+++ b/layouts/partials/homepage/.#nameplate.html
@@ -0,0 +1 @@
+mms@voyager.63297:1712135685 \ No newline at end of file
diff --git a/layouts/partials/homepage/bsd.html b/layouts/partials/homepage/bsd.html
index 5882379..b04610d 100644
--- a/layouts/partials/homepage/bsd.html
+++ b/layouts/partials/homepage/bsd.html
@@ -5,7 +5,7 @@
{{- $img2x := $img.Resize "300x webp" }}
<section class="bsd" style="display: flow-root">
- <h2 id="bsd">Berkeley Software Distribution</h2>
+ <h2 id="bsd"><a href="#bsd">Berkeley Software Distribution</a></h2>
<img
style="float: right; max-width: 20%;"
diff --git a/layouts/partials/homepage/buttons.html b/layouts/partials/homepage/buttons.html
new file mode 100644
index 0000000..39fd0c4
--- /dev/null
+++ b/layouts/partials/homepage/buttons.html
@@ -0,0 +1,36 @@
+<section class="buttons">
+ <h2 id="buttons">Buttons</h2>
+ <nav>
+ {{ partial "button-15" (dict "button" . "file" "open-bsd.png" "alt" "Powered by OpenBSD" "href" "https://openbsd.org") }}
+ {{ partial "button-15" (dict "button" . "file" "gnu-emacs.png" "alt" "Powered by GNU Emacs" "href" "https://www.gnu.org/software/emacs/") }}
+ {{ partial "button-15" (dict "button" . "file" "star-trek.gif" "alt" "I am a trekkie" "href" "/star-trek/") }}
+ {{ partial "button-15" (dict "button" . "file" "rss-20.gif" "alt" "RSS Feed" "href" "/index.xml") }}
+ {{ partial "button-15" (dict "button" . "file" "self-hosted.gif" "alt" "Self hosted on OpenBSD Amsterdam" "href" "https://openbsd.amsterdam/") }}
+ {{ partial "button-15" (dict "button" . "file" "text-powered.gif" "alt" "Text powered" ) }}
+ {{ partial "button-15" (dict "button" . "file" "freebsd.gif" "alt" "Freebsd" "href" "https://freebsd.org" ) }}
+ {{ partial "button-15" (dict "button" . "file" "coffee.gif" "alt" "Powered by cofee") }}
+ {{ partial "button-15" (dict "button" . "file" "firefox.png" "alt" "Gef Firefox" "href" "https://www.mozilla.org/firefox/") }}
+ {{ partial "button-15" (dict "button" . "file" "http-11.png" "alt" "Served with HTTP 1.1") }}
+ {{ partial "button-15" (dict "button" . "file" "jabber.gif" "alt" "Use Jabber") }}
+ {{ partial "button-15" (dict "button" . "file" "lisp.png" "alt" "Use Lisp") }}
+ {{ partial "button-15" (dict "button" . "file" "ruby-lang.png" "alt" "Use Ruby" "href" "https://www.ruby-lang.org/") }}
+ {{ partial "button-15" (dict "button" . "file" "evangelion.png" "alt" "Neon Genesis Evangelion 4 Life" ) }}
+ {{ partial "button-15" (dict "button" . "file" "lain.png" "alt" "Serial Experiments Lain 4 Life" ) }}
+ {{ partial "button-15" (dict "button" . "file" "2600.gif" "alt" "Read 2600" "href" "https://2600.com") }}
+ {{ partial "button-15" (dict "button" . "file" "digitial-freedom.png" "alt" "Digital Freedom") }}
+ {{ partial "button-15" (dict "button" . "file" "about-me.gif" "alt" "about me" "href" "/about" ) }}
+ {{ partial "button-15" (dict "button" . "file" "archive-rg.png" "alt" "Archive.org" ) }}
+ {{ partial "button-15" (dict "button" . "file" "bash.png" "alt" "bash nerd" ) }}
+ {{ partial "button-15" (dict "button" . "file" "cc-sa.png" "alt" "CC-by-SA" ) }}
+ {{ partial "button-15" (dict "button" . "file" "gpg.png" "alt" "gpg" "href" "/me/contact/" ) }}
+ {{ partial "button-15" (dict "button" . "file" "knoppix.gif" "alt" "knoppix" ) }}
+ {{ partial "button-15" (dict "button" . "file" "mp3.png" "alt" "mp3" ) }}
+ {{ partial "button-15" (dict "button" . "file" "no-win.gif" "alt" "No windows" ) }}
+ {{ partial "button-15" (dict "button" . "file" "opensource.png" "alt" "Open Source" "href" "/git" ) }}
+ {{ partial "button-15" (dict "button" . "file" "quake.gif" "alt" "Quake" ) }}
+ {{ partial "button-15" (dict "button" . "file" "seinfeld.gif" "alt" "Seinfeld" ) }}
+ {{ partial "button-15" (dict "button" . "file" "st-voy.gif" "alt" "Voyager" ) }}
+ {{ partial "button-15" (dict "button" . "file" "thinkpad.gif" "alt" "IBM Thinkpad" ) }}
+ {{ partial "button-15" (dict "button" . "file" "torrent.png" "alt" "Torrent" ) }}
+ </nav>
+</section>
diff --git a/layouts/partials/homepage/emacs.html b/layouts/partials/homepage/emacs.html
index 0b5f42e..807185e 100644
--- a/layouts/partials/homepage/emacs.html
+++ b/layouts/partials/homepage/emacs.html
@@ -5,7 +5,7 @@
{{- $img2x := $img.Resize "100x webp" }}
<section class="emacs">
- <h2 id="emacs">Emacs</h2>
+ <h2 id="emacs"><a href="#emacs">Emacs</a></h2>
<div style="display: flow-root; vertical-align: middle;">
<img
style="float: left; max-width: 20%; margin-right: 10px;"
diff --git a/layouts/partials/homepage/nameplate.html b/layouts/partials/homepage/nameplate.html
new file mode 100644
index 0000000..9cc0a21
--- /dev/null
+++ b/layouts/partials/homepage/nameplate.html
@@ -0,0 +1,49 @@
+<section class="nameplate">
+ <h2 id="nameplate"><a href="#nameplate">Nameplate</a></h2>
+
+ <a
+ href="https://nonbot.org/pledged/view/9b37caf2-57c1-4934-9bea-69c54eb46452"
+ target="_blank">
+ <img
+ style="height:128px;
+ margin-top:10px;
+ float: left;
+ margin-bottom:10px;"
+ src="https://nonbot.org/images/nonbot_pledged_logo.svg"
+ alt="Human-made Content">
+ </a>
+
+ <div style="float: center">
+ <table class="small">
+ <tr>
+ <td> Name </td>
+ <td> Michal's Sapka Website </td>
+ </tr>
+ <tr>
+ <td> Established </td>
+ <td> 2022-04-05 </td>
+ </tr>
+ <tr>
+ <td>Subpage count</td>
+ <td>{{ len .Page.Site.RegularPages }} </td>
+ </tr>
+ <tr>
+ <td> Generator </td>
+ <td> <a href="https://gohugo.io/">Hugo</a> with a custom theme </td>
+ </tr>
+ <tr>
+ <td> Running on </td>
+ <td> <a href="https://www.openbsd.org/">OpenBSD</a></td>
+ </tr>
+ <tr>
+ <td> Hosted on </td>
+ <td> <a href="https://openbsd.amsterdam/">OpenBSD Amsterdam</a> </td>
+ </tr>
+ <tr>
+ <td> Web stack </td>
+ <td> Pf + Relayd + Httpd </td>
+ </tr>
+ </table>
+ </div>
+ <a href="/stat">Statistics</a>
+</section>
diff --git a/layouts/partials/homepage/startrek.html b/layouts/partials/homepage/startrek.html
index 296be4b..845c07a 100644
--- a/layouts/partials/homepage/startrek.html
+++ b/layouts/partials/homepage/startrek.html
@@ -5,7 +5,7 @@
{{- $img2x := $img.Resize "300x webp" }}
<section class="star-trek" style="display: flow-root">
- <h2 id="star-trek">Star Trek</h2>
+ <h2 id="star-trek"><a href="#star-trek">Star Trek</a></h2>
<img
class="vert-move"
style="float: right; max-width: 20%;"
diff --git a/layouts/shortcodes/post-count.html b/layouts/shortcodes/post-count.html
deleted file mode 100644
index bbe1a3f..0000000
--- a/layouts/shortcodes/post-count.html
+++ /dev/null
@@ -1 +0,0 @@
-{{ len .Page.Site.RegularPages }}
diff --git a/static/style.css b/static/style.css
index 0d06ab4..e514c67 100644
--- a/static/style.css
+++ b/static/style.css
@@ -140,16 +140,13 @@ img {
width: auto;
height: auto;
}
-a {
- color: var(--link-color);
-}
+a { color: var(--link-color); }
+h2 a { text-decoration: none; }
+
.placeholder {
opacity: 0.55;
}
-a:hover {
- text-decoration: underline;
-}
-/* site_end */
+ /* site_end */
/* generic_header_start */
header {
@@ -292,121 +289,110 @@ article.blog-post-item > h2 > a {
article.blog-post-item > nav {
display: inline-block;
}
- nav.blog-pages-list {
- margin-bottom: 20px;
- }
- nav.blog-pages-list a {
- text-decoration: underline;
- }
- /* blog_post_list_end */
-
- /* article_list_start */
- article.article-abstract-list-item {
- margin-bottom: 5px;
- }
- article.article-abstract-list-item > h2 {
- margin-top: 0;
- }
- article.article-abstract-list-item > h2 > a {
- text-decoration: none;
- }
- article.article-abstract-list-item > a > aside {
- margin-top: 7px;
- opacity : 0.7;
- }
-
- /* article_list_end */
-
- /* index_start */
- nav.personal {
- }
- nav.personal > a {
- font-weight: bold;
- }
-
- /* index_end */
-
-
- /* mms_table_start */
- body.mms table {
- width: 100%;
- border-collapse: collapse;
- }
-
- body.mms td {
- border-style: solid;
- border-width: 1px;
- padding: 3px;
- }
- /* mms_table_end */
-
- /* single_start */
-
- article > .publish-date {
- text-align: right;
- }
-
- article > .publish-date a {
- text-decoration: none;
- }
- /*single_end */
-
- /* inline_nav_start */
- .inline-nav > h4 {
- text-transform: none!important;
- }
- .inline-nav > ul > li > b {
- color: var(--star-trek-highlight-color);
- }
-
- /* inline_nav_end */
-
-
-
-
-
- /* legacy_code_start */
-
- /* ---------- Main */
- main {
- margin-top: 30px;
- }
-
-
- /* ----------- Taxmomy list */
-
- .list-item time {
- opacity: 0.5;
- }
- .list-item span {
- font-weight: bold;
- }
-
- /* ----------- Articles / Posts */
- article {
- margin-bottom: 20px;
- padding: 5px;
- line-height: 1.32em;
- }
- article p {
- text-align: justify;
- }
- article a {
- text-decoration: underline;
- }
- h2, h3, h4, h5 {
- text-align: left;
- border: 0;
- border-bottom-width: 0px;
- border-style: solid;
- font-size: inherit;
- text-transform: uppercase;
- }
- h2 {
- border-bottom-width: 1px;
- }
-
- /* emacs_article_start */
+nav.blog-pages-list {
+ margin-bottom: 20px;
+}
+nav.blog-pages-list a {
+ text-decoration: underline;
+}
+/* blog_post_list_end */
+
+/* article_list_start */
+article.article-abstract-list-item {
+ margin-bottom: 5px;
+}
+article.article-abstract-list-item > h2 {
+ margin-top: 0;
+}
+article.article-abstract-list-item > h2 > a {
+ text-decoration: none;
+}
+article.article-abstract-list-item > a > aside {
+ margin-top: 7px;
+ opacity : 0.7;
+}
+
+/* article_list_end */
+
+/* index_start */
+nav.personal {
+}
+nav.personal > a {
+ font-weight: bold;
+}
+
+
+table.small { width: auto; border-style: none!important; }
+table.small td { border-style: none!important; }
+table.small tr { border-style: none!important; }
+
+/* single_start */
+
+article > .publish-date {
+ text-align: right;
+}
+
+article > .publish-date a {
+ text-decoration: none;
+}
+/*single_end */
+
+/* inline_nav_start */
+.inline-nav > h4 {
+ text-transform: none!important;
+}
+.inline-nav > ul > li > b {
+ color: var(--star-trek-highlight-color);
+}
+
+/* inline_nav_end */
+
+
+
+
+
+/* legacy_code_start */
+
+/* ---------- Main */
+main {
+ margin-top: 30px;
+}
+
+
+/* ----------- Taxmomy list */
+
+.list-item time {
+ opacity: 0.5;
+}
+.list-item span {
+ font-weight: bold;
+}
+
+/* ----------- Articles / Posts */
+article {
+ margin-bottom: 20px;
+ padding: 5px;
+ line-height: 1.32em;
+}
+article p {
+ text-align: justify;
+}
+article a {
+ text-decoration: underline;
+}
+h2, h3, h4, h5 {
+ text-align: left;
+ border: 0;
+ border-bottom-width: 0px;
+ border-style: solid;
+ font-size: inherit;
+ text-transform: uppercase;
+}
+h2 {
+ border-bottom-width: 1px;
+}
+
+/* emacs_article_start */
.emacs h2 { color: var(--emacs-highlight-color); border-color: var(--emacs-highlight-color) }
.emacs h3 { color: var(--emacs-highlight-color); border-color: var(--emacs-highlight-color) }
.emacs h4 { color: var(--emacs-highlight-color); border-color: var(--emacs-highlight-color) }
@@ -454,9 +440,6 @@ body.blog h6 { color: var(--blog-highlight-color); border-color: var(--blog-high
/* emacs_article_end */
-
-
-
blockquote {
border: 0;
border-left: 3px;
@@ -521,130 +504,130 @@ figure.graph img {
}
/* ----------- Footer */
-footer {
- text-align: center;
- padding: 10px 0 30px 0;
-}
-
-/* ---------- Footnotes */
-a[href^="#fn:"], a[href^="#fnref:"] {
- text-decoration: none;
-}
-a[href^="#fn:"]:before{ content: '[' }
-a[href^="#fn:"]:after{ content: ']' }
-.footnotes p {
- margin: 3px;
-}
-.footnotes hr {
- size: 1px;
-}
-.footnotes::before {
- border: 0;
- border-bottom-width: 1px;
- border-style: solid;
- font-weight: bold;
- display: block;
- text-transform: uppercase;
-}
-
-/* ----------- Donations */
-.donor {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- justify-content: center;
- align-items: center;
- align-content: flex-start;
- gap: 50px;
-}
-
-/* --------- Code blocks */
-
-/* Background */ .bg { background-color: #f8f8f8; }
-/* PreWrapper */ .chroma { background-color: #f8f8f8; }
-/* Other */ .chroma .x { }
-/* Error */ .chroma .err { }
-/* CodeLine */ .chroma .cl { }
-/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
-/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
-/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
-/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-/* Line */ .chroma .line { display: flex; }
-/* Keyword */ .chroma .k { color: #aa22ff; font-weight: bold }
-/* KeywordConstant */ .chroma .kc { color: #aa22ff; font-weight: bold }
-/* KeywordDeclaration */ .chroma .kd { color: #aa22ff; font-weight: bold }
-/* KeywordNamespace */ .chroma .kn { color: #aa22ff; font-weight: bold }
-/* KeywordPseudo */ .chroma .kp { color: #aa22ff }
-/* KeywordReserved */ .chroma .kr { color: #aa22ff; font-weight: bold }
-/* KeywordType */ .chroma .kt { color: #00bb00; font-weight: bold }
-/* Name */ .chroma .n { }
-/* NameAttribute */ .chroma .na { color: #bb4444 }
-/* NameBuiltin */ .chroma .nb { color: #aa22ff }
-/* NameBuiltinPseudo */ .chroma .bp { }
-/* NameClass */ .chroma .nc { color: #0000ff }
-/* NameConstant */ .chroma .no { color: #880000 }
-/* NameDecorator */ .chroma .nd { color: #aa22ff }
-/* NameEntity */ .chroma .ni { color: #999999; font-weight: bold }
-/* NameException */ .chroma .ne { color: #d2413a; font-weight: bold }
-/* NameFunction */ .chroma .nf { color: #00a000 }
-/* NameFunctionMagic */ .chroma .fm { }
-/* NameLabel */ .chroma .nl { color: #a0a000 }
-/* NameNamespace */ .chroma .nn { color: #0000ff; font-weight: bold }
-/* NameOther */ .chroma .nx { }
-/* NameProperty */ .chroma .py { }
-/* NameTag */ .chroma .nt { color: #008000; font-weight: bold }
-/* NameVariable */ .chroma .nv { color: #b8860b }
-/* NameVariableClass */ .chroma .vc { }
-/* NameVariableGlobal */ .chroma .vg { }
-/* NameVariableInstance */ .chroma .vi { }
-/* NameVariableMagic */ .chroma .vm { }
-/* Literal */ .chroma .l { }
-/* LiteralDate */ .chroma .ld { }
-/* LiteralString */ .chroma .s { color: #bb4444 }
-/* LiteralStringAffix */ .chroma .sa { color: #bb4444 }
-/* LiteralStringBacktick */ .chroma .sb { color: #bb4444 }
-/* LiteralStringChar */ .chroma .sc { color: #bb4444 }
-/* LiteralStringDelimiter */ .chroma .dl { color: #bb4444 }
-/* LiteralStringDoc */ .chroma .sd { color: #bb4444; font-style: italic }
-/* LiteralStringDouble */ .chroma .s2 { color: #bb4444 }
-/* LiteralStringEscape */ .chroma .se { color: #bb6622; font-weight: bold }
-/* LiteralStringHeredoc */ .chroma .sh { color: #bb4444 }
-/* LiteralStringInterpol */ .chroma .si { color: #bb6688; font-weight: bold }
-/* LiteralStringOther */ .chroma .sx { color: #008000 }
-/* LiteralStringRegex */ .chroma .sr { color: #bb6688 }
-/* LiteralStringSingle */ .chroma .s1 { color: #bb4444 }
-/* LiteralStringSymbol */ .chroma .ss { color: #b8860b }
-/* LiteralNumber */ .chroma .m { color: #666666 }
- /* LiteralNumberBin */ .chroma .mb { color: #666666 }
- /* LiteralNumberFloat */ .chroma .mf { color: #666666 }
- /* LiteralNumberHex */ .chroma .mh { color: #666666 }
- /* LiteralNumberInteger */ .chroma .mi { color: #666666 }
- /* LiteralNumberIntegerLong */ .chroma .il { color: #666666 }
- /* LiteralNumberOct */ .chroma .mo { color: #666666 }
- /* Operator */ .chroma .o { color: #666666 }
- /* OperatorWord */ .chroma .ow { color: #aa22ff; font-weight: bold }
- /* Punctuation */ .chroma .p { }
- /* Comment */ .chroma .c { color: #008800; font-style: italic }
- /* CommentHashbang */ .chroma .ch { color: #008800; font-style: italic }
- /* CommentMultiline */ .chroma .cm { color: #008800; font-style: italic }
- /* CommentSingle */ .chroma .c1 { color: #008800; font-style: italic }
- /* CommentSpecial */ .chroma .cs { color: #008800; font-weight: bold }
-/* CommentPreproc */ .chroma .cp { color: #008800 }
-/* CommentPreprocFile */ .chroma .cpf { color: #008800 }
-/* Generic */ .chroma .g { }
-/* GenericDeleted */ .chroma .gd { color: #a00000 }
-/* GenericEmph */ .chroma .ge { font-style: italic }
-/* GenericError */ .chroma .gr { color: #ff0000 }
-/* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
-/* GenericInserted */ .chroma .gi { color: #00a000 }
-/* GenericOutput */ .chroma .go { color: #888888 }
-/* GenericPrompt */ .chroma .gp { color: #000080; font-weight: bold }
-/* GenericStrong */ .chroma .gs { font-weight: bold }
-/* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
-/* GenericTraceback */ .chroma .gt { color: #0044dd }
-/* GenericUnderline */ .chroma .gl { text-decoration: underline }
-/* TextWhitespace */ .chroma .w { color: #bbbbbb }
-
- /* legacy_code_end */
+ footer {
+ text-align: center;
+ padding: 10px 0 30px 0;
+ }
+
+ /* ---------- Footnotes */
+ a[href^="#fn:"], a[href^="#fnref:"] {
+ text-decoration: none;
+ }
+ a[href^="#fn:"]:before{ content: '[' }
+ a[href^="#fn:"]:after{ content: ']' }
+ .footnotes p {
+ margin: 3px;
+ }
+ .footnotes hr {
+ size: 1px;
+ }
+ .footnotes::before {
+ border: 0;
+ border-bottom-width: 1px;
+ border-style: solid;
+ font-weight: bold;
+ display: block;
+ text-transform: uppercase;
+ }
+
+ /* ----------- Donations */
+ .donor {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: center;
+ align-content: flex-start;
+ gap: 50px;
+ }
+
+ /* --------- Code blocks */
+
+ /* Background */ .bg { background-color: #f8f8f8; }
+ /* PreWrapper */ .chroma { background-color: #f8f8f8; }
+ /* Other */ .chroma .x { }
+ /* Error */ .chroma .err { }
+ /* CodeLine */ .chroma .cl { }
+ /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
+ /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+ /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
+ /* LineHighlight */ .chroma .hl { background-color: #ffffcc }
+ /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+ /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+ /* Line */ .chroma .line { display: flex; }
+ /* Keyword */ .chroma .k { color: #aa22ff; font-weight: bold }
+ /* KeywordConstant */ .chroma .kc { color: #aa22ff; font-weight: bold }
+ /* KeywordDeclaration */ .chroma .kd { color: #aa22ff; font-weight: bold }
+ /* KeywordNamespace */ .chroma .kn { color: #aa22ff; font-weight: bold }
+ /* KeywordPseudo */ .chroma .kp { color: #aa22ff }
+ /* KeywordReserved */ .chroma .kr { color: #aa22ff; font-weight: bold }
+ /* KeywordType */ .chroma .kt { color: #00bb00; font-weight: bold }
+ /* Name */ .chroma .n { }
+ /* NameAttribute */ .chroma .na { color: #bb4444 }
+ /* NameBuiltin */ .chroma .nb { color: #aa22ff }
+ /* NameBuiltinPseudo */ .chroma .bp { }
+ /* NameClass */ .chroma .nc { color: #0000ff }
+ /* NameConstant */ .chroma .no { color: #880000 }
+ /* NameDecorator */ .chroma .nd { color: #aa22ff }
+ /* NameEntity */ .chroma .ni { color: #999999; font-weight: bold }
+ /* NameException */ .chroma .ne { color: #d2413a; font-weight: bold }
+ /* NameFunction */ .chroma .nf { color: #00a000 }
+ /* NameFunctionMagic */ .chroma .fm { }
+ /* NameLabel */ .chroma .nl { color: #a0a000 }
+ /* NameNamespace */ .chroma .nn { color: #0000ff; font-weight: bold }
+ /* NameOther */ .chroma .nx { }
+ /* NameProperty */ .chroma .py { }
+ /* NameTag */ .chroma .nt { color: #008000; font-weight: bold }
+ /* NameVariable */ .chroma .nv { color: #b8860b }
+ /* NameVariableClass */ .chroma .vc { }
+ /* NameVariableGlobal */ .chroma .vg { }
+ /* NameVariableInstance */ .chroma .vi { }
+ /* NameVariableMagic */ .chroma .vm { }
+ /* Literal */ .chroma .l { }
+ /* LiteralDate */ .chroma .ld { }
+ /* LiteralString */ .chroma .s { color: #bb4444 }
+ /* LiteralStringAffix */ .chroma .sa { color: #bb4444 }
+ /* LiteralStringBacktick */ .chroma .sb { color: #bb4444 }
+ /* LiteralStringChar */ .chroma .sc { color: #bb4444 }
+ /* LiteralStringDelimiter */ .chroma .dl { color: #bb4444 }
+ /* LiteralStringDoc */ .chroma .sd { color: #bb4444; font-style: italic }
+ /* LiteralStringDouble */ .chroma .s2 { color: #bb4444 }
+ /* LiteralStringEscape */ .chroma .se { color: #bb6622; font-weight: bold }
+ /* LiteralStringHeredoc */ .chroma .sh { color: #bb4444 }
+ /* LiteralStringInterpol */ .chroma .si { color: #bb6688; font-weight: bold }
+ /* LiteralStringOther */ .chroma .sx { color: #008000 }
+ /* LiteralStringRegex */ .chroma .sr { color: #bb6688 }
+ /* LiteralStringSingle */ .chroma .s1 { color: #bb4444 }
+ /* LiteralStringSymbol */ .chroma .ss { color: #b8860b }
+ /* LiteralNumber */ .chroma .m { color: #666666 }
+ /* LiteralNumberBin */ .chroma .mb { color: #666666 }
+ /* LiteralNumberFloat */ .chroma .mf { color: #666666 }
+ /* LiteralNumberHex */ .chroma .mh { color: #666666 }
+ /* LiteralNumberInteger */ .chroma .mi { color: #666666 }
+ /* LiteralNumberIntegerLong */ .chroma .il { color: #666666 }
+ /* LiteralNumberOct */ .chroma .mo { color: #666666 }
+ /* Operator */ .chroma .o { color: #666666 }
+ /* OperatorWord */ .chroma .ow { color: #aa22ff; font-weight: bold }
+ /* Punctuation */ .chroma .p { }
+ /* Comment */ .chroma .c { color: #008800; font-style: italic }
+ /* CommentHashbang */ .chroma .ch { color: #008800; font-style: italic }
+ /* CommentMultiline */ .chroma .cm { color: #008800; font-style: italic }
+ /* CommentSingle */ .chroma .c1 { color: #008800; font-style: italic }
+ /* CommentSpecial */ .chroma .cs { color: #008800; font-weight: bold }
+ /* CommentPreproc */ .chroma .cp { color: #008800 }
+ /* CommentPreprocFile */ .chroma .cpf { color: #008800 }
+ /* Generic */ .chroma .g { }
+ /* GenericDeleted */ .chroma .gd { color: #a00000 }
+ /* GenericEmph */ .chroma .ge { font-style: italic }
+ /* GenericError */ .chroma .gr { color: #ff0000 }
+ /* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
+ /* GenericInserted */ .chroma .gi { color: #00a000 }
+ /* GenericOutput */ .chroma .go { color: #888888 }
+ /* GenericPrompt */ .chroma .gp { color: #000080; font-weight: bold }
+ /* GenericStrong */ .chroma .gs { font-weight: bold }
+ /* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
+ /* GenericTraceback */ .chroma .gt { color: #0044dd }
+ /* GenericUnderline */ .chroma .gl { text-decoration: underline }
+ /* TextWhitespace */ .chroma .w { color: #bbbbbb }
+
+ /* legacy_code_end */