我开发了一份报告,该报告大量使用了 RMarkdown v2 中的功能,特别是向 html 文档添加 css 类和 id 的功能,以便使用样式表更好地控制输出。我希望通过电子邮件正文发送这些报告。我一直在尝试使用 send.mail (mailR) 来做到这一点。根据他们的 gitgub 自述文件(https://github.com/rpremraj/mailR/blob/master/README.md https://github.com/rpremraj/mailR/blob/master/README.md)
mailR 当前不支持解析使用数据 URI 方案编码的内联图像。请改用下面的解决方法:
首先,从 R 终端创建 HTML 文件(这里重要的是选项不包括“base64_images”——参见 ?markdown::markdownHTMLOptions):
library(knitr)
knit2html("my_report.Rmd", options = "")
现在您可以通过 mailR 发送生成的 HTML 文件...
问题是 knit2html 似乎仍然使用 RMarkdown v1,它不支持向文档添加 css 类和 id 的语法。是否还有其他解决方法,例如使用 rmarkdown::render 并以某种方式传递 options 参数?或者 knit 使用 RMarkdown v2 有时间表吗?
这可以复制如下:
示例样式.css
.GreenItalic {
font-style: italic;
color: green;
}
示例.Rmd
---
output: html_document
css: ExampleStyles.css
---
# Heading { .GreenItalic }
使用 RStudio 编织(渲染)时,输出符合预期。 “标题”为斜体和绿色。
要通过电子邮件发送,可以使用以下代码:
library(mailR)
library(knitr)
ReportName <- "Example"
knit2html(paste0(ReportName, ".Rmd"), options = "", styles = "ExampleStyles.css")
send.mail(from = "[email protected] /cdn-cgi/l/email-protection",
to = "[email protected] /cdn-cgi/l/email-protection",
subject = "Subject",
html = TRUE,
inline = TRUE,
body = paste0(ReportName, ".html"),
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "RTestingTesting", passwd = "Password", ssl = TRUE),
authenticate = TRUE,
send = TRUE)
然而,在这种情况下,输出是黑色且非斜体的“Heading {.GreenItalic}”。据我所知,这是因为 knit 使用的是 RMarkdown v1。