如何将 .md 转换为 .Rmd

How to convert .md to .Rmd

我已经从 github (here) 下载了一个 .md 文件。 是否可以将其转换为 .Rmd?

其实你只需要加一个YAML header就可以转换.md -> .Rmd.

首先我们readLines变成了object。您可以直接使用原始 link,或者如果您已经将它存储在您的工作目录 (WD) (getwd()).

中,则可以选择 foo.md

然后我们使用 cat() 打印 1. YAML header 和 2. 将 line-wise 的 .md 内容附加到文件。对于 2. 我们使用 for 循环。

link <- 'https://gist.githubusercontent.com/kantale/ff6179b97efc32153080097756280b7e/raw/31e9522a80f16be610ac243be16f931493e48316/exams_BIOL_109_2020.md'
r <- readLines(link)
# r <- readLines('foo.md')

cat('---
title: "Untitled"
output: html_document
---
', file='foo.Rmd')  ## basic YAML header, may be customized
for (i in seq(r)) {cat(r[i], '\n', file='foo.Rmd', append=TRUE)}

这会在您的 WD 中存储一个工作 foo.Rmd

测试一下:

rmarkdown::render('foo.Rmd')

foo.html应该在WD中制作。

R markdown 本质上是一个带有可选 (!) header 和代码块的 markdown 文件。因此,一个 md 文件本身就是一个有效的 Rmd 文件。您可以通过手动添加 header 来“转换”它,这样您就可以控制输出。

我有一个简单的包 here 允许操作 rmd headers。我还没有在 md 文件上测试它,但它很有可能会起作用。

编辑:测试过,失败后我更新了代码,现在应该可以了:

library(rmdmanip) #get it from link above, e.g. using devtools::install_github
read.rmd('filename.md') %>% put('title','your title') %>% dump('filename.Rmd)