Комментарии 8
Сам искал нечто похожее, крайне заинтересовался этой библиотекой, но, к сожалению,
pip install elsie
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> lxml
Для меня остается большой загадкой почему в зависимостях компилируемый пакет.
OS: Arch Linux, Python: 3.11, Все upstream
Так, что как нибудь в следующий раз. Спасибо.
Тоже нахожусь в поиске. Нашелся опенсоурсный slidev на основе веб технологий. В бою не пробовал, но выглядит многообещающе. Слайды создаются из markdown. Есть подсветка синтаксиса, live coding, темы и стили, режим презентации, LaTeX, диаграммы, иконки, эмбеддинг vue компонентов и другое.
А по поводу elsie смущает, что нужно писать код на языке общего назначения и экспорт только в pdf? Выглядит не очень удобно. А как же интерактивность? Т.е. мне кажется это должен быть какой-то декларативный язык и при необходимости для задач анимации и реализации интерактивности была возможность делать вставки кода или на худой конец плагины.
Очень интересно, это получается есть возможность циклично создать всю презентацию из набора данных со своим оформлением? Как реализована подсветка кода и какие языки поддерживаются?
Создание презентаций не ограничивается управлением слайдами. Необходим комплексный инструмент, с возможностью создавать и редактировать изображения. Идеально, в этом плане, подходил МакромедиаФлеш. Если хотелось странного, ЯП присутствовал.
Для презентаций в PowerPoint есть killer feature - "режим докладчика" с комментариями и указкой. Увы, для pdf такой возможности нет, что делает использование Elsie гораздо менее удобным. Если бы был экспорт в pptx с возможностью добавления и управления комментариями, то было бы гораздо интереснее.
Относительно недавно нашел свежую систему разметки, весьма крутую альтернативу Теху, Typst. Очень рекомендую посмотреть тем, кому нужно какое-то кастомное оформление и крутые плюшки, голого Markdown не хватает, Tex муторный, а HTML слишком занудный.
Там как раз внутри можно писать код на полноценном скриптовом языке, близкому к чистому функциональному, и очень просто создавать штуки под себя. Там достаточно много крутых фич, например, set/show-правила (`set` позволяют в scope задавать параметры объектов, а show
— заменять их; комбинацией получается, например, show header: set text(color: blue)
для покраски заголовков в синий цвет; и там таких интересных комбинаций безумное количество).
Оно очень хорошо комбинируется (это один из главных design-принципов). Например, я могу рисовать произвольные картинки (или, например, вставить SVG-шку из файла) прямо внутри формулы.
Я до этого работал с Техом и Маркауном (собирал его pandoc-ом в Tex или revealjs), и мне Typst очень понравился простотой и настраиваемостью, по сравнению с теми двумя — код и сборка получается во многом красивее их обоих (не говоря уже о бесконечных плюшках в виде инкрементальной компиляции, вес компилятор порядка десятка мегабайт и хорошей надёжности благодаря Rust).
По сравнению с произвольным python-скриптом, конечно, возможностей может не хватать, взаимодействие с внешним миром — только чтение файлов (парсеры json, yml, csv, toml и тд. встроены в стандартную библиотеку), да и то хотят ограничить из соображений безопасности. Но если генерировать данные python-скриптом, а потом подгружать их, то как раз вроде разумное "разделение обязанностей" выходит. Хотя, безусловно, сильно зависит от задачи.
К сожалению, оно ещё сильно в бете, и генерировать умеет только pdf, но pdf-слайды вроде делаются достаточно неплохо. Надеюсь, что всё-таки реализуют экспорт в HTML, тогда, наверное, можно будет красиво генерировать и интерактивные презентации (пользовательские пакеты просто обязаны появиться).
Если будет время — надо будет написать статью про Typst, тут много чего нового, что можно пообсуждать.
Elsie: программируемые презентации