kableExtra 正在将嵌入的 html 转换为转义文本

问题描述 投票:0回答:1

我正在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()

表格显示正确。

提前致谢。

r knitr kableextra
1个回答
0
投票

如果您想应用

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()
```

screenshot

© www.soinside.com 2019 - 2024. All rights reserved.