1  Знакомство с Quarto

Многим из тех, кто работает на языке программирования R в области Data Science, известен такой инструмент как R Markdown, позволяющий объединять повествовательный текст и код для создания отформатированных выходных данных в виде веб-страниц, записей в блогах, книг, бизнес-отчетов и других документов. R Markdown существует примерно с 2014 года и объединяет большое количество библиотек для создания и публикации научного, технического и бизнес-контента. Тем не менее, один из создателей R Markdown и основателей RStudio (теперь уже Posit PBC) J.J. Allaire в своем интервью признал, что развитие R Markdown приходит в тупик, и несколько лет тому назад он с коллегами начал проект Quarto, который стал попыткой обобщить экосистему R Markdown таким образом, чтобы все полезные функции для создания и публикации технического контента могли быть доступны более широкому миру за пределами языка R.

Quarto® — это научно-техническая издательская система с открытым исходным кодом, построенная на основе Pandoc и использующая Markdown для разметки. Напомним, что Pandoc — это универсальный конвертер для работы с текстовыми документами для форматирования научных и технических текстов, поддерживающий множество различных форматов, написанный на языке программирования Lua.

Сегодня Quarto — это универсальный инструмент для тех, кто пишет на R, Python, Julia и Observable JavaScript и использует Markdown для форматирования документов. Многие из тех возможностей R Markdown, которые были доступны только для пользователей R, теперь также обобщены и для тех, кто программирует на Python и Julia и занимается анализом данных, научной и преподавательской деятельностью. Альтернативами Quarto, помимо R Markdown, можно считать Jupyter Book, Weave.jl, iPyPublish, и т. д.

1.1 Название Quarto

Авторы научно-технической издательской системы хотели использовать название, которое имело значение в истории издательского дела, и остановились на Quarto.

Quarto (от латинского quārtō, сокращенно Qto, 4to или 4º) — это книга или брошюра, изготовленная из полных листов, напечатанных с восемью страницами текста, по четыре на одну сторону, а затем сложенных дважды, чтобы получить четыре листа (не нужно путать с настольной абстрактной игрой Quarto или издательством The Quarto Group, которое продает иллюстрированные книги). Затем листы обрезаются, чтобы получить восемь страниц книги. Размер каждой напечатанной страницы составляет одну четвертую полного листа.

Рисунок 1.1: Сравнение форматов книг

Самыми ранними из сохранившихся книг, напечатанных немецким первопечатником Гутенбергом подвижным шрифтом, являются именно кварто (примерно 1452–53 гг.), которые были напечатаны до знаменитой Библии Гутенберга. Самый ранний из известных — это фрагмент средневековой поэмы «Сибилленбух» (Sibyllenbuch).

1.2 Возможности Quarto

Quarto позволяет:

  • представлять анализ данных в доступном и наглядном виде;
  • иметь возможность вывода в различных форматах: HTML, pdf, ePub, Word, PowerPoint и т. д. для единого источника публикации;
  • использовать разметку, включающую формулы, цитаты, перекрестные ссылки, расширенные макеты и многое другое;
  • иметь возможность публикации веб-документов в сети Интернет через различные сервисы;
  • включать интерактивные приложения и виджеты в HTML-документы;
  • создавать документы с включением кода для воспроизводимых вычислений.

С помощью Quarto можно создавать:

  • статьи как для веб-публикации, так и подготовленные для научных издательств;
  • презентации;
  • веб-страницы, включая блоги и техническую документацию;
  • интерактивные книги, которые можно переводить различные форматы, пригодные для печати и электронных носителей.

1.3 Примеры разработок на Quarto

Большим источником идей для создания рабочих материалов, сайтов, презентаций, статей, документации и другого похожего содержимого может служить Галерея примеров Quarto на официальном сайте.

Также, большое количество материалов на основе Quarto содержится на сайте Awsome Quarto, автор которого Mickaël Canouil. Кроме того, ссылки на примеры и полезные советы по Quarto приведены в Приложении.

Документы Quarto представляют собой, по сути, простой текстовый файл и имеют расширение *.qmd. Приведем пример документа Quarto в качестве знакомства.

Рисунок 1.3: Файл hello_penguins.qmd
Рисунок 1.4: Результат рендеринга файла hello_penguins.qmd — файл hello_penguins.html

Более подробно структуру и компоненты документа мы рассмотрим в последующих частях книги, в зависимости от того, какой результат нужно получить.

1.4 Используемые инструменты

Поскольку Quarto использует собственный CLI (интерфейс командной строки), мы во многих случаях будем использовать именно его: для работы с ним необходимо открыть терминал, перейти в корневой каталог проекта и набрать нужную команду, например quarto render для рендера. Посмотреть все команды Quarto CLI в терминале можно с помощью команды quarto --help как показано ниже.

Рисунок 1.5: Помощь по командам Quarto в терминале с помощью команды quarto --help

Написание текста и кода в Quarto невозможно без соответствующего инструмента, таким образом нам необходима IDE (интегрированная среда разработки). Для работы с Quarto можно использовать множество сред разработки: RStudio, Visual Studio Code, Positron, Jupyter, Emacs, Neovim, Sublime Text. Расширение для IDE обеспечивает подсветку синтаксиса для Markdown и встроенных языков, автодополнение для встроенных языков (например, Python, R, Julia, LaTeX и т. д.), команды и сочетания клавиш для запуска ячеек и выбранных строк и многое другое. В некоторых из перечисленных IDE (например, RStudio, Visual Studio Code) имеется визуальный режим для редактирования.

Рисунок 1.6: Пример работы в IDE Visual Studio Code

Quarto хорошо документирован, например, имеется достаточно подробное руководство и множество примеров реализации в виде интерактивных книг, веб-страниц, презентаций. Также, стоит отметить что Quarto имеет большой спектр различных расширений, которые постоянно пополняются.

Заключение

Итак, в этой части состоялось наше очень краткое знакомство с научно-издательской системой Quarto. В следующей части мы более подробно рассмотрим установку Quarto CLI, плагинов для IDE и сделаем обзор работы в IDE.