From 41a7763598956d7b03a3cbb659d37ea488576b3f Mon Sep 17 00:00:00 2001 From: Francois Michonneau Date: Fri, 24 Jun 2016 13:13:26 -0400 Subject: [PATCH 1/3] move data/ into _episodes/ and _episodes_rmd/ `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. --- {data => _episodes/data}/.gitkeep | 0 _episodes_rmd/data/.gitkeep | 0 bin/generate_md_episodes.R | 46 ++++++++++++++++++++++++------- 3 files changed, 36 insertions(+), 10 deletions(-) rename {data => _episodes/data}/.gitkeep (100%) create mode 100644 _episodes_rmd/data/.gitkeep diff --git a/data/.gitkeep b/_episodes/data/.gitkeep similarity index 100% rename from data/.gitkeep rename to _episodes/data/.gitkeep diff --git a/_episodes_rmd/data/.gitkeep b/_episodes_rmd/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/bin/generate_md_episodes.R b/bin/generate_md_episodes.R index cbb6783..4fecabe 100644 --- a/bin/generate_md_episodes.R +++ b/bin/generate_md_episodes.R @@ -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() From 993bac708dfb9d677bf5245d48b09742fa46d5a3 Mon Sep 17 00:00:00 2001 From: Francois Michonneau Date: Tue, 28 Jun 2016 11:27:31 -0400 Subject: [PATCH 2/3] simplify to single _episodes_rmd/data folder --- _episodes/data/.gitkeep | 0 bin/generate_md_episodes.R | 22 ++-------------------- 2 files changed, 2 insertions(+), 20 deletions(-) delete mode 100644 _episodes/data/.gitkeep diff --git a/_episodes/data/.gitkeep b/_episodes/data/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/bin/generate_md_episodes.R b/bin/generate_md_episodes.R index 4fecabe..43bf65e 100644 --- a/bin/generate_md_episodes.R +++ b/bin/generate_md_episodes.R @@ -9,33 +9,15 @@ generate_md_episodes <- function() { if (!require("stringr")) stop("The package stringr is required for generating the lessons.") - ## 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))) + src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE) + dest_md <- file.path("_episodes", 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() From ea8797f21483b4ee3d8f6e49cda278193a506821 Mon Sep 17 00:00:00 2001 From: Francois Michonneau Date: Tue, 28 Jun 2016 11:35:08 -0400 Subject: [PATCH 3/3] re-add ./data folder --- data/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/.gitkeep diff --git a/data/.gitkeep b/data/.gitkeep new file mode 100644 index 0000000..e69de29