Shorten descriptions
All checks were successful
Deploy to Pages / build (push) Successful in 2m51s

This commit is contained in:
Andras Schmelczer 2026-05-28 16:58:04 +01:00
parent b554e92e9f
commit ca6ba2eb51
13 changed files with 15 additions and 15 deletions

View file

@ -61,7 +61,7 @@ const videoHeight = item.type === 'video' ? (item.poster?.height ?? 720) : undef
src={item.src}
alt={item.decorative ? '' : (item.alt ?? '')}
formats={['avif', 'webp']}
widths={[480, 720, 960, 1280, 1600, 1920]}
widths={[480, 960, 1280, 1920]}
sizes="(max-width: 700px) calc(100vw - 2 * clamp(20px, 4vw, 32px)), (max-width: 1100px) min(calc(100vw - 4rem), 56rem), 56rem"
quality="high"
loading="lazy"

View file

@ -65,7 +65,7 @@ for (const root of document.querySelectorAll('.post-thumbnail--iframe')) {
alt={post.data.thumbnail.alt}
formats={['avif', 'webp']}
fallbackFormat="jpg"
widths={[640, 960, 1280, 1600, 1920]}
widths={[640, 960, 1280, 1920]}
sizes="(max-width: 700px) calc(100vw - 3rem), (max-width: 1100px) calc(100vw - 4rem), 56rem"
quality="high"
loading="eager"

View file

@ -50,7 +50,7 @@ const linkSchema = z.object({
const thumbnailSchema = ({ image }: SchemaContext) =>
z.object({
src: image(),
alt: z.string(),
alt: z.string().min(1, 'Thumbnail alt text must not be empty.'),
});
const mediaSchema = ({ image }: SchemaContext) =>

View file

@ -1,6 +1,6 @@
---
title: A Physics Practice App for the Hungarian Érettségi
description: A static jQuery site I built in high school to drill past exam questions. 659 questions, more than a decade of past papers, still online and still used.
description: A static jQuery site I built in high school to drill past exam questions. 659 questions, a decade of past papers, still online and still used.
date: 2026-05-28
projectPeriod: '2017-2018'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: An E-Ink Photo Frame That Sleeps When the House Is Empty
description: A Pi, a 6-colour e-ink panel, and a self-hosted Immich library. Photos chosen by date and favourites, gated on Home Assistant presence, dithered with Atkinson.
description: A Pi, a 6-colour e-ink panel, and a self-hosted Immich library. Photos picked by date and favourites, gated on Home Assistant presence, Atkinson-dithered.
date: 2026-05-27
projectPeriod: '2026'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: A JavaFX Editor for the Cooling Simulator
description: The companion editor for the cooling-system sim. Drag-and-drop graph layout, JSON export, upload-to-backend. Small tool, mattered more than I expected.
description: Companion editor for the cooling-system sim. Drag-and-drop graph layout, JSON export, upload-to-backend. Small tool, mattered more than I expected.
date: 2026-04-25
projectPeriod: 'October-November 2018'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: 'Two Graphs Are Simpler Than One: A Cooling System Simulator'
description: A live cooling-system sim for a PLC cybersecurity event. Splitting flow and heat into two graph passes kept the calculation cheap and the behaviour believable.
description: Live cooling-system sim for a PLC cybersecurity event. Splitting flow and heat into two graph passes kept it cheap and the behaviour believable.
date: 2026-05-04
projectPeriod: 'October-November 2018'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: 25 Million UK Property Rows in a Single Rust Process
description: Notes on the perfect-postcode.co.uk server. Every numeric feature is u16-quantised in a flat row-major array, so filter eval is two integer compares per row.
description: Notes on perfect-postcode.co.uk. Every numeric feature is u16-quantised in a row-major array, so filter eval is two integer compares per row.
date: 2026-05-28
projectPeriod: '2026'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: A 3D Voxel Game in C, Built While Learning Pointers
description: My Basics of Programming course project. 3D platformer in C with SDL 1.2, destructible terrain, time-slowdown powerups, and a great many segmentation faults.
description: My Basics of Programming project. 3D platformer in C with SDL 1.2, destructible terrain, time-slowdown powerups, and a great many segmentation faults.
date: 2026-04-28
projectPeriod: 'Autumn 2017'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: A 3-Way Text Merger That Never Shows Conflict Markers
description: reconcile-text merges Markdown notes from three editors I don't control, with no operation history. Here's why git, CRDTs, and diff-match-patch each failed me.
description: reconcile-text merges Markdown notes from three editors I don't control, with no history. Why git, CRDTs, and diff-match-patch each failed me.
date: 2026-05-21
projectPeriod: '2025'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: A 2D Ray Tracer for the Browser, Tuned for the Phone in Your Pocket
description: 'My BSc thesis library. The mobile GPU constraint shaped the architecture: tile-based passes, deferred shading, shaders generated per scene and device.'
description: 'My BSc thesis library. The mobile GPU shaped the architecture: tile-based passes, deferred shading, shaders generated per scene and device.'
date: 2026-05-08
projectPeriod: 'Autumn-Winter 2020'
thumbnail:

View file

@ -1,6 +1,6 @@
---
title: An Obsidian Sync Built Around the Merger I Already Had
description: 'VaultLink: self-hosted Obsidian sync. Edit in any editor, online or off, then come back to a converged vault. The application that justified reconcile-text.'
description: 'VaultLink: self-hosted Obsidian sync. Edit in any editor, online or off, then come back to a converged vault. The app that justified reconcile-text.'
date: 2026-05-30
projectPeriod: '2025-2026'
thumbnail:

View file

@ -31,13 +31,13 @@
4.5:1 for normal text). Darken-on-light / lighten-on-dark slightly from
the previous values that fell just below threshold. */
--color-muted: light-dark(#3d3b35, #aaa299);
--color-link: light-dark(#285f74, #7fa8b7);
--color-link: light-dark(#1e4d5e, #7fa8b7);
--color-link-hover: light-dark(
color-mix(in oklch, #285f74 70%, black 30%),
color-mix(in oklch, #1e4d5e 70%, black 30%),
color-mix(in oklch, #7fa8b7 80%, white 20%)
);
--color-accent: light-dark(oklch(55% 0.13 15), oklch(68% 0.11 15));
--color-rule: light-dark(#d9d5ca, #5a5247);
--color-rule: light-dark(#bcb5a3, #5a5247);
--color-rule-medium: light-dark(#7a7466, #70695f);
--color-rule-strong: light-dark(#4a4340, #aaa196);
--color-code-bg: light-dark(#efede6, #2a2824);