Plank help · updated 2026-10-29
Как поправить существующую презентацию: маршрут
Маршрут правки презентации, которая уже есть: найти её, скопировать в её формате, изменить только названные слайды и отдать, только когда diff из plank_html_edit.py завершился с кодом 0. HTML (включая Bundled Page), .pptx и PDF.
Agents: fetch the raw markdown of this page at /ru/help/deck-edit.md
Как поправить существующую презентацию: маршрут
Весь маршрут одним блоком. Всё ниже — пояснения к нему.
mkdir -p scripts/deck
curl -sSfL -o scripts/deck/plank_html_edit.py https://plank.md/help/assets/plank_html_edit.py
python3 scripts/deck/plank_html_edit.py inventory "Sales/Их презентация.html"
python3 scripts/deck/plank_html_edit.py copy "Sales/Их презентация.html" "Sales/Новая.html"
python3 scripts/deck/plank_html_edit.py apply "Sales/Новая.html" scripts/deck/edits.json
python3 scripts/deck/plank_html_edit.py diff "Sales/Их презентация.html" "Sales/Новая.html" # код возврата 0
Это маршрут всегда, когда человек указывает на презентацию, которая уже есть — «на основе наших презентаций», «такую же», «как наша», «переделай под», «поправь презентацию», «возьми нашу и поменяй». Вы ПРАВИТЕ их файл, а не собираете новый. Сборка — это Как собрать презентацию: маршрут, и здесь это не та страница, даже если в просьбе есть отрасль, клиент или новый слайд. Сначала не спрашивайте: найдите презентацию и начинайте.
1. Найдите ту самую презентацию
Папка, которую назвал человек, важнее index.md — он может устареть. Никогда не начинайте с Архив/, old/ или резервной копии, если о них не сказано. Если в названной папке несколько презентаций, возьмите ближайшую к просьбе. В первой строке ответа скажите, с какого файла начали.
2. Скопируйте; оригинал не трогайте
copy не перезаписывает файлы. Копируйте ОДИН раз, с оригинала человека; каждая следующая правка в этом разговоре — «ещё добавь цену» — это apply к той же копии, а не вторая копия. Копия лежит рядом с оригиналом и в ТОМ ЖЕ формате: HTML остаётся HTML, .pptx остаётся .pptx. Второй формат — только если попросили. Инструменты лежат в scripts/deck/, туда же — ваш edits.json и рендеры, а не в папку человека.
3. Меняйте только то, о чём просили
Адаптировать презентацию значит оставить её их презентацией — примерно девять слайдов из десяти без изменений. Меняйте названные слайды и добавляйте не больше одного-двух, о которых просят. Не «адаптируйте» под отрасль каждый слайд.
- Слайд, смысл которого меняется, переписывается ЦЕЛИКОМ — и заголовок, и тело:
{"slide": 5, "lines": [...]}заменяет все текстовые узлы по порядку. Никогда не ставьте новый заголовок над старым телом — именно из-за этого человек спросил «откуда это взялось?». - Имя, число, название:
{"slide": 1, "set": {"3": "…"}}меняет один узел по номеру изinventory. - Новый слайд:
{"duplicate": 5, "after": 5}, затем перепишите копию черезlines— останется собственная вёрстка презентации.
4. Отдавайте только при коде возврата 0 у diff
plank_html_edit.py diff (для .pptx — plank_deck_edit.py diff) показывает, какие слайды не изменились, изменены, добавлены или исчезли. Он завершается с кодом 1 — не готово —, если есть наполовину отредактированный слайд (новый заголовок, старые строки под ним), если изменено больше 4 слайдов человека или добавлено больше 2. Код 1 — не предупреждение для ответа, а незаконченная правка. Исправьте и запустите diff снова.
Поднимайте лимит, только если человек просил столько: --max-changed N, --max-added N. Если просили лёгкую правку одного слайда — «сделай акцент на …», — новый заголовок над прежним телом и есть просьба: передайте --keep-body N --because "<их слова>" только для этого слайда и повторите их слова в ответе. Никогда — для слайда, который не получилось переписать: такая правка не закончена. Если просьба правда требует больше лимитов — скажите об этом, а не делайте.
5. Посмотрите, потом отчитайтесь
Отрендерите копию и посмотрите каждый изменённый слайд через plank_look_at (HTML печатает Chromium: chrome-headless-shell --headless --print-to-pdf=…, затем pdftoppm -png; файлы — в scripts/deck/.qa/). Отчёт — словами человека: «Взял "Plank — Управление компанией"; изменил слайды 1 и 6, добавил слайд про заявки; остальные 9 без изменений.»
По форматам
HTML, в том числе «Bundled Page». Многие презентации здесь — экспорт «Bundled Page»: одна JSON-строка внутри <script type="__bundler/template"> рядом с мегабайтом шрифтов и картинок. Правьте её ТОЛЬКО инструментом из scripts/deck, скачанным с plank.md/help/assets/plank_html_edit.py.
Никаких sed, perl и регулярок по файлу и никакого самостоятельного перекодирования шаблона: json.dumps оставляет </script> как есть, скрипт страницы обрывается, и презентация перестаёт открываться. Инструмент перекодирует точно и отказывается сохранять шаблон, который не раскодируется.
PPTX. Используйте тулкит порта, скачанный в scripts/deck с plank.md/help/assets/plank_deck_edit.py.
Его вызовы: open_deck, inventory, replace_text для имени или числа, rewrite_slide(prs, i, lines) для слайда, смысл которого меняется, duplicate_slide, save под новым именем. Дальше тот же шлюз, что у HTML — отдавайте, только когда это завершилось с кодом 0:
python3 scripts/deck/plank_deck_edit.py diff theirs.pptx new.pptx
curl -sSfL -o scripts/deck/plank_deck_edit.py https://plank.md/help/assets/plank_deck_edit.py
curl -sSfL -o scripts/deck/plank_deck_qa.py https://plank.md/help/assets/plank_deck_qa.py
PDF. PDF — это экспорт, а не исходник. Если та же презентация есть в .pptx или HTML, правьте её и экспортируйте заново. Если есть только PDF — скажите об этом и попросите редактируемый оригинал; пока его нет, оставьте все нетронутые страницы байт в байт (pypdf) и замените только изменённые, отрендеренные в том же размере страницы.
Никогда не пишите эти файлы сами
scripts/deck/plank_html_edit.py, plank_deck_edit.py и plank_deck_qa.py берутся с plank.md/help/assets/ и больше ниоткуда. Если скачать не удалось — скажите об этом; не пишите модуль под таким именем.