Это клиент 4chan только для чтения (https://4chan.org), предназначенный для отображения тем и ответов в древовидном формате.
Я считаю, что то, как 4chan организует ответы на темы, очень дезориентирует и бесполезно для определения потока разговоров. В веб-клиенте 4chan ответы отображаются в виде плоского списка в том порядке, в котором они были опубликованы изначально.
По мере того, как ветка получает больше ответов, естественно, начинают формироваться многочисленные разговоры в виде цепочек ответов. Отсюда каждое последующее добавление в цепочку просто добавляется в большой хронологический список.
Это означает, что если вы прокручиваете указанный список, вы столкнетесь с сообщениями из нескольких цепочек ответов, которые практически не имеют ничего общего друг с другом, постоянно переплетаются, что заставляет вас постоянно переключать контекст и требует тщательной проверки, в какой цепочке находится ответ. на самом деле отвечает, чтобы не отставать от разговора.
В общем, это раздражает.
Для этого и существует этот проект - теперь очень легко следить за цепочкой ответов, потому что, ну, на самом деле это показано правильно! Ответы на сообщение становятся его дочерними элементами и отображаются на один уровень глубже. Именно так Reddit структурирует свои комментарии, и я считаю, что это довольно интуитивно понятная система, которая в десять раз улучшает взаимодействие с пользователем.
Приложение написано на Svelte и работает почти полностью на стороне клиента, используя nginx в качестве прокси-сервера CORS для API-серверов 4chan. Вы можете запустить один контейнер nginx, в котором размещается приложение и который действует как прокси-сервер CORS, что делает его очень компактным и простым в развертывании.
Размер приложения составляет около 38.43 KB
включая все ресурсы HTML, JS и CSS. С помощью Gzip он уменьшается до 14 KB
. Сборка осуществляется на основе системы сборки Vite, а типы реализуются в коде с помощью TypeScript.
Изображения тредов загружаются всякий раз, когда они прокручиваются в окне браузера, чтобы исключить спам-вызовы API к API 4chan. Прокси-сервер nginx CORS также присоединяет к каждому запросу заголовки X-Forwarded-For
и X-Real-IP
чтобы указать истинное происхождение запроса.
Чтобы запустить Treechan, вам понадобятся Docker и Git. NodeJS не требуется устанавливать на хосте, поскольку для вашего удобства процесс сборки полностью контейнеризирован.
Чтобы убедиться, что у вас установлен Docker:
$ docker -v
Docker version 20.10.21, build baeda1f82a
$ git -v
git version 2.38.1
Версия Docker и git не обязательно должна совпадать, просто убедитесь, что у вас есть что-то свежее.
Теперь вам нужно клонировать репозиторий с помощью Git. Это важно для запуска сценария сборки, не загружайте zip-файл с GitHub!
$ git clone --depth=1 https://github.com/xxcodianxx/treechan.git
Теперь вы можете просто использовать прилагаемый скрипт run.sh
, и он установит и запустит Treechan за вас.
$ ./run.sh
Если не считать времени загрузки по сети, установка происходит очень быстро (около 2 секунд).
По умолчанию сервер работает через порт 8080
, но это можно изменить в верхней части файла ./run.sh
.
Поздравляем, теперь у вас работает Treechan. Если вы сделали это на своем локальном компьютере, теперь вы можете посетить http://localhost:8080 и наслаждаться.
Если вы сделали это на сервере, просто замените localhost
на IP-адрес вашего сервера. Не забудьте перенаправить порт 8080
или выбранный вами порт.