Files
Raphael Salaja b0c89649b1 feat: new article animate presence (#7)
* feat: add AnimatePresence article with interactive playground

* feat: add playground

* feat: ƒix basic demo

* feat: ap article start

* chore: cleanup

* chore: pre-commit

* feat: update article

* refactor: improve code formatting and readability in demo and script files

* refactor: enhance formatting for improved readability in slideshow demo

* chore: generate open graph rather than dynamically

* chore: add @clack/prompts dependency and enhance icon/image generation scripts with improved logging

* refactor: generators

* chore: cleanup

* feat: refactor generator

* feat: second draft

* docs: final draft

* chore: final draft again

* chore: update publication date and enhance text-to-speech generator with alignment data
2026-01-25 22:41:51 +00:00

24 lines
528 B
TypeScript

import type { z } from "zod";
import type { authorSchema } from "./authors";
/**
* Author data from JSON files
*/
export type Author = z.infer<typeof authorSchema>;
/**
* A formatted page with resolved author data and formatted dates.
* This is the canonical shape for displaying page metadata in components.
*/
export interface FormattedPage {
url: string;
title: string;
description: string;
author: Author;
coauthors: Author[];
icon?: "motion" | "code" | "writing";
date: {
published: string;
};
}