Словами самого skill
md-slides преобразует markdown-презентацию в единый HTML-файл, работающий в любом браузере. Презентация — это слайды, разделённые границами --- HR или заголовками # H1, с необязательными блоками заметок докладчика <!-- notes: ... -->. Конвейер из трёх Python-скриптов stdlib: slide_splitter.py, presenter_notes_parser.py, deck_html_renderer.py.
Результат включает навигацию с клавиатуры, глубокие ссылки через URL-hash, индикатор прогресса и счётчик слайдов, режим докладчика с часами и предпросмотром следующего слайда, а также таблицу стилей для печати с экспортом в PDF по одному слайду на страницу. Skill повторно использует парсер markdown из md-document и считывает токены дизайн-системы через config_loader.py. Он отказывается обрабатывать входные данные без чётких границ слайдов, презентации из 1 слайда, файлы менее 100 строк и презентации, не проходящие 50%-ное покрытие --strict-notes.
Что он выдаёт
- Отрендеренная HTML-презентация, записанная как deck-{slug}.html в разрешённую директорию вывода по умолчанию, с добавлением -2, -3 и так далее при коллизиях.
- Промежуточные JSON-файлы, содержащие разделённые слайды, а затем слайды с прикреплёнными к ним заметками.
- PDF с одним слайдом на странице, созданный через таблицу стилей для печати путём печати из браузера.
Как это работает
- 01Разбиение презентации на упорядоченные слайды
slide_splitter.py считывает исходный markdown и разбивает его по строкам --- HR или заголовкам H1, по умолчанию автоматически определяя стиль границ, и записывает упорядоченный список слайдов.
- 02Прикрепление заметок докладчика к каждому слайду
presenter_notes_parser.py сканирует каждый слайд на наличие блоков заметок и прикрепляет их к этому слайду, чтобы режиму докладчика было что показать на панели справа.
- 03Рендеринг единого HTML-файла презентации
deck_html_renderer.py объединяет слайды с токенами дизайн-системы и формирует презентацию, принимая заголовок и путь вывода в командной строке.
- 04Применение токенов дизайн-системы
Двенадцать брендовых CSS custom properties берутся из дизайн-системы, а design_style меняет плотность макетов слайдов.
- 05Отказ от входных данных, которые не являются презентациями
Skill завершает работу вместо преобразования, если во входных данных нет чётких границ слайдов, если результатом стал бы один слайд, либо если проверка покрытия заметками не пройдена в режиме --strict-notes.