SlideShare a Scribd company logo
1 of 18
Download to read offline
Разработка свободной
Документации пакета
Виньетки, Readme, News
Алексей Селезнёв
Мой telegram канал
ВИНЬЕТКА – СВОБОДНЫЙ ТИП
ДОКУМЕНТАЦИИ, В КОТОРОМ ВЫ
ПОДРОБНО РАССКАЗАНО КАК
КОМПЛЕКСНО ИСПОЛЬЗОВАТЬ
ВАШ ПАКЕТ
Рабочий процесс
1. Используйте функцию usethis::use_vignette("my-vignette"), которая сделает следующее:
1. Создаст каталог vignettes/
2. Редактирует файл DESCRIPTION, в поле Suggests добавляя пакеты Knitr и Rmarkdown
3. Генерирует виньетку vignettes/my-vignette.Rmd.
4. Добавляет некоторые шаблоны в файл .gitignore гарантирующие, что файлы, созданные в
результате предварительного просмотра ваших виньеток, останутся вне системы контроля версий.
2. Наполните вашу виньетку контентом.
3. Периодически рендите вашу виньетку с помощью devtools::build_rmd("vignettes/my-
vignette.Rmd"), и смотрите, что получается. Другие способы рендинга будут
использовать не разрабатываемую версию вашего пакета, а ту которая была уже
установлена в основную библиотеку.
4. Повторяйте все шаги пока не получите нужный вам результат.
Метаданные виньетки
• title - это заголовок, который появляется в виньетке. При редактировании этого поля,
обязательно внесите такие же изменения в VignetteIndexEntry{}. Они должны быть
одинаковыми, но, к сожалению, это не происходит автоматически.
• output - формат вывода. Существует множество вариантов, но rmarkdown::html_vignette
разработан специально для создания виньеток.
• vignette - блок специальных метаданных, необходимых R. Единственная запись, которую
вам, возможно, придется изменить, — это файл VignetteIndexEntry{}.
• author – автор виньетки.
• date – дата обновления виньетки.
Rmd разметка
• # Header1 – Заголовки
• *italic* - Курсив
• **bold** - Жирный шрифт
• `1 + 1` - Моноширинный шрифт
• `r 1 + 1` - Исполняемый inline код
• [r02pro](https://r02pro.github.io/) – Ссылка
• ^[] - Сноска
Rmd разметка
• Списки:
Rmd разметка
Графики добавляются с помощью блока кода
Rmd разметка
• Таблицы создаются с помощью функции kable():
• Либо других пакетов генерирующих из дата фреймов таблицы в html формате, например
htmlTable, kableExtra, DT, gt
Опции чанков
• label – Название чанка
• eval – Следует ли выполнять код чанка
• echo - Следует ли отображать исходный код в выходном документе
• results – Управляет отображением результатов выполнения кода: markup, asis, hold, hide
• warning, error, message – Надо ли выводить в результате выполнения кода
предупреждения, ошибки или сообщения
R CMD BUILD
• Исходные файлы виньеток, которые вы создаёте в папке vignetts/ присутствуют только на
стадии разработки не входят в сборку пакета.
• При сборке пакета все виньетки в виде html файлов помещаются в inst/doc/.
• При установке пакета, в его конечном состоянии каталог doc/ помещается на верхний
уровень, т.е. в корень папки пакета.
README – Файл направленный на
новых пользователей вашего
пакета. Он так же будет главной
страницей сайта пакета, и
репозитория пакета на GitHub.
README
Файл README должен отвечать на следующие вопросы:
• Какую проблему решает ваш пакет
• Как использовать его функционал
Обычно README состоит из следующих пунктов:
• Параграф, описывающий общее назначение пакета.
• Пример, показывающий, как использовать пакет для решения простой проблемы.
• Инструкции по установке с кодом, который можно скопировать и вставить в R.
• Обзор, описывающий основные компоненты пакета. Для более сложных пакетов это будет
указывать на виньетки для более подробной информации. Это также хорошее место, чтобы
описать, как ваш пакет вписывается в экосистему целевого домена.
README
• Для создания README файла используйте функцию usethis::use_readme_rmd().
• Используйте devtools::build_readme() для рендинга и просмотра вашего README.
README
Набор функций для добавления различных бейджей:
• usethis::use_cran_badge() - сообщает текущую версию вашего пакета в CRAN.
• usethis::use_coverage() - сообщает о тестовом покрытии.
• use_github_actions() - сообщают о R CMD check о состоянии вашего пакета разработки.
NEWS – Файл направленный на
пользователей, которые уже
используют ваш пакет. Данный
файл содержит описание всех
изменений в пакете.
NEWS
Рабочий процесс:
• Наиболее удобным способом его создания является функция usethis::use_news_md().
• Перед выпуском новой версии пакета используйте функцию usethis::use_version().
Оформление NEWS:
• Каждое изменение должно быть частью маркированного списка.
• Если у вас много изменений, возможно, вы захотите разбить их с помощью подзаголовков,
## Major changes, ## Bug fixesи т. д.
СПАСИБО ЗА ВНИМАНИЕ

More Related Content

Similar to 9-vignetts.pdf

инструментарий
инструментарийинструментарий
инструментарийigdweb
 
Hunting for a C++ package manager
Hunting for a C++ package managerHunting for a C++ package manager
Hunting for a C++ package managercorehard_by
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Andrey Taritsyn
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяСергей Ладыгин
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesVictor Login
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты7bits
 
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядноFallenKain
 
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсDigital-агентство Мэйк
 
Oleksandr Tolstykh "Quality. Android quality"
Oleksandr Tolstykh "Quality. Android quality"Oleksandr Tolstykh "Quality. Android quality"
Oleksandr Tolstykh "Quality. Android quality"IT Event
 
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Igor Sazonov
 
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений Mail.ru Group
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoftKewpaN
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложенийMichael Karpov
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nixAlexander Gerasiov
 

Similar to 9-vignetts.pdf (20)

инструментарий
инструментарийинструментарий
инструментарий
 
Hunting for a C++ package manager
Hunting for a C++ package managerHunting for a C++ package manager
Hunting for a C++ package manager
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с Kubernetes
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
 
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядно
 
DESCRIPTION.pdf
DESCRIPTION.pdfDESCRIPTION.pdf
DESCRIPTION.pdf
 
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейс
 
Oleksandr Tolstykh "Quality. Android quality"
Oleksandr Tolstykh "Quality. Android quality"Oleksandr Tolstykh "Quality. Android quality"
Oleksandr Tolstykh "Quality. Android quality"
 
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
 
10.website.pdf
10.website.pdf10.website.pdf
10.website.pdf
 
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
 
Git for you
Git for youGit for you
Git for you
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложений
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
 

More from Алексей Селезнёв

Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...Алексей Селезнёв
 
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...Алексей Селезнёв
 
Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...
Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...
Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...Алексей Селезнёв
 

More from Алексей Селезнёв (20)

Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
 
14. мета пакет.pdf
14. мета пакет.pdf14. мета пакет.pdf
14. мета пакет.pdf
 
gargle.pdf
gargle.pdfgargle.pdf
gargle.pdf
 
12.wrapping-apis.pdf
12.wrapping-apis.pdf12.wrapping-apis.pdf
12.wrapping-apis.pdf
 
10.release_on_cran.pdf
10.release_on_cran.pdf10.release_on_cran.pdf
10.release_on_cran.pdf
 
function_docs.pdf
function_docs.pdffunction_docs.pdf
function_docs.pdf
 
07-testing.pdf
07-testing.pdf07-testing.pdf
07-testing.pdf
 
6.dependecies.pdf
6.dependecies.pdf6.dependecies.pdf
6.dependecies.pdf
 
Add data to r package
Add data to r packageAdd data to r package
Add data to r package
 
3-r-code.pdf
3-r-code.pdf3-r-code.pdf
3-r-code.pdf
 
integration_between_rstudio_and_github.pdf
integration_between_rstudio_and_github.pdfintegration_between_rstudio_and_github.pdf
integration_between_rstudio_and_github.pdf
 
create_package_1.pdf
create_package_1.pdfcreate_package_1.pdf
create_package_1.pdf
 
Бекенды dplyr
Бекенды dplyrБекенды dplyr
Бекенды dplyr
 
Пакет future
Пакет futureПакет future
Пакет future
 
Многопоточность в R
Многопоточность в RМногопоточность в R
Многопоточность в R
 
Пакет purrr
Пакет purrrПакет purrr
Пакет purrr
 
Функции семейства apply
Функции семейства applyФункции семейства apply
Функции семейства apply
 
Циклы в R
Циклы в RЦиклы в R
Циклы в R
 
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
 
Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...
Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...
Как работать с API Google Analytics на языке R с помощью пакета googleAnalyti...
 

9-vignetts.pdf

  • 3. ВИНЬЕТКА – СВОБОДНЫЙ ТИП ДОКУМЕНТАЦИИ, В КОТОРОМ ВЫ ПОДРОБНО РАССКАЗАНО КАК КОМПЛЕКСНО ИСПОЛЬЗОВАТЬ ВАШ ПАКЕТ
  • 4. Рабочий процесс 1. Используйте функцию usethis::use_vignette("my-vignette"), которая сделает следующее: 1. Создаст каталог vignettes/ 2. Редактирует файл DESCRIPTION, в поле Suggests добавляя пакеты Knitr и Rmarkdown 3. Генерирует виньетку vignettes/my-vignette.Rmd. 4. Добавляет некоторые шаблоны в файл .gitignore гарантирующие, что файлы, созданные в результате предварительного просмотра ваших виньеток, останутся вне системы контроля версий. 2. Наполните вашу виньетку контентом. 3. Периодически рендите вашу виньетку с помощью devtools::build_rmd("vignettes/my- vignette.Rmd"), и смотрите, что получается. Другие способы рендинга будут использовать не разрабатываемую версию вашего пакета, а ту которая была уже установлена в основную библиотеку. 4. Повторяйте все шаги пока не получите нужный вам результат.
  • 5. Метаданные виньетки • title - это заголовок, который появляется в виньетке. При редактировании этого поля, обязательно внесите такие же изменения в VignetteIndexEntry{}. Они должны быть одинаковыми, но, к сожалению, это не происходит автоматически. • output - формат вывода. Существует множество вариантов, но rmarkdown::html_vignette разработан специально для создания виньеток. • vignette - блок специальных метаданных, необходимых R. Единственная запись, которую вам, возможно, придется изменить, — это файл VignetteIndexEntry{}. • author – автор виньетки. • date – дата обновления виньетки.
  • 6. Rmd разметка • # Header1 – Заголовки • *italic* - Курсив • **bold** - Жирный шрифт • `1 + 1` - Моноширинный шрифт • `r 1 + 1` - Исполняемый inline код • [r02pro](https://r02pro.github.io/) – Ссылка • ^[] - Сноска
  • 8. Rmd разметка Графики добавляются с помощью блока кода
  • 9. Rmd разметка • Таблицы создаются с помощью функции kable(): • Либо других пакетов генерирующих из дата фреймов таблицы в html формате, например htmlTable, kableExtra, DT, gt
  • 10. Опции чанков • label – Название чанка • eval – Следует ли выполнять код чанка • echo - Следует ли отображать исходный код в выходном документе • results – Управляет отображением результатов выполнения кода: markup, asis, hold, hide • warning, error, message – Надо ли выводить в результате выполнения кода предупреждения, ошибки или сообщения
  • 11. R CMD BUILD • Исходные файлы виньеток, которые вы создаёте в папке vignetts/ присутствуют только на стадии разработки не входят в сборку пакета. • При сборке пакета все виньетки в виде html файлов помещаются в inst/doc/. • При установке пакета, в его конечном состоянии каталог doc/ помещается на верхний уровень, т.е. в корень папки пакета.
  • 12. README – Файл направленный на новых пользователей вашего пакета. Он так же будет главной страницей сайта пакета, и репозитория пакета на GitHub.
  • 13. README Файл README должен отвечать на следующие вопросы: • Какую проблему решает ваш пакет • Как использовать его функционал Обычно README состоит из следующих пунктов: • Параграф, описывающий общее назначение пакета. • Пример, показывающий, как использовать пакет для решения простой проблемы. • Инструкции по установке с кодом, который можно скопировать и вставить в R. • Обзор, описывающий основные компоненты пакета. Для более сложных пакетов это будет указывать на виньетки для более подробной информации. Это также хорошее место, чтобы описать, как ваш пакет вписывается в экосистему целевого домена.
  • 14. README • Для создания README файла используйте функцию usethis::use_readme_rmd(). • Используйте devtools::build_readme() для рендинга и просмотра вашего README.
  • 15. README Набор функций для добавления различных бейджей: • usethis::use_cran_badge() - сообщает текущую версию вашего пакета в CRAN. • usethis::use_coverage() - сообщает о тестовом покрытии. • use_github_actions() - сообщают о R CMD check о состоянии вашего пакета разработки.
  • 16. NEWS – Файл направленный на пользователей, которые уже используют ваш пакет. Данный файл содержит описание всех изменений в пакете.
  • 17. NEWS Рабочий процесс: • Наиболее удобным способом его создания является функция usethis::use_news_md(). • Перед выпуском новой версии пакета используйте функцию usethis::use_version(). Оформление NEWS: • Каждое изменение должно быть частью маркированного списка. • Если у вас много изменений, возможно, вы захотите разбить их с помощью подзаголовков, ## Major changes, ## Bug fixesи т. д.