【发布时间】: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