Zip two arrays together into an array of pairs, stopping at the shorter one.
const zip = <A, B>(a: A[], b: B[]): [A, B][] =>
Array.from({ length: Math.min(a.length, b.length) }, (\_, i) => [a[i], b[i]]); Zip two arrays together into an array of pairs, stopping at the shorter one.
const zip = <A, B>(a: A[], b: B[]): [A, B][] =>
Array.from({ length: Math.min(a.length, b.length) }, (\_, i) => [a[i], b[i]]); De officiële Astro-documentatie. Alles over de Content Layer API, componenten, routing en integraties.
A utility class that clamps text to a set number of lines with an ellipsis.
.line-clamp {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: var(--lines, 3);
overflow: hidden;
} Astro 5.0 vervangt de oude content collections met een flexibele Content Layer API. Je kunt nu data laden vanuit elk denkbaar bron — van Markdown-bestanden tot externe API's.
Jaarlijks rapport van HTTP Archive over de staat van het web. Statistieken over performance, toegankelijkheid en technologiegebruik.
Group an array of objects by a key. Returns a Map to preserve insertion order.
const groupBy = <T, K extends PropertyKey>(
items: T[],
key: (item: T) => K,
): Map<K, T[]> =>
items.reduce((map, item) => {
const k = key(item);
map.set(k, [...(map.get(k) ?? []), item]);
return map;
}, new Map<K, T[]>()); TypeScript 5.0 introduceert officieel ondersteuning voor de TC39 decorator-standaard. We bekijken wat er veranderd is en hoe je decorators toepast in moderne TypeScript-projecten.
Interaction to Next Paint (INP) verving CLS als Google-rankingfactor. We kijken hoe je INP meet, begrijpt en verbetert in moderne webapplicaties.
Schema-validatie met uitstekende TypeScript-ondersteuning. Onmisbaar voor type-veilige content collections in Astro.
Tailwind v4 herschrijft de engine in Rust en schakelt over op CSS-variabelen en een Vite-plugin. Geen config-bestand meer nodig.