使用 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>
我正在尝试使用 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>