Plank help · updated 2026-09-18
Как собрать презентацию: маршрут
Маршрут сборки слайд-презентации на одной короткой странице: скачать сборщики в /workspace/scripts/deck/, положить туда же скрипт сборки, прогнать проверку перед выдачей и никогда не писать файлы с именами сборщиков самостоятельно.
Agents: fetch the raw markdown of this page at /ru/help/deck.md
Как собрать презентацию: маршрут
Весь маршрут одним блоком. Всё ниже — пояснения к нему.
mkdir -p /workspace/scripts/deck
curl -sSfL -o /workspace/scripts/deck/plank_deck.py https://plank.md/help/assets/plank_deck.py
curl -sSfL -o /workspace/scripts/deck/plank_deck_qa.py https://plank.md/help/assets/plank_deck_qa.py
# напишите /workspace/scripts/deck/build_<name>.py с `from plank_deck import *`
python3 /workspace/scripts/deck/build_<name>.py
python3 /workspace/scripts/deck/plank_deck_qa.py /workspace/<name>.pptx # код возврата должен быть 0
Маршрут сборки слайд-презентации от начала до конца. Фирменный стиль, примитивы слайдов и палитры — на длинной странице: Как Plank создаёт слайд-презентацию. Здесь — маршрут: взять сборщик, запустить, проверить, отдать.
1. Сборщики живут в /workspace/scripts/deck/
Скачайте plank.md/help/assets/plank_deck.py и plank.md/help/assets/plank_deck_qa.py командой curl -sSfL -o в /workspace/scripts/deck/ — всегда в этот каталог, а не в текущий: вызов bash не наследует рабочий каталог предыдущего вызова, поэтому голый curl -o plank_deck.py положит файл туда, где случайно начался этот один вызов, и следующий вызов его не найдёт.
mkdir -p /workspace/scripts/deck
curl -sSfL -o /workspace/scripts/deck/plank_deck.py https://plank.md/help/assets/plank_deck.py
curl -sSfL -o /workspace/scripts/deck/plank_deck_qa.py https://plank.md/help/assets/plank_deck_qa.py
Добавьте plank_slides.py для маршрута HTML → PDF и plank_deck_edit.py, когда правите презентацию, которую сверстал кто-то другой:
curl -sSfL -o /workspace/scripts/deck/plank_slides.py https://plank.md/help/assets/plank_slides.py
curl -sSfL -o /workspace/scripts/deck/plank_deck_edit.py https://plank.md/help/assets/plank_deck_edit.py
/workspace/scripts/deck/ — папка рабочего пространства: она переживает перезапуски, и её видят и личный, и общий чат. Повторяйте загрузку в начале каждой задачи с презентацией. Это дёшево, файл перезаписывается на месте, а копия трёхнедельной давности может устареть — не пропускайте шаг только потому, что файл вроде бы уже лежит.
2. Никогда не пишите эти файлы сами
plank_deck.py, plank_slides.py, plank_deck_edit.py и plank_deck_qa.py берутся с plank.md/help/assets/ и больше ниоткуда. Если импорт не прошёл — повторите загрузку в /workspace/scripts/deck/ и прочитайте ошибку.
Не пишите собственный файл с таким именем — ни минимальную версию «чтобы разблокироваться», ни внутри папки проекта. Самодельный модуль под нашим именем хуже, чем его отсутствие: import проходит, ничего не измеряется, и все последующие сборки в этом рабочем пространстве молча берут его вместо настоящего сборщика. Если скачать не удаётся — скажите об этом и соберите презентацию на голом python-pptx под другим именем файла.
3. Скрипт сборки кладите тоже в /workspace/scripts/deck/
Держите свой build_*.py рядом со сборщиком. Тогда импорт разрешается без PYTHONPATH и без cd, из любого вызова:
curl -sSfL -o /workspace/scripts/deck/plank_deck.py https://plank.md/help/assets/plank_deck.py
python3 /workspace/scripts/deck/build_acme_deck.py
# /workspace/scripts/deck/build_acme_deck.py
from plank_deck import *
prs = new_deck(theme="studio") # или theme="report" — светлая, печатная
set_brand(prs, meta=(("brand", "ACME"),), city="Алматы", year="2026")
cover(prs, "Складской учёт без планшета в руках", subtitle="Предложение на IV квартал")
save(prs, "/workspace/acme-proposal.pptx")
DeckError означает, что на слайде слишком много текста, а не что нужно уменьшить кегль. Вызов ничего не нарисовал и убирать за ним нечего: сократите текст, разбейте слайд или унесите подробности в заметки.
4. Прогоните проверку до того, как отдать файл
curl -sSfL -o /workspace/scripts/deck/plank_deck_qa.py https://plank.md/help/assets/plank_deck_qa.py
python3 /workspace/scripts/deck/plank_deck_qa.py /workspace/acme-proposal.pptx
Проверка plank_deck_qa.py скачивается туда же, в /workspace/scripts/deck/, с plank.md/help/assets/plank_deck_qa.py. Принимает .pptx и .html, рендерит презентацию, считывает, куда на самом деле легли слова, и заодно пишет PDF в <deck>-qa/. Код возврата ненулевой, если есть хоть одна ошибка.
Ошибка — это не предупреждение и не «известная особенность шаблона». Текст за пределами своей фигуры, текст за краем слайда, слова поверх слов, пустой слайд, не раскодировавшаяся картинка, нечитаемый текст поверх собственной фотографии — каждая из них означает, что читатель увидит поломку. Почините и прогоните проверку снова.
Если вы всё-таки отдаёте презентацию с ошибками — напишите об этом в сообщении, с числом и перечнем: «проверка показывает 45 ошибок — 16 переполнений текста и 24 заголовка с низким контрастом, — которые я не исправил». Отдать презентацию, забракованную проверкой, не назвав число, — ровно то, ради чего этот шаг существует.
5. Навык рабочего пространства не заменяет этот маршрут
Навык, шаблон или AGENTS.md в этом рабочем пространстве могут владеть внешним видом — фирменными цветами, шрифтом, тоном, составом слайдов. Для этого они и нужны, и вы им следуете.
Они не владеют инструментом. Если там прямо не назван другой сборщик и не объяснено почему, презентация всё равно собирается через /workspace/scripts/deck/plank_deck.py и всё равно проверяется через /workspace/scripts/deck/plank_deck_qa.py. Навык, который молчит о способе сборки, не выбирает другой маршрут — он просто не упомянул этот.
Какой формат
.pptx — когда презентацию будут перекраивать, перебрендировать или откроют в PowerPoint. HTML → PDF (plank_slides.py, которому нужен plank_deck.py рядом, в /workspace/scripts/deck/) — когда она должна выглядеть арт-дирекшн и править её никто не будет. Если запрос не отвечает на этот вопрос — спросите пользователя. Полный разбор и цена каждого формата: Как Plank создаёт слайд-презентацию.