使用 for 循环生成 html 内容

Using for loops to generate html content

我正在尝试使用 for 循环生成 html 内容,但我在 html.

中的内容外观方面遇到了问题

假设我有一个 Rhtml 模板,我想在 for 循环中生成段落:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<!--begin.rcode, echo=FALSE, message=FALSE, warning=FALSE
library(htmltools)
paragraphs = c("Paragraph1","Paragraph2","Paragraph3")
tags$div(
  for(i in paragraphs){
    print(tags$p(i))
    }
  )
end.rcode-->
</body>
</html>

问题是 html 输出是这样的:

## <p>Paragraph1</p>
## <p>Paragraph2</p>
## <p>Paragraph3</p>

而我需要的只是三个正常的 html 段落。 我如何使用 for 循环执行此操作?

将循环移到 tags$div 之外。

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<!--begin.rcode, echo=FALSE, message=FALSE, warning=FALSE
library(htmltools)
paragraphs = c("Paragraph1","Paragraph2","Paragraph3")
p <- list()
for(i in paragraphs){
  p <- c(p, list(tags$p(i)))
}
tags$div(p)
end.rcode-->
</body>
</html>

这也可以写成purr::map

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<!--begin.rcode, echo=FALSE, message=FALSE, warning=FALSE
library(htmltools)
paragraphs = c("Paragraph1","Paragraph2","Paragraph3")
tags$div(purrr::map(paragraphs, tags$p))
end.rcode-->
</body>
</html>