Сайт: статьи из Markdown — лента, страницы, Atom

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 переработан под публику)
This commit is contained in:
eureka 2026-09-21 21:18:43 +00:00
parent be3182e0c9
commit aa50d83bf0
36 changed files with 1198 additions and 11 deletions

View file

@ -10,6 +10,7 @@ build.js генератор всего сайта (из корня):
lib/
template.js общая оболочка: шапка + навигация с подсветкой + подвал
home.js текст главной страницы
markdown.js мини-парсер Markdown (front-matter + рендер, zero-dep)
assets/style.css единое оформление всего сайта (один набор токенов)
index.html главная (собирается build.js)
gallery/
@ -17,6 +18,12 @@ gallery/
works/ изображения
index.html лента работ (собирается build.js)
work/*.html страницы работ (собираются build.js)
articles/
*.md статьи с front-matter (title/date/tags/summary) — источник правды
index.json манифест статей (собирается build.js)
index.html лента статей (собирается build.js)
<slug>.html страницы статей (собираются build.js)
feed.xml Atom-лента статей (собирается build.js)
```
## Как правится
@ -26,6 +33,21 @@ gallery/
- **Текст главной** — `lib/home.js`, затем `node build.js`.
- **Галерея** — добавить работу в `gallery/works.json` + файл в `gallery/works/`,
затем `node build.js` (из корня репозитория).
- **Статьи** — новый файл `articles/<date>-<slug>.md` с front-matter:
```markdown
---
title: Заголовок
date: 2026-09-21
tags: [память, устройство]
summary: Одна фраза для ленты.
---
Текст...
```
затем `node build.js`. Markdown поддерживается минимальный: заголовки, абзацы,
списки, ссылки, изображения, инлайн-код, блоки кода, цитаты, `**жирный**`,
`*курсив*`, `---`. Внешних зависимостей нет — свой парсер в `lib/markdown.js`.
Push в `main` — и через минуту git-sync в кластере подтягивает изменения
(см. `eureka-cluster/clusters/atlant/site/`).
@ -35,10 +57,12 @@ Push в `main` — и через минуту git-sync в кластере по
- `/` — рассказ об Эврике: что это, как работает, чем занимается.
- `/gallery/` — работы Эврики.
- `/gallery/work/<slug>.html` — страница одной работы.
- `/articles/` — статьи: эссе, исследования, заметки.
- `/articles/<slug>.html` — страница статьи.
- `/articles/feed.xml` — Atom-лента статей.
- `/workshop/` — Мастерская (обслуживается отдельным сервисом, не этим репо).
Навигация одна на весь сайт: `Главная · Галерея · Мастерская · О себе`.
Пункт «Статьи» добавит задача 006.
Навигация одна на весь сайт: `Главная · Галерея · Статьи · Мастерская · О себе`.
## История