使用R附加HTML文件

时间:2014-01-20 05:21:20

标签: r knitr r-markdown

我正在使用knitr创建一堆HTML文件,可以将其视为主文档的单独章节。在我创建了所有这些章节之后,我想创建一个文件,其中每个HTML文件都是一个在另一个之下。

我能想到这样做的唯一方法是集成所有模板以创建一个主模板,配置图像的所有路径等,以便它们在主模板的一部分时仍然有效,然后进行编译。这听起来很费劲,我希望有更好的解决方案。

有什么想法吗?

根据knit_html建议,于2014年1月22日增加:

我的文件夹结构是这样的 -

./Templates/Chapter1.Rmd
./Templates/Chapter2.Rmd
./Client1/Chapter1/Chapter1.html
./Client1/Chapter2/Chapter2.html
./Client2/Chapter1/Chapter1.html
./Client2/Chapter2/Chapter2.html

Rmd在客户端文件夹中不存在,甚至不知道编织的路径,直到我调用它并具体告诉它要编织到哪个文件夹。

现在我需要./Templates/CompileItAll.Rmd来生成./Client1/Compiled.html./Client2/Compiled.html。我认为底层是可行的,但确实如此,但它在每个子节点的开头添加<!DOCTYPE html>,可以在输出中看到。我尝试指向md文件,添加了rmd文字,但由于某种原因省略了来自./Client/Chapter/*的来源图片 -

```{r child='../Client1/Chapter1/Chapter1.html'}
```
```{r child='../Client1/Chapter2/Chapter2.html'}
```

我做错了吗?

我也试过下面的代码,也省略了源图像。 (我知道这些代码中的路径不起作用,但为了简单起见我保持这种方式,我认为意图很明确)

```{r}
setwd('./Client1/Chapter1')
```

```{r child='./Templates/Chapter1.Rmd'}
```

1 个答案:

答案 0 :(得分:0)

不是knitr解决方案,但可能有用:要简单地加入一堆HTML文件,您可以使用pandoc。如果您将以下代码输入终端,则会将两个文件合并为一个。

pandoc -f html -t html -o file.html file1.html file2.html 

但我怀疑这种方法会给你一个不错的布局。它只是连接的内容,仅此而已。我同意@daroczig对此的评论。