Есть ли способ использовать опции класса knitr css при использовании таблиц kable? - PullRequest
0 голосов
/ 15 января 2020

Я недавно читал о css классах Книтра для кусков, как обсуждалось в этом вопросе и этом примере .

В общем, это, кажется, работает отлично. Проблема в том, что эти параметры больше не работают, если вы используете вывод kable. Пример ниже иллюстрирует то, о чем я говорю. В первых двух чанках я могу успешно добавить css класс bg-success к своему выводу, но третий чанк не применяет это.

Изучив выходной файл html, я обнаружил, что первые два блока упакованы в блоки <pre class='bg-success'>...</pre> html, а третий блок - в блок <table class=table table-condensed>...</table> html. Класс bg-success нигде здесь не обнаружен.

Кто-нибудь получил параметры knitr class.output для работы с выводами kable? Есть ли чистый способ сделать это? Я знаю, что могу обернуть кусок кода в div и применить там класс, но это грязно, и я предпочел бы делать это чисто, если это возможно.

---
title: "My Test"
output: html_document
---


\```{r setup, include=FALSE}
library(knitr)

knitr::opts_chunk$set(
    message = FALSE,
    warning = FALSE)
\```

Class works when applied to text:

\```{r working, class.output='bg-success'}
paste("Normal", "R chunk", "output!!")
\```

Class works when applied to data frame:

\```{r working_table, class.output='bg-success'}
head(iris)
\```

Class does not work when applied to kable output:

\```{r not_working, class.output='bg-success'}
kable(head(iris))
\```

1 Ответ

0 голосов
/ 17 января 2020

Добавьте класс bg-success в таблицу через аргумент table.attr:

knitr::kable(head(iris), table.attr = "class=\'bg-success\'") %>% 
  kableExtra::kable_styling()

Я понял, что вам нужно изменить стиль таблицы HTML, передав класс / аргумент в kable_styling function .
Очевидно, нет необходимости указывать format аргумент:

knitr::kable(head(iris), table.attr = "class=\'bg-success\'", format = "html") %>% 
  kableExtra::kable_styling()

Кроме того, вам необходимо включить library(kableExtra) в {r setup}.

Более подробную информацию об аргументе table.attr можно найти в разделе 13.1.11. Настройка HTML таблиц

...