13 августа 2020 года был анонсирован новый Jupyter Book – инструмент для создания интерактивных книг. Читайте в нашей статье о новых возможностях Jupyter Book для Data Scientist’а и Python-разработчика: переход с Jekyll на Sphinx, конвертирование в PDF, использование MyST, сборка книги за одну команду.
Jupyter Book
Jupyter Book — это проект с открытым исходным кодом для создания книг, веб-сайтов и документаций на основе материала с компьютерными вычислениями в Jupyter Notebook. Сам проект был выпущен еще в 2018 году, но в середине августа 2020 года состоялся релиз бета-версии с многочисленными изменениями. Сейчас Jupyter Book – это быстрое, легко устанавливаемое и простое в использовании средство разработки, пригодное для создания полноценных интерактивных книг.
7 основных возможностей Jupyter Book
Рассмотрим ключевые функции, который предлагает Jupyter Book:
- Материл для публикаций пишется на языке разметки (Markdown). Можно писать как на обычном языке разметки, так и на расширенном MyST(Markedly Structured Text), который поддерживает цитаты, перекрестные ссылки, математические формулы и уравнения, а также рисунки.
- Пишите прямо в Jupyter Notebook, что позволяет вставлять ячейки с кодом и результатом выполнения в книгу. Кроме того, MyST поддерживает синтаксис для написания кода на любом языке, поэтому вся книга может быть написана на языке разметки.
- Выполняйте код и кэшируйте его. Код в блокнотах в формате
.ipynb
или на языке разметки можно выполнить и вставить в книгу. Помимо этого, результат выполнения может быть кэширован и использован в дальнейшем. - Вставляйте результат выполнения в ваши материалы. Результаты вычислений или графики могут быть вставлены внутри потока текста или даже сбоку от него.
- Добавьте интерактивности книге. Можно скрывать ячейки с кодом и/или результатом, а также добавить интерактивности с библиотеками Plotly или Pandas, показывая координаты точек или перемещая ползунок для прокрутки столбцов.
- Генерируйте различные виды материалов. Можно получить книгу в виде одно- или многостраничного веб-сайта, а также экспортировать в PDF.
- Создавайте книги одной командой. Не нужно знать всех премудростей, которые скрываются за сборкой книг, достаточно разобраться, как структурируется содержание и выполнить команду
jupyter-book build yourbookname/
.
Изменения в новом Jupyter Book
Особенностью нового релиза является поддержка языка разметки MyST, который реализует все возможности Spinhx – инструмента для создания документаций на языке разметки. С помощью Sphinx написаны практически все документации библиотек Python, включая документацию самого Python. Все, что можно сделать в Sphinx, можно сделать в MyST.
Язык разметки Markdown для всего
Материал, написанный на языке разметки в Jupyter Notebook, поддерживается MyST. Кроме того, можно добавить рисунки, ссылки, цитаты и т.д. в материал. Рисунки ниже показывают, как это выглядит и реализуется.
Больше поддерживаемых форматов
С использованием Sphinx стало возможно конвертировать блокноты Jupyter не только в HTML-страницы, но и в PDF, а также LaTeX. Еще доступна генерация HTML-страницы по образцу Sphinx, что полезно при создании своей документации или просто для создания собственных заметок по программированию и машинному обучению (machine learning).
Новый стек
Переход с Jekyll на Sphinx дало множество новых возможностей. Вместо одиночного репозитория, Jupyter Book разбит на модульные инструменты. Каждый из них может быть использован со своей Sphinx-документацией. К ним относятся:
- Парсер MyST для написания Sphinx-документации на языке разметки.
- MyST-NB – парсер, который позволяет писать на MyST в блокноте Jupyter Notebook, выполнять и кэшировать содержание ячеек.
- Sphinx Book Theme — тема оформления книг, построенная на основе PyData Sphinx Theme, которая используется в документации Pandas.
- Sphinx-Thebe конвертирует статическую веб-страницу в интерактивную книгу, ячейки которой могут выполняться удаленно с помощью Binder.
- Jupyter Cache позволяет работать с коллекцией блокнотов Jupyter Notebook и хранить их ячейки в хэшированной базе данных. Так, можно получить доступ к ячейкам, не трогая сами .ipynb файлы.
- Все расширения Sphinx.
Итоги
При том, что проект Jupyter Book сегодня находится на стадии бета, его уже можно скачать и использовать. Помочь с развитием проекта может каждый, выявляя баги или оставляя пожелания на Github-странице. В ближайшем будущем ожидаем первых опубликованных книг, написанных в Jupyter Book. Видеозапись об основах работы в Jupyter Notebook доступна на YouTube.
Как работать с блокнотами Jupyter на практике в реальных Data Science проектах на Python, вы узнаете на наших курсах в лицензированном учебном центре обучения и повышения квалификации IT-специалистов в Москве.