美文网首页R - tips
用R包bookdown批量将md转epub

用R包bookdown批量将md转epub

作者: 董八七 | 来源:发表于2020-10-19 17:32 被阅读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的使用指南

    相关文章

      网友评论

        本文标题:用R包bookdown批量将md转epub

        本文链接:https://www.haomeiwen.com/subject/ypqlmktx.html