R - tips

用R包bookdown批量将md转epub

2020-10-19  本文已影响0人  董八七

想将自己写好的多个md文档,转成epub格式文件放到手机上看,但怎么批量操作呢?

  1. md后缀重命名为Rmd,方法见批量修改文件名 - 简书
    单个文件的转换方法:
bookdown::render_book('abc.Rmd', 'bookdown::epub_book')

将Rmd文件放到根目录,运行上面命令。生成的文件在_book文件夹下,_main.epub即是。当批量操作是会产生名字相同造成覆盖的问题,因此需要重命名;也不能把多个Rmd同时放到根目录,一次只能放一个。

  1. 批量操作,所有文件在一个专门的文件夹内
# 1.获取全部的文件名
fil_nam <- list.files("文件夹名字",full.names = T) 
# 2.没有后缀的文件名,后用
re_nam <- fil_nam %>% 
  str_remove_all("文件夹名字/")
for (i in 1:length(fil_nam)) {
# 3.把文件移动到根目录
  file.rename(fil_nam[i], re_nam[i])
# 4.转换
  bookdown::render_book(re_nam[i], 'bookdown::epub_book')
# 5.重命名生成的epub文件
  book_nam <- "_book/_main.epub"
  book_nam_new <- book_nam %>% str_replace_all("_main", str_remove_all(re_nam[i],".Rmd"))
  file.rename(book_nam, book_nam_new)
# 6.移除
  file.remove(re_nam[i])
}

ps. 如果多个文档是不同的章节,要生成到一个总的文件中,需要先写一个index.Rmd,然后把全部文件都放到根目录,运行bookdown::render_book('index.Rmd', 'bookdown::epub_book'),具体问题可以查阅bookdown的使用指南

上一篇下一篇

猜你喜欢

热点阅读