Skip to content

Commit

Permalink
only knit rmd files to md if they have changed
Browse files Browse the repository at this point in the history
  • Loading branch information
jsta authored and fmichonneau committed Aug 21, 2018
1 parent 79bf7ad commit ec89982
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
5 changes: 2 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,8 @@ HTML_DST = \
## lesson-md : convert Rmarkdown files to markdown
lesson-md : ${RMD_DST}

# Use of .NOTPARALLEL makes rule execute only once
${RMD_DST} : ${RMD_SRC}
@bin/knit_lessons.sh ${RMD_SRC}
_episodes/%.md: _episodes_rmd/%.Rmd
@bin/knit_lessons.sh $< $@

## lesson-check : validate lesson Markdown.
lesson-check : lesson-fixme
Expand Down
17 changes: 10 additions & 7 deletions bin/generate_md_episodes.R
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,18 @@ generate_md_episodes <- function() {
install.packages(missing_pkgs)
}

## find all the Rmd files, and generate the paths for their respective outputs
src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE)
dest_md <- file.path("_episodes", gsub("Rmd$", "md", basename(src_rmd)))
## get the Rmd file to process from the command line, and generate the path for their respective outputs
args <- commandArgs(trailingOnly = TRUE)
if (length(args) != 2){
stop("input and output file must be passed to the script")
}

src_rmd <- args[1]
dest_md <- args[2]

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

knitr::knit(src_rmd, output = dest_md)

# Read the generated md files and add comments advising not to edit them
vapply(dest_md, function(y) {
con <- file(y)
Expand Down
2 changes: 1 addition & 1 deletion bin/knit_lessons.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
# The Makefile passes in the names of files.

if [ $# -ne 0 ] ; then
Rscript -e "source('bin/generate_md_episodes.R')"
Rscript -e "source('bin/generate_md_episodes.R')" $*
fi

0 comments on commit ec89982

Please sign in to comment.