hoffentlich @Yihui der Lage, Ihre Frage eleganter als meine vorgeschlagene Lösung hier zu beantworten. :)
ich habe früher einen Hack hier Include HTML files in R Markdown file?. Und sollte das Verfahren für Ihre Anforderungen arbeiten als auch
bookstruct.Rmd Datei:
---
title: "BookTitle"
output: html_document
---
My introduction goes here
<<insertHTML:[chapters/chapter2.Rmd]
some practice questions
<<insertHTML:[chapters/chapter3.Rmd]
Kapitel/chapter2.Rmd Datei:
## Chapter 2
This is my chapter 2.
Kapitel/chapter3.Rmd Datei:
## Chapter 3
This is my chapter 3.
Führen Sie in der R-Konsole Folgendes aus:
library(stringi)
subRender <- function(mdfile, flist) {
#replace <<insertHTML:flist with actual html code
#but without beginning white space
rmdlines <- readLines(mdfile)
toSubcode <- paste0("<<insertHTML:[",flist,"]")
locations <- sapply(toSubcode, function(xs) which(stri_detect_fixed(rmdlines, xs)))
subfiles <- lapply(flist, function(f) stri_trim(readLines(f)))
strlens <- sapply(subfiles,length)
#render html doc
newRmdfile <- tempfile("temp", getwd(), ".Rmd")
#insert flist at specified locations
#idea from @Marek in [2]
alllines <- c(rmdlines[-locations], unlist(subfiles))
ind <- c((1:length(rmdlines))[-locations],
unlist(lapply(1:length(locations), function(n) locations[n] + seq(0, 1, len=strlens[n])/1.1)))
sortedlines <- alllines[order(ind)]
#render html
write(sortedlines, newRmdfile)
rmarkdown::render(newRmdfile, "html_document")
shell(gsub(".Rmd",".html",basename(newRmdfile),fixed=T))
} #end subRender
subRender(mdfile="bookstruct.Rmd",
flist=list("chapters/chapter2.Rmd", "chapters/chapter3.Rmd"))
[2] How to insert elements into a vector?
verwandt? http://stackoverflow.com/q/26489328/471093 – baptiste
Danke. Verwandt, wahrscheinlich so, aber nicht direkt anwendbar von dem, was ich sagen kann. Wir haben uns entschieden, LaTeX nicht zu verwenden ... – Alan
Ich habe versucht, das Problem mit Strick 1.12.3 zu reproduzieren und kann es nicht reproduzieren. [This] (http://www.r-fiddle.org/#/fiddle?id=1lWeNXEg) Dokument funktioniert gut mit 'first.Rmd' und' second.Rmd' im Unterordner 'rmd'. –