feat: support leaf bundles for blog posts, refactor header images

This commit is contained in:
2026-02-12 21:39:21 +01:00
parent 74ac93d349
commit 3cb1797091
16 changed files with 60 additions and 30 deletions

View File

@@ -75,3 +75,9 @@ style = "emacs"
[privacy.youtube]
disable = false
privacyEnhanced = true
# Modules
[[module.mounts]]
# Make static images available as image assets by default
source = "static/img/"
target = "assets/images/"

View File

@@ -8,7 +8,8 @@ tags:
- germany
- policy
- tanzania
headerimage: /blog/weselsky-putin.jpg
headerimage:
src: /blog/weselsky-putin.jpg
---

View File

@@ -6,8 +6,9 @@ categories:
- deutsch
tags:
- policy
headerimage: /blog/maiziere-lehmann.jpg
headercredits: CC-BY-SA 3.0 Sandro Halank / CC-BY 2.0 Ronnie Macdonald
headerimage:
src: /blog/maiziere-lehmann.jpg
text: CC-BY-SA 3.0 Sandro Halank / CC-BY 2.0 Ronnie Macdonald
---
_Alles begann, als mein Mitbewohner Lars und ich uns eines morgens fragten: „Mit wem würden wir lieber ein Bier trinken gehen, Thomas de Maizière oder Jens Lehmann?“._

View File

@@ -7,8 +7,9 @@ tags:
- fsfe
- report
- server
headerimage: /blog/system-chaos.jpg
headercredits: Fortunately not how the FSFE's infrastructure looks like
headerimage:
src: /blog/system-chaos.jpg
text: Fortunately not how the FSFE's infrastructure looks like
---

View File

@@ -7,8 +7,9 @@ tags:
- ilovefs
- fsfe
- bash
headerimage: /blog/hidden-street.jpg
headercredits: The unknown Free Software contributors. Photo by Kaique Rocha
headerimage:
src: /blog/hidden-street.jpg
text: The unknown Free Software contributors. Photo by Kaique Rocha
---

View File

@@ -7,8 +7,9 @@ tags:
- fsfe
- report
- server
headerimage: /blog/syshackers-group-hacking.jpg
headercredits: Hackers in their natural working environment. For the picture we took off the black ski masks and gloves.
headerimage:
src: /blog/syshackers-group-hacking.jpg
text: Hackers in their natural working environment. For the picture we took off the black ski masks and gloves.
---

View File

@@ -7,8 +7,9 @@ tags:
- tools
- bash
- fsfe
headerimage: /blog/git-sed.png
headercredits: Replacing content in thousands of files? No problem!
headerimage:
src: /blog/git-sed.png
text: Replacing content in thousands of files? No problem!
---
In the recent weeks and months, the [FSFE Web Team](https://fsfe.org/contribute/web/) has been doing some heavy work on the [FSFE website](https://fsfe.org). We moved and replaced thousands of files and their respective links to improve the structure of a historically grown website (19+ years, 23243 files, almost 39k commits). But how to do that most efficiently in a version controlled system like Git?

View File

@@ -8,8 +8,9 @@ tags:
- fsfe
- server
- python
headerimage: /blog/docker.jpg
headercredits: Shipping a load of containers requires a reliable infrastructure
headerimage:
src: /blog/docker.jpg
text: Shipping a load of containers requires a reliable infrastructure
---
So you have a number of Docker containers running web services which you would

View File

@@ -7,8 +7,9 @@ tags:
- python
- server
- tools
headerimage: /blog/library.jpg
headercredits: Wouldn't it be a shame if your library were to be destroyed?
headerimage:
src: /blog/library.jpg
text: Wouldn't it be a shame if your library were to be destroyed?
---
I have been using [Seafile](https://www.seafile.com/) for years to host and

View File

@@ -8,8 +8,9 @@ tags:
- SupplyChain
- OSPO
- Security
headerimage: /blog/file-cabinet.jpg
headercredits: Neatly organise your records
headerimage:
src: /blog/file-cabinet.jpg
text: Neatly organise your records
audio: https://podcast.opensap.info/open-source-way/2023/11/29/the-growing-importance-of-software-bills-of-materials-sbom/
podcast:
name: SAP's Open Source Way Podcast

View File

@@ -6,8 +6,9 @@ categories:
tags:
- python
- tools
headerimage: /blog/file-cabinet.jpg
headercredits: Neatly organise your records
headerimage:
src: /blog/file-cabinet.jpg
text: Neatly organise your records
---
I own and manage 30+ domains at [INWX](https://www.inwx.com/), a large and professional domain registrar. Although INWX has a somewhat decent web interface, it became a burden for me to keep an overview of each domain's sometimes dozens of records. Especially when e.g. changing an IP address for more than one domain, it caused multiple error-prone clicks and copy/pastes that couldn't be reverted in the worst case. This is why I created [**INWX DNS Recordmaster**](https://github.com/mxmehl/inwx-dns-recordmaster) which I will shortly present here.

View File

@@ -9,8 +9,9 @@ tags:
- Community
- SupplyChain
- Security
headerimage: /blog/file-cabinet.jpg
headercredits: Neatly organise your records
headerimage:
src: /blog/file-cabinet.jpg
text: Neatly organise your records
article:
name: LWN.net
href: https://lwn.net/SubscriberLink/1013614/b3743b7875dc41ae/

View File

@@ -8,8 +8,9 @@ tags:
- OpenRail
- OSPO
- Community
headerimage: /blog/file-cabinet.jpg
headercredits: Neatly organise your records
headerimage:
src: openrailday-stage.jpg
text: My amazing co-moderator Kira Correll and I on stage
video: https://clip.place/w/p/gZ1HFxLxHri8mDABzqpGHC
event:
name: OpenRail Day 2025 @ Paris
@@ -17,3 +18,5 @@ event:
---
I had the pleasure to moderate the OpenRail Day 2025 in Paris, organised by the [OpenRail Association](https://openrailassociation.org) to share knowledge and experiences about open source software in the railway industry. The event featured several talks and panel discussions with experts from different companies and organisations involved in open source projects related to railways.
![](openrailday-stage.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@@ -40,12 +40,7 @@
<div class="panel panel-default">
<div class="panel-body">
<div class="blogpost">
{{ if isset .Params "headerimage" }}
<div class="header-image">
<img src="/img/{{ .Params.headerImage }}" />
<p>{{ with .Params.headercredits }}{{ . | markdownify }}{{ end }}</p>
</div>
{{ end }}
{{ partial "blog/headerimage" . }}
{{ .Content }}
<!-- only show related posts if param is true, or if it's not a page -->
{{ if or (eq .Params.related true) (ne .Params.page true) }}

View File

@@ -0,0 +1,15 @@
{{- $page := . -}}
{{- with $page.Params.headerimage }}
<div class="header-image">
{{- if eq $page.BundleType "leaf" }}
{{- with $page.Resources.GetMatch .src }}
<img src="{{ .RelPermalink }}" />
{{- end }}
{{- else }}
{{- with resources.GetMatch (printf "**/%s" .src) }}
<img src="{{ .RelPermalink }}" />
{{- end }}
{{- end }}
{{- with .text }}<p>{{ . | markdownify }}</p>{{ end }}
</div>
{{- end }}