如何从.Rmd(Rmarkdown)文件生成.html和.md文件并重命名?

13

我知道生成 .Rmd 文件的 .html 文件或 .md 文件应该使用以下代码

---
title: "report"
output: html_document
---
---
title: "report"
output: md_document
---

但是如何同时生成这两者呢?我尝试了以下方法,但不起作用。

---
title: "report"
output: html_document, md_document
---

另一个问题是,我如何使生成的.html文件(或.md文件)的名称与.Rmd文件不同?例如,我有一个sample.Rmd文件,但我希望将.md文件命名为sample_1.md。

2个回答

19

您可以使用 keep_md: yes 保留md文件,同时获取其他输出。因此,YAML 将类似于:

---
title: "report"
author: "me"
date: '2016-04-25'
output:
  html_document:
    keep_md: yes
---

名称怎么样?我能修改它吗? - Ding Li
我认为你不能使用YAML更改输出文件名。因此,foo.Rmd将生成foo.html和foo.md。 - Richard Telford
请参考此处更改文档名称:https://dev59.com/4F4b5IYBdhLWcg3w9Fqr - Hardik Gupta
未来的用户:小心空格和制表符之间的区别。不要混淆它们! - Paul

1
你可以自定义knit按钮,这样你就可以同时将一个Rmd文件渲染为多个输出。 只需按一次knit按钮,就可以从下面的示例中获得两个输出(.html/.md)。
---
knit: (function(input, ...) {
    rmarkdown::render(
      input,
      output_format = "all"
    ))}

title: "report"

output:
  html_doclument:
    number_sections: true
    toc: true    
  md_document:
    variant: "markdown"
    number_sections: false
    toc: false
---

实际上,这个概念很好。但是你分享的这段代码包含了三个引号,而在你发送的教程链接中,代码的结构不同。教程中的那个代码可以运行,而在这个链接中发布的那个则不能。https://bookdown.org/yihui/rmarkdown-cookbook/custom-knit.html - Corina Roca
@CorinaRoca 我修复了我的代码;我应该使用 ---(yaml块),而不是普通的代码块。在你上面写的评论中,你是说我的答案对你没有起作用吗?我希望你告诉我当你尝试运行代码时发生了什么错误。 - Carlos Luis Rivera
1
嗨@Carlos Luis Rivera。我的情况有点不同。当在knit调用后添加语句时,这段代码对我没有起作用。只有单独使用knit时它才能工作,尽管我需要添加更多的YAML代码。正如我所评论的,最终我将所有我需要的细节整合到了knit语句中,现在它运行得相当好。无论如何,感谢您发布的链接! - Corina Roca
我又修好了我的代码;我在knit命令的末尾加上了)} - Carlos Luis Rivera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接