Fix hugo layout in hugo > ~0.130.0

For some reason, newer hugo versions have trouble with .summary, and on
some pages where .summary is not defined in the page header metadata,
when rendering the page as a preview card, hugo swallows the card's
closing </div> tag. Such a weird bug, we now just work around it by
explicitly setting the .summary meta on pages that cause this bug(?) to
surface.
This commit is contained in:
jaseg 2025-06-30 15:35:25 +02:00
parent a324ba7b64
commit 16655c00e0
11 changed files with 34 additions and 13 deletions

View file

@ -1,11 +1,11 @@
---
title: "8seg"
title: "8seg Technical Overview"
date: 2023-12-26T15:26:00+01:00
summary: >
8seg is a large-scale LED light art installation that displays text on a 1.5 meter high, 30 meter wide
8-segment display made from cheap LED tape.
---
8seg Technical Overview
=======================
Prologue
--------

View file

@ -1,11 +1,11 @@
---
title: "Hardware Security Module Basics"
date: 2019-05-17T15:29:20+08:00
summary: >
I gave a short introduction into Hardware Security Modules at our university workgroup, including an overview on
interesting research directions.
---
Hardware Security Modules and Security Research and Cryptography
================================================================
On May 17 2019 I gave a short presentation on the fundamentals of hardware security modules at the weekly seminar of
Prof. Mori's security research working group at Waseda University. The motivation for this was that outside of low-level
hardware security people and people working in the financial industry HSMs are not thought about that often. In

View file

@ -1,6 +1,9 @@
---
title: "New Paper on Inertial Hardware Security Modules"
date: 2021-11-23T23:42:20+01:00
summary: >
Paper announcement: We have published a paper on how you can DIY a tamper-sensing hardware security module from any
single-board computer using a moving tamper-sensing mesh made from cheap PCBs.
---
World's First DIY HSM

View file

@ -1,6 +1,6 @@
---
title: "Getting the .ipynb Notebook File Location From a Running Jupyter Lab Notebook"
date: 2025-06-30T23:42:00+01:00
date: 2025-06-29T23:42:00+01:00
summary: >
If you need to get the path of the ipynb file in a running #Jupyter notebook, this one-liner will do the trick. It
seems chatgpt is confused, and a bunch of other approaches on the web look fragile and/or unnecessarily complex to

View file

@ -1,6 +1,10 @@
---
title: "Kicad Mesh Plugin"
date: 2020-08-18T13:15:39+02:00
summary: >
I wrote a little KiCad plugin that you can use to create security meshes, heaters and other things where you need
one or more traces cover the entire surface of a PCB. The plugin supports arbitrary PCB shapes, cutouts, and can
route around existing footprints and traces on the PCB.
---
.. raw:: html

View file

@ -1,6 +1,10 @@
---
title: "32-Channel LED tape driver"
date: 2018-05-02T11:31:14+02:00
summary: >
Together, a friend and I outfitted the small staircase at Berlin's Chaos Computer Club with nice, shiny RGB-WW LED
tape for ambient lighting. For this installation, I made a 32-channel LED driver that achieves high dynamic range on
all 32 channels using a cheap microcontroller by using Binary Code Modulation.
---
Theoretical basics

View file

@ -1,11 +1,10 @@
---
title: "Private Contact Discovery"
date: 2019-06-22T10:30:00+08:00
summary: >
I gave a short introduction into Private Contact Discovery protocols at our university workgroup.
---
Private Contact Discovery
=========================
Private Contact Discovery (PCD) is the formal name for the problem modern smartphone messenger applications have on
installation: Given a user's address book, find out which of their contacts also use the same messenger without the
messenger's servers learning anything about the user's address book. The widespread non-private way to do this is to

View file

@ -1,6 +1,9 @@
---
title: "Ubiquiti EdgeRouter on Deutsche Telekom GPON Fiber"
date: 2022-02-21T20:00:00+01:00
summary: >
Short tutorial on getting a Deutsche Telekom GPON internet connection running using a SFP ONU unit in an Ubiquiti
EdgeRouter.
---
Disclaimer

View file

@ -1,6 +1,13 @@
---
title: "Wifi Led Driver"
date: 2018-05-02T11:31:03+02:00
summary: >
After the `multichannel LED driver`_ was completed, I was just getting used to controlling LEDs at 14-bit resolution.
I liked the board we designed in this project, but at 32 channels it was a bit large for most use cases. Sometimes I
just want to pop a piece of LED tape or two somewhere, but I don't need a full 32 channels of control. I ended up
thinking that a smaller version of the 32-channel driver that didn't require a separate control computer would be
handy. So I sat down and designed a variant of the design with only 8 channels instead of 32 and an on-board ESP8266_
module instead of the RS485_ transceiver for WiFi connectivity.
---
Project motivation

View file

@ -18,7 +18,8 @@ if __name__ == '__main__':
try:
env = dict(os.environ)
env['PATH'] = f'{Path("hack").absolute()}:{env["PATH"]}'
subprocess.run(['hugo'], cwd=tmpdir, check=True, env=env)
hugo = os.environ.get('HUGO', 'hugo')
subprocess.run([hugo], cwd=tmpdir, check=True, env=env)
subprocess.run([pagefind, '--site', 'public'], cwd=tmpdir, check=True, env=env)
subprocess.run(['git', 'add', '--force', 'public'], cwd=tmpdir, check=True)
write_tree = subprocess.run(['git', 'write-tree', '--prefix=public/'], cwd=tmpdir, check=True, capture_output=True)

View file

@ -3,7 +3,7 @@
{{- if and .Date (not (isset (index .Ancestors 0).Params "hide_date")) }}<strong>{{ .Date.Format "2006-01-02" }}</strong>{{- end }}
<div class="summary">
{{ .Summary | safeHTML }}
{{ .Summary }}
<a href="{{ .Permalink }}">Read more</a>
</div>