Jupyter Book: новинка 2020 для Data Scientist’а и Python-разработчика

13 августа 2020 года был анонсирован новый Jupyter Book – инструмент для создания интерактивных книг. Читайте в нашей статье о новых возможностях Jupyter Book для Data Scientist’а и Python-разработчика: переход с Jekyll на Sphinx, конвертирование в PDF, использование MyST, сборка книги за одну команду.

Jupyter Book

Jupyter Book — это проект с открытым исходным кодом для создания книг, веб-сайтов и документаций на основе материала с компьютерными вычислениями в Jupyter Notebook. Сам проект был выпущен еще в 2018 году, но в середине августа 2020 года состоялся релиз бета-версии с многочисленными изменениями. Сейчас Jupyter Book – это быстрое, легко устанавливаемое и простое в использовании средство разработки, пригодное для создания полноценных интерактивных книг.

Вид Jupyter Book
Усовершенствованный Jupyter Book

7 основных возможностей Jupyter Book

Рассмотрим ключевые функции, который предлагает Jupyter Book:

  • Материл для публикаций пишется на языке разметки (Markdown). Можно писать как на обычном языке разметки, так и на расширенном MyST(Markedly Structured Text), который поддерживает цитаты, перекрестные ссылки, математические формулы и уравнения, а также рисунки.
  • Пишите прямо в Jupyter Notebook, что позволяет вставлять ячейки с кодом и результатом выполнения в книгу. Кроме того, MyST поддерживает синтаксис для написания кода на любом языке, поэтому вся книга может быть написана на языке разметки.
  • Выполняйте код и кэшируйте его. Код в блокнотах в формате .ipynb или на языке разметки можно выполнить и вставить в книгу. Помимо этого, результат выполнения может быть кэширован и использован в дальнейшем.
  • Вставляйте результат выполнения в ваши материалы. Результаты вычислений или графики могут быть вставлены внутри потока текста или даже сбоку от него.

    Сбоку может стоять результат вычислений

  • Добавьте интерактивности книге. Можно скрывать ячейки с кодом и/или результатом, а также добавить интерактивности с библиотеками Plotly или Pandas, показывая координаты точек или перемещая ползунок для прокрутки столбцов.

    Ячейка с графиком в Jupyter Book
    Сокрытие ячейки

  • Генерируйте различные виды материалов. Можно получить книгу в виде одно- или многостраничного веб-сайта, а также экспортировать в PDF.
  • Создавайте книги одной командой. Не нужно знать всех премудростей, которые скрываются за сборкой книг, достаточно разобраться, как структурируется содержание и выполнить команду jupyter-book build yourbookname/.

Изменения в новом Jupyter Book

Особенностью нового релиза является поддержка языка разметки MyST, который реализует все возможности Spinhx – инструмента для создания документаций на языке разметки. С помощью Sphinx написаны практически все документации библиотек Python, включая документацию самого Python. Все, что можно сделать в Sphinx, можно сделать в MyST.

Язык разметки Markdown для всего

Материал, написанный на языке разметки в Jupyter Notebook, поддерживается MyST. Кроме того, можно добавить рисунки, ссылки, цитаты и т.д. в материал. Рисунки ниже показывают, как это выглядит и реализуется.

Ячейки с цитатами в Jupyter Notebook
Пример создания цитат с помощью MyST Markdown
Ячейка с рисунком в Jupyter Notebook
Пример с отображением рисунка с помощью MyST Markdown
Больше поддерживаемых форматов

С использованием 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-специалистов в Москве.

Источники
  1. https://blog.jupyter.org/announcing-the-new-jupyter-book-cbf7aa8bc72e
  2. Основы Jupyter Notebook

Добавить комментарий

Поиск по сайту