【问题标题】:Compile Bookdown to Markdown?将 Bookdown 编译为 Markdown?
【发布时间】:2019-09-30 08:36:32
【问题描述】:

有什么方法可以将 Bookdown 项目构建为 Markdown 而不是 HTML 或 TeX?

我问是因为我需要对 Bookdown 的最终 Markdown 输出进行后处理,以便提取 R 和 Python 笔记本以供下载。

更详细地说,我正在使用 Bookdown 构建一个嵌入笔记本以供下载的教科书,其中笔记本包含 bookdown .Rmd 文件中的代码和文本的子集。例如,一个章节可能包含多个笔记本。

为了做到这一点,我在 RMarkdown 输入文本中放置了开始和结束注释标记以识别将成为笔记本的部分,然后对生成的 Markdown 文件进行后处理以提取笔记本部分。就像这样:

<!--- notebook: first_section.Rmd
-->

Some explanation, maybe using Bookdown extra markup such as @a_citation.

```{r}
a <- 1
a
```

<!--- end of notebook
-->

More markdown.

```{r}
# More code not in notebook.
b <- 2
```

显然我可以使用输入 RMarkdown 页面,但这会很难看,因为所有扩展的 Bookdown 标记,如引用、交叉引用等,都会以原始和丑陋的形式出现在生成的笔记本中。所以我真的很希望能够在合并、解析引用和交叉引用之后获得最终的输出 Markdown。有什么办法吗?

我的问题类似于this as-yet unanswered question,但增加了我对这个问题的官方解决方案的动力。

【问题讨论】:

  • 你可以尝试在对render_book()bookdown::render_book('index.Rmd', clean = FALSE)的调用中将clean选项设置为FALSE,(来自:github.com/rstudio/bookdown/issues/317
  • 抱歉,我应该说,我已经尝试过 clean=FALSE,但这会在源目录中留下中间的 .utf8.md 文件,这些文件与我已经进入的章节 .md 文件相同来自 knit / merge build 的输出目录。这些文件确实解析了一些标记,但它们没有解析 (ref:foo) 或引用引用。

标签: r r-markdown bookdown


【解决方案1】:

在 CRAN 上使用最新版本的 bookdown,您可以使用输出格式 bookdown::markdown_document2,例如,

output: 
  bookdown::markdown_document2:
    base_format: rmarkdown::md_document
    variant: gfm

【讨论】:

    猜你喜欢
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多