Depot 42 · сервис
Комментарии к любой странице
Одна строка в HTML — и на странице появляется кнопка «Комментарий». Клиент и команда оставляют метки прямо на элементах, ведут ветки обсуждения и отмечают решённое. Подходит для прототипов, сайтов и стендов — для любой страницы, где можно добавить тег.
Попробуйте на этой странице: нажмите C или «Комментарий» внизу справа и кликните по любому абзацу. Это демо-проект, комментарии в нём видят все.
Как подключить
-
Заведите проект
Проект — отдельное пространство со своими комментариями и ключами. Другие проекты его не видят. Заводит владелец сервиса одной командой
python3 -I manage.py new <проект> "Название". Нужен проект — напишите Андрею. -
Добавьте тег перед
</body><script src="https://comments.depot42.com/widget.js" data-project="<проект>" defer></script>Виджет живёт в shadow DOM: стили страницы его не ломают, его стили не задевают страницу. Зависимостей нет.
-
Раздайте ссылки
Клиенту — обычный адрес страницы. Команде — тот же адрес с ключом:
manage.py link <проект> <адрес> teamкладёт ссылку в буфер обмена. Браузер запоминает ключ и сразу убирает его из адресной строки.
Кто что видит
Гость — по обычной ссылке
Клиент. Видит и пишет только комментарии с пометкой «видно клиенту».
Команда — по ссылке с #team=…
Видит всё, по умолчанию пишет внутренние комментарии, отмечает ветки решёнными.
Админ проекта — по ссылке с #admin=…
Всё, что команда, и ещё удаляет чужие комментарии.
Как приходят обновления
Виджет и API работают на этом сервере, а страницы подключают виджет ссылкой. Новая версия сервиса начинает работать на всех подключённых проектах сразу — браузеры подхватят её в течение 5 минут. В самих проектах ничего менять не нужно.
Поэтому подключайте виджет только тегом со ссылкой. Если скопировать widget.js в сборку проекта, копия обновляться не будет.
Адреса API не меняются между версиями: /api/<проект>/<страница>. Виджет можно заменить своим интерфейсом поверх того же API.
Настройки тега
data-project | Проект на сервере. Обязательно. |
|---|---|
data-proto | Id страницы. По умолчанию — имя файла без .html: /plan-v2.html → plan-v2. |
data-page | Публичный адрес страницы, если её открывают локальным файлом. Нужен для кнопок «Ссылка» и «Позвать коллегу». |
data-build | Версия страницы. По умолчанию — дата публикации файла. |
data-api | Другой сервер комментариев. По умолчанию — тот, откуда загружен виджет. |
Где код
Репозиторий github.com/Anddavydov/depot42-comments закрытый, доступ по приглашению — напишите Андрею. Внутри сервер, исходники виджета, 61 тест прав, утилита manage.py и инструкция по установке своей копии.
- Сервер — один файл на Python без зависимостей, база — SQLite.
- Ключи передаются заголовками, а не cookie: чужой сайт не сможет действовать от имени команды.
- Ключи и тексты комментариев в лог не попадают. Удалённое хранится в базе и восстанавливается.
- Уведомления о новых комментариях — в Telegram-чат проекта.