Доски и пометки - major1ink/Beacon-Table GitHub Wiki

На столе можно рисовать в двух местах: прямо на карте и на отдельных досках.

Пометки рисуют поверх карты, они нужны в бою: показать, куда идём, обвести дверь, подписать ловушку. Пометки привязаны к сцене и стираются одной кнопкой.

Доски — бесконечные холсты рядом с заметками, к карте они не привязаны. На них удобно вести схему расследования, связи между NPC или наброски карты мира. Доски не зависят от смены сцены и переносятся вместе с миром.

Пометки на сцене

Инструмент «Пометки» есть в боковой колонке и у ведущего, и у игрока. Рисовать можно кистью, линией, стрелкой, прямоугольником, кругом и текстом. Ластик стирает по одной пометке, а не весь слой. На планшете это единственный способ стереть пометку, правой кнопки там нет.

Карта с нарисованной стрелкой и рамкой, панель инструментов рисования справа

Рисование и правка

Если панель открыта, но фигура не выбрана, включён режим правки. Нарисованное можно двигать, тянуть за точки, менять цвет и толщину, а текст переписать двойным кликом.

Когда вы выбираете фигуру, включается режим рисования и правка выключается. Повторное нажатие на ту же фигуру возвращает к правке.

Режимы разделены намеренно. Пока они были смешаны, попытка подвинуть нарисованное превращалась в новый штрих поверх.

Кто может рисовать

У каждого участника свой цвет, ведущий видит, кто что нарисовал.

Ведущий правит и стирает любые пометки, может очистить слой целиком и скрыть рисунки игроков. Игрок правит только свои пометки, и только если ведущий включил «Разрешить игрокам рисовать пометки» в разделе «Настройки» на вкладке «Стол».

Пометки хранятся вместе со сценой, не пропадают после перезагрузки страницы и видны на экране трансляции.

На планшете

Одним пальцем рисуют, двумя двигают карту и меняют масштаб. Токены при этом перетаскиваются как обычно.

Доски

Панель «Доски» находится в той же боковой колонке. Завести доску может и ведущий, и игрок.

Панель «Доски»: кнопки «Новая доска» и «Импорт из Excalidraw»

Доска открывается в отдельном плавающем окне, как журнал. Её можно держать на втором мониторе и не уходить со стола.

Права на доску

Уровни доступа те же, что у журнала, и раздаются так же: уровень по умолчанию на весь стол и отдельные выдачи конкретным игрокам. Персональная выдача перебивает общую, если она выше.

Уровень Что видит игрок
Нет доступа Доски не видно в списке
Только название Доска есть в списке, содержимое закрыто
Чтение Холст виден, но рисовать нельзя, в шапке значок «только чтение»
Чтение и правка Полный доступ к рисованию

Диалог доступа к доске: уровень для всех и персональные выдачи по аккаунтам

Переименовать доску, раздать права и удалить её могут только автор и ведущий. Доска с открытым уровнем общая для стола, с закрытым личная. Тех и других может быть сколько угодно.

Совместная правка

На одной доске могут рисовать несколько человек одновременно. Видны курсоры других участников с подписью имени и то, что каждый из них сейчас выделил. В шапке показан список тех, кто сейчас на доске.

Та же доска глазами игрока: курсор соседа подписан именем

Правки передаются по одному элементу и сводятся на сервере, поэтому порядок, в котором они приходят, не имеет значения: у всех получается один и тот же холст. На диск доску пишет только сервер, по таймеру и обязательно в момент, когда доску закрывает последний участник.

Совместимость с Obsidian

Редактор доски — Excalidraw, тот же, что в плагине для Obsidian. Файл доски Beacon Table одновременно служит файлом плагина Excalidraw, конвертировать его не нужно.

В шапке файла лежат и ключи стола (название, автор, права), и ключи плагина (excalidraw-plugin: parsed, tags: [excalidraw]). Obsidian открывает такой файл редактором рисунка, а стол читает из него права. Работает и обратное: доску, нарисованную в ваулте, стол открывает как свою.

Файлы досок лежат в data/companies/<мир>/boards/, по одному файлу на доску.

Рисунок внутри файла хранится несжатым блоком ```json. Плагин такие файлы открывает (сжатие у него включается тумблером в настройках), зато файл можно прочитать глазами и нормально сравнивать в git.

Что стол делает с незнакомыми данными

Сохраняет всё. Незнакомые поля элементов, привязки стрелок, группы, служебное состояние редактора и разделы плагина читаются как есть и возвращаются в файл без изменений. Если вы добавили в ваулте то, чего стол не знает, оно не пропадёт после правки доски за столом.

Как импортировать доски из ваулта

Импорт открывается кнопкой «Импорт из Excalidraw» в панели досок.

Окно импорта: файлы досок, папка ваулта и галочки

Искать нужные доске файлы вручную не придётся: доска сама перечисляет картинки в разделе ## Embedded Files и заметки в ссылках элементов. Вам остаётся показать, где их искать.

  1. В поле «Файлы досок» выберите один или несколько файлов .excalidraw.md (или просто .excalidraw). Название доски берётся из имени файла.
  2. В поле «Папка ваулта» укажите папку. Это необязательно, но без неё не перенесутся картинки и заметки. Можно указать и папку поменьше, если всё нужное лежит в ней.
  3. Проверьте галочки. «Перенести картинки» включена по умолчанию, «Завести заметки, на которые ссылается доска» выключена.

В конце импорт покажет отчёт: сколько досок перенесено и чего не нашлось. Так видно, если что-то не перенеслось.

Доска, перенесённая из ваулта, со всеми картинками и врезками

Почему браузер спрашивает про всю папку

Когда вы указываете папку, браузер просит разрешение на всю папку и называет, сколько в ней файлов. На большом ваулте это число выглядит пугающе, но это формулировка браузера. Стол читает и отправляет только те файлы, которые доска назвала по имени, остальные не покидают ваш компьютер.

Какие заметки заводятся

Импорт заводит только заметки, названные прямо на доске, без рекурсии, иначе одна ссылка утянула бы половину ваулта. И только если записи с таким названием в журнале ещё нет.

Доска связывается с записью по названию, поэтому уже существующая запись подхватится сама, а повторный импорт не наплодит дублей. Шапка YAML из заметки снимается, название записи берётся из имени файла.

Что импорт не переносит

Встроенные заметки и объекты, которые стол не умеет отрисовать, сохранятся в файле, но на доске останутся пустыми рамками.

Импорт работает в одну сторону, обратной выгрузки доски в ваулт нет. Она и не нужна: файл уже лежит в нужном формате, его можно просто скопировать.

Связь с журналом

Выделите один элемент, и в шапке доски появится кнопка «Связать с журналом». Нажмите её и выберите запись из списка.

Ссылка хранится в формате Obsidian, [[Название]], как у плагина. Поэтому она работает с обеих сторон: в ваулте ведёт на заметку, за столом на запись журнала.

У такого выбора есть обратная сторона: связь идёт по названию, а не по идентификатору. Если переименовать запись, ссылка перестанет работать. Зато ссылка что-то значит и вне стола.

Ссылка и врезка

Обычная ссылка добавляет элементу значок, по клику открывается запись в окне журнала. Фигура заодно подписывается названием записи, чтобы на холсте не остался безымянный кружок. Форма фигуры сохраняется.

Если при связывании включить галочку «Показывать текст записи прямо на доске», получится врезка. Фигура превращается в рамку: название над левым верхним углом, внутри текст записи с прокруткой и форматированием. Собственной формы у врезки не остаётся, круг тоже станет рамкой.

Текст врезки в файле доски не хранится. Он берётся из журнала и перечитывается, когда вы возвращаетесь в окно доски. Поправили запись, и на доске сразу новый текст, устаревшей копии не будет.

Картинки

Картинки вставляются как обычно: перетаскиванием, из буфера обмена или кнопкой инструмента. Ещё есть кнопка «Картинка» в шапке доски, она показывает уже загруженные картинки сеткой миниатюр.

Сам файл попадает в загрузки стола (uploads/companies/<мир>/boards/), а в файле доски остаётся только адрес. Так сделано намеренно: Excalidraw по умолчанию кладёт картинку прямо в файл, и доска с парой фотографий весила бы мегабайты.

Одна и та же картинка, вставленная из библиотеки дважды, хранится один раз.

Перенос и резервные копии

Доски входят в экспорт мира и попадают в .zip вместе со сценами, журналом и загрузками. При экспорте без аккаунтов привязка к владельцам удаляется, но ключи плагина и название остаются, и файл по-прежнему открывается как доска Excalidraw.

Отдельную доску можно просто скопировать файлом из data/companies/<мир>/boards/ в ваулт и обратно.

Чего пока нет

  • Нельзя править доску в ваулте, пока она открыта за столом. Файл могут менять и стол, и текстовый редактор, а следить за файлом с двумя источниками правок стол пока не умеет. Правьте доску в ваулте, когда за столом она закрыта.
  • Нет рисования «от руки» в чужих досках вне редактора. Экран трансляции доски не показывает, доска открывается окном только у того, кому она доступна.
  • Нет канбана поверх доски. Он в планах и будет работать на той же доске, а не отдельным инструментом.
⚠️ **GitHub.com Fallback** ⚠️