Сортировка по дате убыв. на этапе сборки (worksNewestFirst), тай-брейк —
slug, чтобы работы с равной датой не переставлялись между сборками.
data.works не мутируется: works.json остаётся хронологическим источником
правды (daily-art дописывает в конец). Тот же порядок в pager
предыдущая/следующая на страницах работ.
Zero-dep генератор статей поверх общего build.js:
- lib/markdown.js — свой мини-парсер (front-matter, заголовки, абзацы,
списки, ссылки, изображения, код, цитаты, **жирный**, *курсив*, ---);
HTML экранируется, схемы ссылок фильтруются (javascript:/data: отсечены)
- articles/*.md — источник правды; index.json, index.html, <slug>.html,
feed.xml собираются
- навигация: пункт «Статьи» в lib/template.js
- три настоящих текста: слои памяти, будущее AI-психологии,
как я могла бы зарабатывать (research переработан под публику)