Создавайте виньетки пакета R с постраничными фреймами данных

Я пытаюсь напечатать красивые таблички с опцией df_print: paged в своих виньетках. Мои настройки вывода следующие:

output:
  html_document:
    df_print: paged
    highlight: pygments
    number_sections: yes
    toc: yes

Когда я создаю виньетки с помощью devtools::build_vignettes() локально, я получаю правильный HTML с постраничными табличками.

Скриншот

Но когда я собираю пакет на сервере TeamCity, виньетки установленного пакета печатаются обычным образом.

Скриншот

Я проверил, что rmarkdown::pandoc_available() ИСТИНА, а rmarkdown версия пакета 2.6 (функция rmarkdown::paged_table из версии 2.3).

Что еще нужно проверить, чтобы правильно строить виньетки?

Заранее спасибо!


person aschmsu    schedule 02.03.2021    source источник
comment
Обратите внимание на рекомендации Yihui относительно виньеток пакетов . КРАН.   -  person Waldi    schedule 02.03.2021
comment
На данный момент я создал 2 пакета, и эта книга мне очень помогла и служит контрольным списком для всех, кто хотел бы это сделать: r-pkgs.org   -  person Anoushiravan R    schedule 19.03.2021
comment
@aschmsu Помог ли вам мой ответ?   -  person eduardokapp    schedule 24.03.2021
comment
@eduardokapp Я ценю ваши усилия, но это не так. О 1: Как я уже сказал в вопросе, я использую html_document и проверил версию. На 2: возможно, это сработает, но я действительно не хочу добавлять новый большой импорт только для этой цели. Я хочу понять, что проблема вызывает это в моем случае.   -  person aschmsu    schedule 28.03.2021
comment
@aschmsu Хорошо. Но на самом деле вам нужно предоставить более подробную информацию о том, как выглядит ваш процесс CI/CD в TeamCity. Это явное различие между запуском локально и нет.   -  person eduardokapp    schedule 31.03.2021
comment
Не могли бы вы подсказать, что здесь интересного? Могу только сказать, что пакет собирается через devtools::build() и все. Ну и еще я проверил те вещи, которые влияют на rmarkdown::paged_table: версию пакета и доступность pandoc. Что мне добавить? Это будет очень полезно, заранее спасибо.   -  person aschmsu    schedule 31.03.2021


Ответы (1)


Кажется, это простая проблема. Я считаю, что есть два возможных решения:

1: Вы должны убедиться, что любой скрипт, работающий на вашем CI/CD на сервере TeamCity, имеет ту же версию rmarkdown, которую вы используете локально. Отличный способ заявить об этой проблеме — запустить сценарий CI/CD локально (например, сценарий dockerfile!) и попытаться воспроизвести проблему. Другая вероятная причина проблемы заключается в том, что все, что использует ваш CI/CD для получения результата уценки, перезаписывает или игнорирует определенные теги yml. Посмотрите на Настройки в .yml не отображаются при визуализации .Rmd, например.

2: Вы можете использовать DT::datatable в своей виньетке, которая генерирует тот же тип симпатичной чепухи более надежным способом.

DT::datatable(
your_tibble, 
extensions = c('FixedColumns',"FixedHeader"),
options = list(
     scrollX = TRUE, 
     paging=FALSE,
     fixedHeader=TRUE
)
)
person eduardokapp    schedule 23.03.2021