将HTML转换为R Markdown

Ada*_*m_G 0 r r-markdown

有没有办法转换html文件,如https://cran.r-project.org/web/packages/tidytext/vignettes/tidytext.html,并将其转换为可执行的R Markdown文件(rmd)?

小智 6

这是我使用的解决方案:

  • 将 .html 转换为 .md :
pandoc ./test.html -o test.md
Run Code Online (Sandbox Code Playgroud)
  • 将 .md 重命名为 .rmd
mv test.md test.rmd
Run Code Online (Sandbox Code Playgroud)
  • 对代码进行后处理以组织块和段落
# chunks r marker: replace ' {\.sourceCode \.r}' by '{r}'
sed -i 's/ {\.sourceCode \.r/{r/' test.rmd
# delete lines beginning wit ':::'
sed -i '/^:::/d' test.rmd
# delete lines beginning '![](data:image' (html plot)
sed -i '/^\!\[\](data:image/d' test.rmd
# delete paragraph separator lines
sed -i '/^=====/d' test.rmd
sed -i '/^-----/d' test.rmd
# replace paragraph marks
#'[1]{.header-section-number}' by '#'
sed -i 's/\[[0-9]\+\]{\.header-section-number}/#/' test.rmd
#'[1.1]{.header-section-number}' by '##'
sed -i 's/\[[0-9]\+\.[0-9]\+\]{\.header-section-number}/##/' test.rmd
#'[1.1.1]{.header-section-number}' by '###'
sed -i 's/\[[0-9]\+\.[0-9]\+\\.[0-9]\+]{\.header-section-number}/###/' test.rmd
Run Code Online (Sandbox Code Playgroud)
  • 添加 YAML 标头
echo "$(echo -e "\n" | cat - test.rmd)" > test.rmd
echo "$(echo '---' | cat - test.rmd)" > test.rmd
echo "$(echo 'title: '\"'test'\" | cat - test.rmd)" > test.rmd
echo "$(echo '---' | cat - test.rmd)" > test.rmd
Run Code Online (Sandbox Code Playgroud)

当然,您可以将这些行放在 .sh 中以简化任务


G. *_*eck 5

如果 Markdown 文件 ( .md) 就足够了,那么pandoc如果您还没有它,请下载并安装。然后从命令行或使用system("pandoc ...")shell("pandoc ...")从 R 中运行它。

pandoc https://cran.r-project.org/web/packages/tidytext/vignettes/tidytext.html -o out.md
Run Code Online (Sandbox Code Playgroud)

对于特定文件,可以对源代码和输出部分进行后处理,但需要付出一些额外的努力,这可能是相当大的。


Dir*_*tel 5

简而言之,没有.

pandoc二进制几乎是纯粹的迷死人了,我用它如在转换html输出从Rd文件回降价(被包含在其他的降价文件).

但是它pandoc用于它所知道的:从markdown转换为html等 pandoc本身对R一无所知.除了从它创建的输出中获取代码的形而上学困难之外,你有一个工具不匹配.

所以在某些情况下:您可能需要原始源代码,因为您无法从它生成的html输出中重新创建Rmd.


Mar*_*eal 5

您可以通过以下方式获得 98% 的结果:

  1. 打开一个新的 rmarkdown 文件(在 RStudio v 1.4+ 中),
  2. 单击“切换到可视化 Markdown 编辑器”按钮*,
  3. 选择并复制浏览器中的 html 输出
  4. 粘贴到您的 rmarkdown 文件中。

为了获得最后 2%,您需要确保 R 代码块被识别:

  1. 单击“切换到源编辑器”按钮(与上面相同的按钮)。
  2. 查找并替换<!-- --> ```{r}并在完成代码块后使用 ```

并确保数据按代码要求可用。祝你好运!

*要切换到 Markdown 文档的可视模式,请使用编辑器工具栏右上角带有指南针图标的按钮 - 此处描述: https: //blog.rstudio.com/2020/09/30/rstudio-v1 -4-预览-视觉-markdown-编辑/