Пакет bookdown позволяет перейти от рендеринга одиночных .Rmd-файлов в нужный формат к созданию полноценных многостраничных сайтов (или книг, или книг в виде сайта - есть много разных вариантов и форматов). В книге все возможности и особенности разобраны подробно, это сообщение представляет собой лишь минимальную инструкцию по использованию на примере Руководства по data.table. Использовать будем свежую сборку RStudio Preview.
Для создания многостраничного сайта/книги нужно сложить в папку файлы index.Rmd и пронумерованные файлы с основным содержимым: 01_intro.Rmd, 02_someting_else.Rmd и т.д. В index.Rmd должен быть YAML-блок вида
---title: Руководство по data.tableauthor: "Андрей Огурцов"date: "`r Sys.Date()`"site: bookdown::bookdown_siteoutput: bookdown::gitbookdocumentclass: bookbiblio-style: apalikelink-citations: yesdescription: "Руководство по пакету data.table: перевод виньеток, справочная иформация."---
Все остальные файлы должны начинаться с заголовка первого уровня - # Заголовок. Разделы и подразделы должны быть с идентификаторами вида ## Раздел 1 {#chap1}, иначе оглавление соберется криво. Все, больше ничего для создания локальной версии не нужно. Можно запускать команду
bookdown::render_book("index.Rmd", bookdown::gitbook(split_by = "rmd"))
split_by = "rmd" задает создание одного .html из одного .Rmd. Это удобно и позволяет избежать проблем с автоматической генерацией имен.
Получившийся набор страниц можно заливать куда угодно. Другой вариант - использовать RStudio Connect для автоматического размещения на https://bookdown.org/ (или любом другом сервере, на котором запущена система RStudio Connect - см. https://www.rstudio.com/products/connect/). Для любого сайта должен работать универсальный способ - настройка аккаунтов в Tools/Global/Publishing (проверено на https://beta.rstudioconnect.com), но для заливки на https://bookdown.org/ нужно выполнить команду
bookdown::publish_book(name = "DataTableManual"),
которая при первом использовании позволит создать аккаунт. У меня ранее был создан аккаунт Shiny, поэтому пришлось вызвать функцию еще раз, указав имя аккаунт (аргумент account). Обновлять публикацию можно той же командой, имя аккаунта указывать не обязательно.
Комментариев нет:
Отправить комментарий