Scribe

Студия

Локальная студия для просмотра контента, глобального поиска по документам, предпросмотра MDX, проверки переводов и безопасного удаления записей.

View as Markdown
scribe studio            # http://127.0.0.1:3600
scribe studio --port 4000

Студия представляет собой инструмент локальной разработки: HTML-рендеринг на сервере, никаких этапов сборки и авторизации, чтение вашего рабочего дерева файлов в реальном времени. Агенты и люди редактируют файлы, а студия служит местом, где человек видит и проверяет всё, чем управляет Scribe. Здесь можно просматривать коллекции, изучать записи с уже привязанными отношениями и превью медиафайлов, находить битые или отсутствующие картинки и отвечать на вопрос «где это используется?» перед внесением изменений. Здесь же находится панель переводов (покрытие, список задач, снапшоты для каждого документа; подробности см. в разделе переводы).

Браузер коллекций

По адресу /types/:typeId в боковой панели перечислены все типы контента с указанием количества записей и общим бейджем проблем. В таблице записей отображаются слаги, выбранные на основе схемы ключевые поля (перечисления и связи в виде чипов), индикаторы статуса перевода и бейджи валидации для каждой записи.

Фильтры полей строятся на основе интроспекции схемы и хранятся в параметрах запроса (поэтому URL-адресами легко делиться, а рендеринг происходит на сервере): поля перечислений превращаются в выпадающие списки, связи в выбор целевых слагов, логические значения в переключатели, а строки в поиск по вхождению.

Для любого типа с хотя бы одним полем медиафайла таблицу можно переключить в режим галереи. Каждая карточка в ней показывает главное изображение, слаг, ключевые поля и бейджи. Фильтры работают абсолютно так же. Это отличная панель QA для сгенерированных изображений.

Инспектор записей

На странице /types/:typeId/:enSlug поля отображаются в зависимости от их типа, определенного при интроспекции:

  • переводимые: значение с переключателем локалей (данные из хранилища); если для локали нет перевода, четко обозначается фолбэк на английский.
  • структурные: обычное значение.
  • связи: кликабельная ссылка на целевую запись; битые ссылки помечаются красным бейджем.
  • медиафайлы: превью изображения с итоговым URL, размером файла и разрешением; отсутствующий файл помечается красным.
  • Где используется: раздел обратных ссылок, в котором перечислены все записи (любого типа), ссылающиеся на текущую.
  • Тело документа (Body): переключатель Raw / Preview (?body=preview). В режиме Preview корректно рендерится Markdown и GFM, а неизвестные JSX-компоненты выводятся как подписанные блоки с пропсами; токены связей становятся кликабельными ссылками (битые визуально выделяются), а токены медиафайлов превращаются в реальные изображения. Для типов, поддерживающих маршрутизацию, появляется ссылка «посмотреть на сайте».

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

Браузер медиафайлов

Раздел /assets показывает сетку миниатюр для каждого управляемого корня. Для каждого медиафайла выводится превью, путь, размер, разрешение, а также список где используется. Этот список включает все записи и поля, ссылающиеся на файл, и вычисляется на лету в памяти среды выполнения. Специальные бейджи помечают неиспользуемые файлы (потенциальные сироты), отсутствующие (но на которые есть ссылки), слишком большие (превышающие значение maxKB в поле) и файлы с измененным форматом. Подробнее о системе полей медиафайлов можно узнать в разделе assets.

Глобальный поиск

Запрос /search?q= выполняет поиск подстроки без учета регистра по английским слагам, всем значениям frontmatter и сырому тексту MDX. Форма поиска есть на каждой странице. Результаты группируются по типам, для каждого совпадения подсвечивается фрагмент текста (максимум 20 результатов на тип).

Удаление записей

На панели инструментов инспектора есть выделенная красным цветом кнопка Delete. При нажатии открывается страница подтверждения, где подробно расписан весь план удаления (каскадные удаления, отвязки, затронутые медиафайлы, количество данных в хранилище по локалям и любые блокирующие факторы), а затем следует красная кнопка подтверждения (если удаление заблокировано, отображаются причины и кнопка недоступна). При подтверждении выполняется строго обозначенный план: исходный файл, его медиафайлы, сохраненные переводы и снапшоты, а также любые перезаписи для отвязки, и ничего лишнего. Режим onTargetDelete для связей (restrict, detach или cascade) и режим onDelete для медиафайлов определяют точные действия плана. Аналогичный план доступен в командной строке через scribe delete. Это единственный маршрут в студии, изменяющий данные, и он остается инструментом исключительно для локальной работы.

Чего студия не делает

Она не редактирует контент, не запускает процесс перевода, не загружает изображения, не требует авторизации и не выполняет полноценный рендеринг MDX-компонентов. Редактирование остается в вашем редакторе и git, а студия предназначена исключительно для проверки.

Студия · Scribe