Презентации
Создавайте, редактируйте и показывайте презентации в Strata. Начните с пустой презентации, попросите Strata Agent подготовить черновик по исходным документам или импортируйте Markdown.
Создавайте презентации со своим ИИ-агентом.Создание презентации
Откройте «Презентации» в рабочем пространстве. Выберите создание новой презентации и введите название или поручите создание Strata Agent. Для черновика с ИИ опишите тему, аудиторию и цель; выберите объём, тему оформления и исходные документы. Перед запуском проверьте оценку расхода и лимит кредитов.
Переключайтесь между презентацией и документом, чтобы упорядочивать слайды или редактировать исходный текст и заметки. Добавляйте, дублируйте, перемещайте или исключайте слайды из показа и выбирайте тему. Запустите показ; режим докладчика содержит заметки, следующий слайд и таймер.
Начните документ с YAML между строками ---. Используйте presentation: true для настроек по умолчанию или структуру presentation, как в примере ниже. Допустимые значения aspect: "16:9", "16:10" и "4:3".
---
presentation:
aspect: "16:9"
---
# Отчёт совету директоров
## Результаты
```slide layout="bullets"
- Рост выручки
- Улучшение удержания клиентов
```
Объясните цифры аудитории.
Первый заголовок # задаёт обложку; каждый заголовок ## начинает слайд. Один заголовок создаёт слайд с тезисом. Добавьте блок slide с layout="bullets" для видимого маркированного списка или блок html для собственного оформления. Не объединяйте их на одном слайде. Текст вне визуального блока — это заметки докладчика, а не содержимое слайда.
Только первый заголовок # становится обложкой. Заголовки ### остаются внутри текущего слайда. Заголовок ##, начинающийся с Appendix без учёта регистра, завершает слайды; последующий материал относится к приложению.
От разговора к слайдам
Используйте strata-presentation, чтобы определить из разговора аудиторию, цель и последовательность обоснованных тезисов. Перед оформлением прочитайте исходные материалы и дизайн-систему компании. На каждом слайде разместите один заголовок, доказательства — в визуальном блоке, а текст выступления — в обычном тексте раздела. Сохраните через edit_document и перечитайте результат; проверьте доступный предпросмотр HTML и сообщите об ограничениях отображения.
Привязывайте каждую правку HTML к содержательному id, уникальному во всей презентации. Включайте этот id и в oldString, и в newString, заменяя ровно один текущий фрагмент с replaceAll=false. Это правило текстовой замены, а не API селекторов ID. Если совпадения нет или оно неоднозначно, перечитайте документ; не пытайтесь обойти проблему полной перезаписью. Подставьте в пример фактически полученный documentId. Предпочитайте небольшие правки с якорями: при replaceAll=false отсутствующее или неоднозначное совпадение отклоняется в находящейся в памяти реплике Yjs задачи ECS, обслуживающей запрос. Применяются правила сопоставления API, которые могут нормализовать кавычки, маркеры сносок и пробельные символы. Это не точное побайтовое сравнение и не распределённая операция compare-and-swap. Изменение, уже сохранённое другой задачей, могло ещё не попасть в эту реплику; устаревший якорь может совпасть до интеграции конкурирующих записей WAL при сохранении. Посимвольные правки затрагивают совпавший участок; правки между узлами или изменения блоков могут использовать преобразование в Markdown и обратно со структурной перезаписью. Ни один путь записи содержимого через MCP не принимает ожидаемую documentVersion и не гарантирует безопасность при одновременном редактировании. Если презентация активно редактируется, сообщите пользователю и договоритесь о паузе или подготовьте отдельную копию. Повторное чтение подтверждает наблюдаемый результат, а не безопасность при конкурирующих изменениях.
grammarVersion: 1Грамматика документа
Начальный блок YAML с presentation: true включает значения по умолчанию. Объект presentation принимает только aspect (16:9, 16:10, 4:3), transition (fade, none, slide), form (slides, whole-deck) и notes (presenter, none). Значения по умолчанию: 16:9, fade, slides, presenter. Ограничение YAML — 16 KiB. Тема не является настройкой frontmatter.
В формате slides первый H1 верхнего уровня — обложка; каждый H2 начинает слайд. H3–H6 и обычные блоки — заметки. Последующий H1 и его содержимое до следующего H2 становятся заметками предыдущего раздела; выдаётся duplicate-cover. Вступление относится к обложке, если она есть. Первый H2, текст которого после удаления крайних пробелов начинается с appendix без учёта регистра, завершает обработку слайдов, включая последующие заголовки.
Первый блок html в разделе — его визуальное содержимое; дополнительный HTML отмечается и не выбирается. Сочетание блоков html и slide исключает раздел. Без HTML первый блок slide выбирает layout=title, statement, bullets, big-number, two-column или image; отсутствующий/неверный макет вызывает unknown-layout и структурно заменяется на statement. Последующие блоки slide — заметки. Без обоих типов слайд содержит только заголовок. Layout допустим только у slide: name отбрасывается, а uses сохраняется — слайд layout=image называет своё изображение через uses, а слайд без объявления вызывает image-slide-without-source. Name объявляет источник данных; uses визуального HTML-блока перечисляет зависимости через запятую.
Привязывайте отображаемые числа к именованным блокам json/csv/tsv/yaml или таблицам, желательно в приложении. HTML объявляет uses, читает источники с тегом типа через strata.data.get и перерисовывается по strata:data. Декодируйте по kind и format, обрабатывая недоступные данные; см. interactive-html. Агрегируйте источники до 128 KiB каждый и 256 KiB суммарно. Задавайте ID редактируемым элементам и комментарий слайда внутри HTML-блока; data-deck-headline получает заголовок в активной оболочке. Сохраняйте читаемый запасной текст для обычного предпросмотра.
Создавайте, редактируйте и показывайте презентации в Strata. Начните с пустой презентации, попросите Strata Agent подготовить черновик по исходным документам или импортируйте Markdown.
---
presentation:
aspect: '16:9'
transition: fade
form: slides
notes: presenter
---
# Launch
```slide layout=title
A smaller first release
Priya Raman, March
```
## Focus
```slide layout=bullets
What ships first:
- One workspace
- One integration
- Nothing else
```
Say the internal negotiation out loud; this paragraph stays a presenter note.
## The room
```slide layout=image uses=launchPhoto
Launch day, Oslo
```
## Adoption
```html
<!-- slide: adoption -->
<main id="s03-adoption" style="padding:var(--deck-padding)">
<h1 class="deck-title" data-deck-headline>Adoption</h1>
<p id="s03-rationale">A smaller release gives us a clear learning signal.</p>
</main>
```
## Appendix
<!-- strata:name=launchPhoto -->

```css name=deckTheme extends=strata-light
:root { --deck-accent: #1d4ed8; }
```layout | fence |
|---|---|
title | slide layout=title |
statement | slide layout=statement |
bullets | slide layout=bullets |
big-number | slide layout=big-number |
two-column | slide layout=two-column |
image | slide layout=image uses="hero" |
Дизайн-системы и темы компании
Найдите и прочитайте дизайн-систему компании, затем скопируйте её CSS в единственный блок css name=theme. Если известны реальные ULID документа и десятичная версия, укажите их вместе в source и sourceVersion; для происхождения нужны оба поля. Сохраните существующий locked=true. Копия — локальное содержимое: разрешение темы никогда не загружает и не обновляет источник. Если тема компании недоступна, начните со strata-light.
Для файлов Claude Design, переменных Figma, Tailwind или брендбука сопоставьте фон, текст, акцент, второстепенный текст, два набора шрифтов, отступ и радиус с восемью токенами. Изменения для конкретной презентации размещайте в deckTheme. Встраивайте только разрешённые шрифты через URL data:, указывая системные альтернативы; сохраняйте нужные глифы и проверяйте размер CSS после кодирования относительно лимита 256 KiB. Сообщайте о приблизительных цветах и замене шрифтов.
Пять слоёв в порядке возрастания приоритета: deck-base, deck-strata, deck-company, deck-deck и deck-slide; перед ними идёт preview-base. Для локальных изменений используйте css name=deckTheme. Его extends имеет приоритет над extends темы компании, затем используется strata-light. Встроенные темы: strata-light, strata-dark, strata-editorial и strata-mono. Неизвестные имена вызывают сообщение и переход к запасной теме. Встроенные стили следуют обычному каскаду CSS.
Задайте все восемь токенов компании, показанных ниже, в простом правиле :root верхнего уровня. Токены в html, body, смешанных селекторах или вложенных правилах @media/@layer не читаются и вызывают theme-token-outside-root. На слайдах используйте var(--deck-...). CSS должен укладываться в 256 KiB, иметь сбалансированные скобки и не содержать !important либо внешние импорты/URL; ресурсы data: разрешены. Контраст текста и фона должен быть не менее 4.5:1; неподдерживаемые выражения цвета вызывают сообщение о неизвестном контрасте. Дублирующиеся имена тем отключают соответствующий слой. Блокировка компании сообщает о переопределении токенов презентацией, но не мешает им получить приоритет.
```css name=theme extends=strata-light
:root {
--deck-bg: #ffffff;
--deck-fg: #111318;
--deck-accent: #1d4ed8;
--deck-muted: #586174;
--deck-font-heading: system-ui, sans-serif;
--deck-font-body: system-ui, sans-serif;
--deck-padding: 6cqw;
--deck-radius: 12px;
}
```token | strata-light |
|---|---|
--deck-bg | #ffffff |
--deck-fg | #111318 |
--deck-accent | #2563eb |
--deck-muted | #6b7280 |
--deck-font-heading | system-ui, sans-serif |
--deck-font-body | system-ui, sans-serif |
--deck-padding | 6cqw |
--deck-radius | 12px |
extends | --deck-bg | --deck-fg | --deck-accent | --deck-muted | --deck-font-heading |
|---|---|---|---|---|---|
strata-light | #ffffff | #111318 | #2563eb | #6b7280 | system-ui, sans-serif |
strata-dark | #0b1020 | #f4f6fb | #5cc8ff | #8b93a7 | system-ui, sans-serif |
strata-editorial | #faf7f2 | #1f1b16 | #b4532a | #756c61 | Georgia, serif |
strata-mono | #111111 | #e8e8e8 | #c8ff00 | #8a8a8a | ui-monospace, monospace |
Общий доступ и экспорт
Владельцы и редакторы читают полный документ. Читатели, комментаторы и пользователи с правом только предлагать изменения получают версию с принятыми заголовками и визуальными блоками, без обычных заметок. Размещайте закрытый текст выступления вне визуальных блоков. notes: none определяет видимость панели, а не конфиденциальность. Удаление или отключение presentation превращает документ в обычный, и читатели могут получить весь его текст.
Версия для читателей также сохраняет CSS тем, именованные блоки JSON/CSV/TSV/YAML или таблицы, объявленные через uses принятых визуальных блоков, и настройки presentation. Ресурсы сохраняются даже из приложения; в формате slides сохраняется и его заголовок. Блоки копируются целиком: скрытый HTML, комментарии, скрипты и неиспользуемые поля данных могут раскрыть закрытую информацию. Обычный текст приложения и другие ключи frontmatter исключаются.
При form: whole-deck первый HTML-блок верхнего уровня перед приложением представляет всю презентацию; заголовки не создают слайды. Общая оболочка может управлять ею через написанный автором strata.deck.registerAdapter с count(), current() и goTo(index). Заметки внутри HTML удалить нельзя: notesPrivacy имеет значение notStripped, а публикация требует явного подтверждения. Храните конфиденциальные заметки вне HTML.
Экспортируйте в PDF или автономный HTML либо попросите подключённого помощника использовать export_presentation. Ссылки действуют пятнадцать минут. PDF расходует квоту снимков владельца документа; HTML не учитывается. Заметки докладчика удаляются из слайдов. Экспорт HTML whole-deck отклоняется, поскольку надёжное удаление приватных заметок невозможно. Экспорт PPTX не поддерживается.
Импорт существующей презентации
Сохраняйте исходные файлы и проверяйте их формат. Для Markdown в UTF-8 измерьте число байтов, вызовите edit_document с action=presignUpload, contentLength и documentId либо title/folderId, отправьте точные байты через PUT со всеми полученными requiredHeaders, затем вызовите finalizeUpload с uploadId. После завершения перечитайте документ. Адаптируйте HTML-презентации в копию Markdown whole-deck и проверьте зависимости песочницы и внутренние заметки. Загрузка офисных файлов преобразует PPTX/PDF/DOCX в обычные документы и не гарантирует точного воспроизведения слайдов. Не отправляйте эти двоичные файлы через загрузку Markdown. Указание существующего documentId запрашивает полную замену при finalizeUpload; PUT лишь временно сохраняет байты. Ни finalizeUpload, ни action=write не принимают ожидаемую версию, поэтому замена может перезаписать изменения соавторов без ошибки конфликта версий. Предпочитайте небольшие вызовы edit с уникальными якорями и replaceAll=false: они проверяют только реплику задачи, обслуживающей запрос, а правки блоков могут использовать структурную перезапись. Ни один путь записи содержимого через MCP не гарантирует безопасность при одновременном редактировании. Если презентация, судя по доступным сведениям, активно редактируется, сообщите пользователю и договоритесь о паузе или подготовьте отдельную копию. Если замена неизбежна, перечитайте документ непосредственно перед финализацией, сравните documentVersion с версией, использованной при подготовке файла, и отмените операцию, если версия изменилась. Неизменная версия сужает окно гонки, но не закрывает его.
Разделение HTML-презентации выполняет агент; специального инструмента импорта нет. Нужны пять проверок: один раздел на слайд; локальные стили без внешних таблиц; доступ скриптов к DOM только своего раздела, кроме установленной навигации; самодостаточные ресурсы; заголовок у каждого раздела. Если изоляцию скрипта подтвердить нельзя, сохраните whole-deck и назовите скрипт. При запрошенном и допустимом разделении создайте отдельный документ, сделайте первый раздел обложкой H1, сохраните ID и разделы и сообщите, что точность отображения не проверена.
Проверка и исправление
Перед показом или экспортом запустите проверку. validate_presentation проверяет компоновку, контраст, привязки данных, структуру и темы и сохраняет снимки. Один вызов проверяет не более двух слайдов при одном размере области просмотра; продолжайте с next, пока status равен more, не меняя выбор. Расходуется один снимок на слайд и размер, без повторного списания для того же ключа рендеринга в расчётном периоде. Изучите результаты, исправьте исходный текст и повторите проверку.
{
"action": "edit",
"documentId": "<documentId>",
"oldString": "<strong id=\"s02-target\">84%</strong>",
"newString": "<strong id=\"s02-target\">87%</strong>",
"replaceAll": false
}code | Причина и исправление | strataDocumentation |
|---|---|---|
duplicate-cover | Повторный H1 начинает заметки, а не новую обложку. Оставьте один H1; для другого слайда используйте H2. | presentation-grammar |
extra-visual | Дополнительный HTML-блок визуализации пропускается. Перенесите его на отдельный слайд или объедините визуализацию. | presentation-grammar |
slide-and-visual | Блоки HTML и slide находятся в одном разделе, поэтому он исключается. Выберите один тип визуального блока. | presentation-grammar |
unknown-layout | У первого блока slide нет допустимого layout. Укажите одно из пяти перечисленных имён. | presentation-grammar |
image-slide-without-source | Блок slide с layout=image не объявляет источник. Добавьте uses с именем изображения из этого документа или выберите его в редакторе презентации. | presentation-grammar |
unknown-theme | Выбранное имя extends неизвестно. Выберите встроенную тему; сейчас используется резервная strata-light. | presentation-themes |
duplicate-theme | Несколько блоков theme или deckTheme отключают соответствующий слой. Объедините их в один блок каждого типа. | presentation-themes |
theme-missing-token | В теме компании отсутствует обязательный токен. Определите все восемь в простом правиле :root верхнего уровня. | presentation-themes |
theme-contrast | Контраст вычисленных цветов текста и фона ниже 4,5:1. Скорректируйте пару цветов до этого соотношения. | presentation-themes |
theme-contrast-unknown | Цвет текста или фона невозможно оценить. Используйте трёх- или шестизначный шестнадцатеричный литерал либо rgb() с целыми числами. | presentation-themes |
theme-important | CSS темы содержит !important, который удаляется. Уберите его и используйте описанный каскад. | presentation-themes |
theme-oversize | CSS темы превышает 256 KiB и пропускается. Уменьшите размер в байтах UTF-8, включая встроенные ресурсы. | presentation-themes |
theme-external-url | Обнаружен @import или URL без data:. Удалите его либо встройте разрешённый ресурс как data:. | presentation-themes |
theme-unbalanced | Скобки темы не сбалансированы до или после нормализации; слой пропускается. Исправьте синтаксис CSS. | presentation-themes |
theme-token-outside-root | Токен презентации объявлен вне простого правила :root верхнего уровня. Перенесите объявление в :root. | presentation-themes |
locked-override | Токен презентации переопределяет заблокированную тему компании. Удалите переопределение или согласуйте изменение исходной темы; блокировка лишь сообщает об этом. | presentation-themes |
Поддержание презентации в актуальном состоянии
Автоматическое обновление презентаций недоступно. list_company_themes, get_company_theme и контракт target/sourceRef/baseVersion для процедур обновления не реализованы. Копируйте темы через find и read_document, сохраняйте проверенное происхождение и сообщайте, что темы и скопированные данные являются снимками. Наличие этого раздела документации не включает процедуру обновления. Обновляйте копию только через явно запрошенную и проверенную правку.