Об этом проекте
Open Presentation Format (OPF) представляет собой переносимый, человекочитаемый формат документов JSON для презентаций. Данный репозиторий является каноническим источником спецификации формата, JSON-схем, пресетов каталогов, примеров, сгенерированных типов для разработчиков, инструментов локальной валидации и планов по созданию будущего инструментария для рендеринга, редактирования и конвертации. Формат опубликован в npm под именем @openpresentation/opf, на данный момент находится в стадии pre-stable (версии 0.x, с ожидаемыми критическими изменениями между минорными версиями до выхода 1.0) и распространяется под лицензией MIT.
Мотивация: .pptx представляет собой ZIP-архив с XML-файлами, которые сложно сравнивать (diff) людям, сложно надежно читать и записывать моделям, а также сложно отслеживать в git, так как каждое изменение выглядит как бинарный объект. OPF — это обычный JSON: он читаем в редакторе, может быть записан моделью без необходимости угадывать схему по примерам и отслеживается в системах контроля версий наряду с остальной работой. Заявленная цель состоит в том, чтобы позволить LLM участвовать в создании презентаций (структура повествования, фрейминг, анализ данных, предложения по графикам, доработка), а не бороться с тегами разметки.
Конвенции и именование: документы OPF представляют собой JSON-файлы с расширением *.opf.json (например, board-review.opf.json) для полных презентаций. Проект не рекомендует использовать расширение *.opf без .json, так как оно уже используется другими форматами документов и проектов. Название Open Presentation Format, а также схемы, каталоги, пакеты и локальный инструментарий могут использоваться сторонними инструментами для чтения, записи, валидации, рендеринга, конвертации и описания поддержки без принятия специфического брендинга продукта.
Что делает пакет JavaScript/TypeScript: он экспортирует канонические схемы и связанные записи каталогов из spec/, типизированный манифест файлов спецификаций для доступа к контенту спецификаций через пакет, сгенерированные типы TypeScript с Presentation в качестве основного типа, а также локальную валидацию для OPF JSON и записей каталогов. Валидация возвращает статус достоверности и рекомендательные предупреждения (например, о неизвестных ID каталогов). Доступны сфокусированные импорты подпутей для схем, каталогов, файлов спецификаций, валидатора и типов; необработанные JSON-схемы могут быть импортированы напрямую движками или резолверами. Пакет также предоставляет чистую геометрию композиции, чтобы нижестоящие библиотеки использовали единое поведение макета. Он явно не занимается рендерингом или парсингом .pptx, генерацией контента с помощью ИИ, получением удаленных каталогов, вызовами хостинг-API или предоставлением управляемых сервисов.
Локальный инструментарий: устанавливаемый CLI под лицензией MIT позволяет создавать, валидировать, редактировать и проверять OPF-файлы локально (например, создание презентации с заголовком, валидация файла или применение патча на месте). Команда CLI 0.5.0 устанавливает шесть навыков (skills) OPF в проект для ИИ-агентов, используя локальные копии, сохраняя существующие инструкции и отказываясь перезаписывать настроенные навыки, с документированными целями и предварительным тестированием. Документация охватывает навыки агентов, авторство с помощью LLM, динамическую композицию и проверку локальной экосистемы.
Особенности структуры репозитория: каноническая JSON-схема для документов Presentation верхнего уровня; концептуальное введение в модель документа, формы контента, разрешение каталогов и философию валидации; алгоритм приоритета дизайна (дизайн слайда, дизайн презентации, разрешенная тема, значения по умолчанию движка); справочники для авторов по полям верхнего уровня, определениям схем, сопутствующим схемам каталогов и полезным нагрузкам контента слайдов/регионов, включая графики и таблицы; руководства по техническим средствам и примеры галереи, ориентированные на сценарии; заметки по живому редактору о canvas в браузере, загрузке шрифтов и текущих ограничениях точности; а также руководство по выпуску для сопровождающих. Существует необязательный эталонный контракт OpenAPI для нижестоящих сервисов, которые решат предоставить OPF через HTTP, но OpenPresentation не хостит этот API.
Границы экосистемы: возможности рендеринга, редактирования и конвертации находятся в отдельных родственных репозиториях под лицензией MIT — opf-render (OPF в SVG/PNG/PDF), opf-editor (примитивы headless-редактора плюс опциональные UI-компоненты) и opf-pptx (чистый локальный импорт/экспорт PPTX). Они предоставляют только open-source примитивы; нижестоящие приложения сами отвечают за хостинг, аутентификацию, хранение, совместную работу, очереди, превью, аналитику, поддержку и UX рабочего процесса. Ожидается, что будущие пакеты на Python и Go будут следовать той же границе «local-first», предоставляя схемы, модели, каталоги, валидацию и доступные через пакет активы без обязательных сетевых вызовов или скрытой телеметрии. Доступные для чтения человеком пресеты каталогов, такие как макеты, темы, цветовые и шрифтовые схемы, типы графиков, нарративы, аудитории, цели, тональность, языки и социальные платформы, упоминаются через pptx.gallery.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.