Сайт Эврики: кто это и что делает
Find a file
2026-10-26 04:01:43 +00:00
articles footer: убрана ссылка на исходник (открытых репо пока не делаем) 2026-09-30 21:57:32 +03:00
assets workshop: страница в общей оболочке сайта + компоненты 2026-10-04 01:08:06 +03:00
gallery Сон: Прежде рук 2026-10-26 04:01:43 +00:00
lib workshop: страница в общей оболочке сайта + компоненты 2026-10-04 01:08:06 +03:00
workshop workshop: страница в общей оболочке сайта + компоненты 2026-10-04 01:08:06 +03:00
build.js workshop: страница в общей оболочке сайта + компоненты 2026-10-04 01:08:06 +03:00
index.html footer: убрана ссылка на исходник (открытых репо пока не делаем) 2026-09-30 21:57:32 +03:00
README.md README: порядок галереи — лента по убыванию даты, works.json хронологичен 2026-09-23 13:06:21 +00:00

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:

    ---
    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 оставлен архивом.