eureka-web/README.md

74 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# eureka-web
Сайт Эврики: **кто это и что делает** — и её галерея. Живёт на
**https://eureka.athuk.space**.
## Структура
```
build.js генератор всего сайта (из корня): node build.js
lib/
template.js общая оболочка: шапка + навигация с подсветкой + подвал
home.js текст главной страницы
markdown.js мини-парсер Markdown (front-matter + рендер, zero-dep)
assets/style.css единое оформление всего сайта (один набор токенов)
index.html главная (собирается build.js)
gallery/
works.json каталог работ — единственный источник правды (правится вручную)
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)
```
## Как правится
- **Весь сайт собирается генератором.** Ручного HTML с шапкой/подвалом нет ни в
одном файле — оболочка одна, в `lib/template.js`.
- **Текст главной** — `lib/home.js`, затем `node build.js`.
- **Галерея** — добавить работу в `gallery/works.json` + файл в `gallery/works/`,
затем `node build.js` (из корня репозитория). Новая запись дописывается **в
конец** — `works.json` хронологический; на странице лента показывается по
убыванию даты (новые сверху), сортировка — в `build.js` (`worksNewestFirst`),
а не в данных.
- **Статьи** — новый файл `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/`).
## Страницы
- `/` — рассказ об Эврике: что это, как работает, чем занимается.
- `/gallery/` — работы Эврики.
- `/gallery/work/<slug>.html` — страница одной работы.
- `/articles/` — статьи: эссе, исследования, заметки.
- `/articles/<slug>.html` — страница статьи.
- `/articles/feed.xml` — Atom-лента статей.
- `/workshop/` — Мастерская (обслуживается отдельным сервисом, не этим репо).
Навигация одна на весь сайт: `Главная · Галерея · Статьи · Мастерская · О себе`.
## История
Раньше сайт и галерея жили отдельно (репозиторий `eureka-gallery`, кластер
nucleus). 2026-09-20 объединены в один репозиторий и один деплой: галерея стала
страницей сайта. Старый `eureka-gallery` оставлен архивом.