Depot 42 · сервис

Комментарии к любой странице

Одна строка в HTML — и на странице появляется кнопка «Комментарий». Клиент и команда оставляют метки прямо на элементах, ведут ветки обсуждения и отмечают решённое. Подходит для прототипов, сайтов и стендов — для любой страницы, где можно добавить тег.

Попробуйте на этой странице: нажмите C или «Комментарий» внизу справа и кликните по любому абзацу. Это демо-проект, комментарии в нём видят все.

Как подключить

  1. Заведите проект

    Проект — отдельное пространство со своими комментариями и ключами. Другие проекты его не видят. Заводит владелец сервиса одной командой python3 -I manage.py new <проект> "Название". Нужен проект — напишите Андрею.

  2. Добавьте тег перед </body>

    <script src="https://comments.depot42.com/widget.js"
            data-project="<проект>" defer></script>

    Виджет живёт в shadow DOM: стили страницы его не ломают, его стили не задевают страницу. Зависимостей нет.

  3. Раздайте ссылки

    Клиенту — обычный адрес страницы. Команде — тот же адрес с ключом: manage.py link <проект> <адрес> team кладёт ссылку в буфер обмена. Браузер запоминает ключ и сразу убирает его из адресной строки.

Кто что видит

Гость — по обычной ссылке

Клиент. Видит и пишет только комментарии с пометкой «видно клиенту».

Команда — по ссылке с #team=…

Видит всё, по умолчанию пишет внутренние комментарии, отмечает ветки решёнными.

Админ проекта — по ссылке с #admin=…

Всё, что команда, и ещё удаляет чужие комментарии.

Как приходят обновления

Виджет и API работают на этом сервере, а страницы подключают виджет ссылкой. Новая версия сервиса начинает работать на всех подключённых проектах сразу — браузеры подхватят её в течение 5 минут. В самих проектах ничего менять не нужно.

Поэтому подключайте виджет только тегом со ссылкой. Если скопировать widget.js в сборку проекта, копия обновляться не будет.

Адреса API не меняются между версиями: /api/<проект>/<страница>. Виджет можно заменить своим интерфейсом поверх того же API.

Настройки тега

data-projectПроект на сервере. Обязательно.
data-protoId страницы. По умолчанию — имя файла без .html: /plan-v2.html → plan-v2.
data-pageПубличный адрес страницы, если её открывают локальным файлом. Нужен для кнопок «Ссылка» и «Позвать коллегу».
data-buildВерсия страницы. По умолчанию — дата публикации файла.
data-apiДругой сервер комментариев. По умолчанию — тот, откуда загружен виджет.

Где код

Репозиторий github.com/Anddavydov/depot42-comments закрытый, доступ по приглашению — напишите Андрею. Внутри сервер, исходники виджета, 61 тест прав, утилита manage.py и инструкция по установке своей копии.