2024-11-03 14:32:04 +03:00
|
|
|
|
# habraview
|
|
|
|
|
|
|
|
|
|
Спартанский микрофронтенд habr.com для возможности архивации страниц
|
|
|
|
|
инструментами вроде ArchiveBox и т.п.
|
|
|
|
|
|
|
|
|
|
Современные фронтенды к Хабру не позволяют сохранить содержимое страницы
|
|
|
|
|
без искажений и в полном объёме. Всё обмазано JavaScript с ленивой загрузкой
|
|
|
|
|
изображений, отчего картинки на сохранённой странице только заблюренные, а
|
|
|
|
|
возможность архивации комментариев полностью отсутствует. Страницы
|
|
|
|
|
альтернативного фронтенда geekr.vercel.app вовсе непригодны для архивации.
|
|
|
|
|
Поэтому появился этот костыль.
|
|
|
|
|
|
|
|
|
|
Фичи:
|
|
|
|
|
|
|
|
|
|
* Умеет отображать страницу в минимальном сносном CSS.
|
|
|
|
|
* Отображает все комментарии (отрисовка дерева не удалась, но и так сойдёт).
|
|
|
|
|
* Решает проблему с заблюренными изображениями.
|
|
|
|
|
|
2024-11-03 16:59:49 +03:00
|
|
|
|
Работает только с `article`, то есть новостные посты и статьи из `sandbox`
|
|
|
|
|
работать не будут.
|
2024-11-03 14:32:04 +03:00
|
|
|
|
|
|
|
|
|
# Как пользоваться
|
|
|
|
|
|
|
|
|
|
`habraview` это веб-приложение. Просто запускаем файл:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./habraview
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Приложение будет по умолчанию будет слушать на 8888 порту. Чтобы получить
|
|
|
|
|
страницу, открываем в брайзере:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
http://localhost:8888?url=https://habr.com/ru/articles/853062/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Адрес статьи на Хабре можно передать целиком как значение quey-параметра `url`
|
|
|
|
|
или как `id`:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
http://localhost:8888?id=853062
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Теперь на эту страницу можно натравить архиватор веб-страниц.
|
|
|
|
|
|
|
|
|
|
# Компиляция
|
|
|
|
|
|
|
|
|
|
Нужны компиляторы `gcc` и [v](https://vlang.io):
|
|
|
|
|
|
|
|
|
|
```
|
2024-11-03 16:55:43 +03:00
|
|
|
|
make
|
2024-11-03 14:32:04 +03:00
|
|
|
|
```
|
2024-11-03 16:59:49 +03:00
|
|
|
|
|
|
|
|
|
# Docker
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker build -t habraview:latest .
|
|
|
|
|
```
|