Skip to content

Commit

Permalink
move data/ into _episodes/ and _episodes_rmd/
Browse files Browse the repository at this point in the history
`generate_md_episodes()` is modified such that datasets storred into
_episodes_rmd/data/ needed to knit the episodes, are copied into
_episodes/data/, and are made available at the root of the site.
  • Loading branch information
fmichonneau committed Jun 24, 2016
1 parent c565218 commit 41a7763
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 10 deletions.
File renamed without changes.
Empty file added _episodes_rmd/data/.gitkeep
Empty file.
46 changes: 36 additions & 10 deletions bin/generate_md_episodes.R
Original file line number Diff line number Diff line change
@@ -1,15 +1,41 @@
if (require("knitr")) {
if (packageVersion("knitr") < '1.9.19') {
stop("knitr must be version 1.9.20 or higher")
}
} else stop("knitr 1.9.20 or above is needed to build the lessons.")
generate_md_episodes <- function() {

if (!require("stringr"))
stop("The package stringr is required for generating the lessons.")
if (require("knitr")) {
if (packageVersion("knitr") < '1.9.19') {
stop("knitr must be version 1.9.20 or higher")
}
} else stop("knitr 1.9.20 or above is needed to build the lessons.")

src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE)
dest_md <- file.path("_episodes", gsub("Rmd$", "md", basename(src_rmd)))
if (!require("stringr"))
stop("The package stringr is required for generating the lessons.")

mapply(function(x, y) {
## where the Rmd files and the datasets are located
rmd_path <- "_episodes_rmd"
rmd_data <- file.path(rmd_path, "data")

## where the markdown files and the datasets will end up
dest_path <- "_episodes"
dest_data <- file.path(dest_path, "data")

## find all the Rmd files, and generates the paths for their respective outputs
src_rmd <- list.files(pattern = "??-*.Rmd$", path = rmd_path, full.names = TRUE)
dest_md <- file.path(dest_path, gsub("Rmd$", "md", basename(src_rmd)))

## knit the Rmd into markdown
mapply(function(x, y) {
knitr::knit(x, output = y)
}, src_rmd, dest_md)


## copy the datasets from _episodes_rmd/data to _episodes/data
rmd_data_files <- list.files(path = rmd_data, full.names = TRUE)
dest_data_files <- file.path(dest_data, basename(rmd_data_files))

if (!dir.exists(file.path(dest_data)))
dir.create(file.path(dest_data))

apply(cbind(rmd_data_files, dest_data_files), 1,
function(x) file.copy(x[1], x[2]))
}

generate_md_episodes()

0 comments on commit 41a7763

Please sign in to comment.