На каждый коммит собирается контейнерная версия для быстрого локального запуска.
docker run --rm -p 3001:3000 -e LOGIN_TOKEN="<см. .env.example>" ghcr.io/timas130/campfire-web:latestВсе переменные в .env.example можно указать через -e.
Стандартная процедура для Next.js.
- Устанавливаем Node.js и pnpm
- Клонируем проект:
git clone https://github.com/timas130/campfire-web
- Копируем
.env.exampleв.env.localи изменяем там параметры на свои - Распакуй содержание папки
/package/min/vsэтого архива в/public/vs, чтобы получилось вот так:. │ ... ├── public │ │ ... │ └── vs │ ├── base │ ├── basic-languages │ ├── editor │ ├── language │ ├── loader.js │ └── README.md │ ... $ pnpm i$ pnpm dev
Если решили что-то изменить в вебе, просто помните, что в некоторых местах кодбаза веба даже хуже, чем кодбаза приложения. Поэтому не бойтесь и смело пишите говно!
- В
/libесть всякие разные штуки, которые я решил не сортировать- В
/lib/server.jsфункции для запросов к серверу. - В
/lib/api.jsутилиты для бэкенда. - В
/lib/client-api.jsутилиты для фронтенда (в основном связанные с бэком). - В
/lib/text-cover.jsгенератор краткого содержания постов для<title>. - В
/lib/ui.jsутилита для фронтенда, которые относятся к UI.
- В
- В
/components/все компоненты. Тут происходит мясо.- В
/components/cards/различные карточки, которые обычно показаны справа от основного контента - В
/components/controls/различные поля для ввода и показа данных. Базовые (независимые от кемпа) компоненты. - В
/components/moderation/диалоги и утилиты для модерирования публикаций. - В
/components/profile/только ProfileCard. Говорит само за себя. - В
/components/publication/компоненты публикаций.- В
publication/Publication.jsкод, который распределяет JSON публикации на нужный компонент. Рекомендуется использовать во всех случаях. - В
publication/KarmaVotesModal.js - В
publication/comment/компоненты комментария, редактора комментариев и списка комментариев. - В
publication/mod/компонент публикации модераторского действия. - В
publication/post/публикация поста и related.- В
post/Post.jsсам компонент поста. - В
post/PostFilters.jsфильтры для коллекций постов и публикаций. - В
post/Tags.jsкомпонент для показа тегов. Используется в/post/[id]. - В
post/pages/компоненты для каждого типа страниц, а также редакторы для некоторых из них.
- В
- В
- В
/components/CImage.jsкомпонент для вставки картинки по ID Campfire. - В
/components/FeedLayout.jsкомпонент для разметки страницы в два (2|1) столбца. Используется почти везде. - В
/components/Karma.jsпоказатель кармы.
- В