如何从 .Rmd 文件创建 .md 文件以便在 hugo-Apero 主题中创建 TOC?

Posted

技术标签:

【中文标题】如何从 .Rmd 文件创建 .md 文件以便在 hugo-Apero 主题中创建 TOC?【英文标题】:How can I create an .md file from a .Rmd file in order to create a TOC in hugo-Apero theme? 【发布时间】:2022-01-22 21:37:22 【问题描述】:

我对 Rmarkdown 和 blogdown 完全陌生,我很难理解 .markdown、.Rmarkdown、.Rmd 等 .md 等文件是如何生成的,并且在某些方面与 Rstudio 的工作方式不同.

更具体地说,我正在 Rstudio 中构建一个带有 Hugo Apéro 主题的网站,因此带有 blogdown 和 Rmarkdown 文件。

我想创建一系列相互关联的博文,并在页面左侧使用目录,就像艾莉森·希尔在她自己的博客中所做的那样here

从理论上讲,这并不难,我设法在我自己的系列中写了第一篇博客文章,其中包含一些数学方程式以及我想要的所有 .Rmd 文件。

这很棘手,当我编织所述 .Rmd 文件时,它生成一个 .html 文件。我找不到一种方法来生成 hugo 和/或 blogdown 所需的 .md 文件(我真的不知道这里有什么作用)来生成一个特定博客文章的 TOC。查看Alison Hill's blog posts,它对应于 On this page TOC。

我知道 Rstudio v2 需要一些工作来生成 .html .md 文件(请参阅这个非常具体的问题 here)但是,建议的解决方案似乎都不适合我.

我设法从 .Rmarkdown 文件生成了一个 .markdown 文件,它可以像我想要的那样渲染 TOC,但是,.Rmarkdown 文件不是数学渲染的最佳选择,(请参阅Creating Websites with R Markdown - Ch1.5),不是在 Rstudio 等中创建的...这不会让我想使用这种格式(也许这是一个错误?)

最后一页中没有 TOC 似乎与另一个元素有关:标题链接按钮。尽管如此,看着Alison Hill's blog posts,我注意到每个标题旁边都有一个链接按钮,如果我使用 .Rmd 文件(仅生成 .html 文件),但它们出现在 .Rmarkdown 文件(仅生成 .md文件)

所以我想我的问题是:

    如何从 .Rmd 文件中包含目录?

    如何从 Rstudio 中的 .Rmd 文件创建 .md 文件?以及为什么这些解决方案都不适合我:

    html_document() 中使用参数keep_md = TRUE 拨打rmarkdown::render()clean = FALSE 使用md_document 作为一种输出格式

另外,在撰写我的博客文章时,我想创建类似Hugo Apero documentation 的面板集,但它不适用于 .Rmd 文件中的第一种语法:

`< panelset class="greetings" > 
< panel name="Hello! :wave:" >
  hello
< /panel >
< panel name="Goodbye :dash:" >
  goodbye
< /panel >
< /panelset >`

它仅适用于文档中提供的 HTML 代码。我猜这不是正常行为。

    有没有办法让简单的面板集语法工作?

更多信息,这里是 sessionInfo() 的结果:

R version 4.1.2 (2021-11-01)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.7       bookdown_0.24    ps_1.6.0         later_1.3.0      digest_0.6.29   
 [6] R6_2.5.1         jsonlite_1.7.2   magrittr_2.0.1   evaluate_0.14    blogdown_1.6    
[11] stringi_1.7.6    rlang_0.4.12     promises_1.2.0.1 rstudioapi_0.13  rmarkdown_2.11  
[16] tools_4.1.2      stringr_1.4.0    servr_0.24       processx_3.5.2   httpuv_1.6.3    
[21] xfun_0.29        yaml_2.2.1       fastmap_1.1.0    compiler_4.1.2   htmltools_0.5.2 
[26] knitr_1.37  

【问题讨论】:

【参考方案1】:

要从.Rmd 帖子生成.md,您需要设置

options(blogdown.method = 'markdown')

在您的.Rprofile 中。请参阅Section 1.4 of the blogdown book 了解更多信息。

别忘了删除.html 输出文件。

或者,使用扩展名 .Rmarkdown 代替 .Rmd,这也为您提供 Markdown 输出而不是 HTML。

【讨论】:

以上是关于如何从 .Rmd 文件创建 .md 文件以便在 hugo-Apero 主题中创建 TOC?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个 RMarkdown (.Rmd) 文件组合成一个输出?

终于解决了Rstudio中Rmarkdown的.rmd文件knit为PDF

注释掉 R Markdown 中的文本(Rmd 文件)

文件指令

如何禁用分段上传,以便同步匹配 s3cmd 中本地和远程文件的 md5sum

如何创建在 PyPI 上显示图片的 README.md? [复制]