Перейти к содержимому
Strata
Войти

Презентации

Создавайте, редактируйте и показывайте презентации в 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 -->

![The team on launch day](launch-day.png)

```css name=deckTheme extends=strata-light
:root { --deck-accent: #1d4ed8; }
```
layoutfence
titleslide layout=title
statementslide layout=statement
bulletsslide layout=bullets
big-numberslide layout=big-number
two-columnslide layout=two-column
imageslide 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;
}
```
tokenstrata-light
--deck-bg#ffffff
--deck-fg#111318
--deck-accent#2563eb
--deck-muted#6b7280
--deck-font-headingsystem-ui, sans-serif
--deck-font-bodysystem-ui, sans-serif
--deck-padding6cqw
--deck-radius12px
extends--deck-bg--deck-fg--deck-accent--deck-muted--deck-font-heading
strata-light#ffffff#111318#2563eb#6b7280system-ui, sans-serif
strata-dark#0b1020#f4f6fb#5cc8ff#8b93a7system-ui, sans-serif
strata-editorial#faf7f2#1f1b16#b4532a#756c61Georgia, serif
strata-mono#111111#e8e8e8#c8ff00#8a8a8aui-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-importantCSS темы содержит !important, который удаляется. Уберите его и используйте описанный каскад.presentation-themes
theme-oversizeCSS темы превышает 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, сохраняйте проверенное происхождение и сообщайте, что темы и скопированные данные являются снимками. Наличие этого раздела документации не включает процедуру обновления. Обновляйте копию только через явно запрошенную и проверенную правку.