我正在knitr中创建一个html页面。然而,kableExtra 正在将嵌入的 html 转换为转义文本。
这是针对该问题的 MWE。
---
title: "Animals"
output:
html_document:
toc: TRUE
toc_float: TRUE
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
require(knitr)
require(tidyverse)
require(formattable)
``\`
```{r animal_table, echo=FALSE, results='asis'}
animal <- tibble(animal=c("dog","cat"), height=c(18,25), weight=c(10,12))
animal |>
mutate(height = color_tile("white","#DE8C59")(height)) |>
knitr::kable(
col.names=c('Animal','Height','Weight'),
escape = F
) |>
kableExtra::kable_styling()
``\`
Animal Height Weight
dog <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #ffffff">18</span> 10
cat <span style="display: block; padding: 0 4px; border-radius: 4px; background-color: #de8c59">25</span> 12
但是,如果您注释掉该行
# kableExtra::kable_styling()
表格显示正确。
提前致谢。
如果您想应用
kableExtra::kbl()
样式,则应始终使用 knitr::kable()
而不是 kableExtra
。
使用
FALSE
代替 F
也是一个好主意,因为 F
是一个变量,可以具有 FALSE
以外的值。
在你的例子中是
```{r animal_table, echo=FALSE, results='asis'}
animal <- tibble(animal=c("dog","cat"), height=c(18,25), weight=c(10,12))
animal |>
mutate(height = color_tile("white","#DE8C59")(height)) |>
kableExtra::kbl(
col.names=c('Animal','Height','Weight'),
escape = FALSE
) |>
kableExtra::kable_styling()
```