воскресенье, 11 сентября 2016 г.

Публикация контента при помощи Bookdown и RStudio Connect

Пакет bookdown позволяет перейти от рендеринга одиночных .Rmd-файлов в нужный формат к созданию полноценных многостраничных сайтов (или книг, или книг в виде сайта - есть много разных вариантов и форматов). В книге все возможности и особенности разобраны подробно, это сообщение представляет собой лишь минимальную инструкцию по использованию на примере Руководства по data.table. Использовать будем свежую сборку RStudio Preview.

Для создания многостраничного сайта/книги нужно сложить в папку файлы index.Rmd и пронумерованные файлы с основным содержимым: 01_intro.Rmd02_someting_else.Rmd и т.д. В index.Rmd должен быть YAML-блок вида
---
title: Руководство по data.table
author: "Андрей Огурцов"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
output: bookdown::gitbook
documentclass: book
biblio-style: apalike
link-citations: yes
description: "Руководство по пакету 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). Обновлять публикацию можно той же командой, имя аккаунта указывать не обязательно. 

Комментариев нет:

Отправить комментарий