This commit is contained in:
parent
b554e92e9f
commit
ca6ba2eb51
13 changed files with 15 additions and 15 deletions
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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) =>
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue