Intro to ottrpal

ottrpal contains tools and functions to be used with an OTTR repository course. It converts an OTTR course (Open-Source Tools for Training Resources) into a files ready for upload to Massive Open Online Courses (MOOCs): Coursera and Leanpub.

Installing ottrpal:

You can install ottrpal from CRAN or from GitHub.

Optional input files:

Set up an OTTR GitHub repository

Follow the instructions here to set up your own OTTR GitHub repository for a new course.

Running ottrpal

In the base of your OTTR repository, you can run this command to set up a Leanpub version of your course. The ottrpal package converts your files using this base function, where base_url is where the OTTR course pages are published, the GitHub pages URL.

ottrpal::bookdown_to_embed_leanpub(base_url = "https://jhudatascience.org/OTTR_Template/")

By default, ottrpal will re-run a bookdown::render_book("index.Rmd") rendering of your chapters first before converting the files to the Leanpub ready format. However, if you wish to skip this step, you can set render = FALSE when running the ottrpal::bookdown_to_embed_leanpub() function.

About the Book.txt file:

Leanpub requires a Book.txt file to know what order the chapters/quizzes should be published.

By default, your Book.txt file will not be autogenerated but ottrpal will look in your given directory for an existing Book.txt file which it will copy over to the output directory.

You can create a Book.txt file manually, or if your quizzes and chapters are numbered, ottrpal can create the Book.txt file based on the numbers going from low to high and quizzes following chapters of the same number. (e.g. quiz_03.md will be placed after 03-some_chapter_file.Rmd).

To have ottrpal attempt to autogenerate this file, set make_book_txt to TRUE.

ottrpal::bookdown_to_embed_leanpub(base_url = "https://jhudatascience.org/OTTR_Template/",
                                   make_book_txt = TRUE)

If no Book.txt file is found and make_book_txt is set to FALSE (this is the default setting), ottrpal will fail.

A ottrpal autogenerated Book.txt file might look something like this:

index.Rmd
01-chapter.Rmd
quiz_1.md
02-chapter.Rmd
quiz_2.md
about.Rmd

Also note that any index.Rmd will always be placed first and any about.Rmd file will be placed last.

Setting up quizzes:

By default, ottrpal will look for a folder called quizzes/ to find your quiz .md files. If your quizzes are located somewhere else, you will need to use the quiz_dir argument to specify that:

ottrpal::bookdown_to_embed_leanpub(base_url = "https://jhudatascience.org/OTTR_Template/",
                                   make_book_txt = TRUE,
                                   quiz_dir = "some_directory")

If you don’t have quizzes, you can say quiz_dir = NULL to skip all quiz steps.

About the output files

Leanpub’s Github writing mode will look for a directory called manuscript to publish from. You should not edit the files in manuscript/ by hand since a re-run of ottrpal will cause your changes to be overwritten.

If there is text you would like added to the end of each chapter (like a link to a feedback survey for example), you can supply a character string to the footer_text argument in the main ottrpal::bookdown_to_leanpub() function.

# Set up a character string
survey_link <- "Please provide any feedback you have by filing a GitHub issue [here](https://github.com/jhudsl/OTTR_Template/issues)"

# Supply the footer text in the main function
ottrpal::bookdown_to_embed_leanpub(base_url = "https://jhudatascience.org/OTTR_Template/",
                                   make_book_txt = TRUE,
                                   footer_text = survey_link)
## R version 4.4.0 (2024-04-24)
## Platform: x86_64-apple-darwin20
## Running under: macOS Ventura 13.5.2
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.0
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] vctrs_0.6.5       cli_3.6.3         knitr_1.47        rlang_1.1.4      
##  [5] xfun_0.45         purrr_1.0.2       textshaping_0.4.0 jsonlite_1.8.8   
##  [9] htmltools_0.5.8.1 ragg_1.3.2        sass_0.4.9        rmarkdown_2.27   
## [13] evaluate_0.24.0   jquerylib_0.1.4   fastmap_1.2.0     yaml_2.3.8       
## [17] lifecycle_1.0.4   memoise_2.0.1     compiler_4.4.0    fs_1.6.4         
## [21] htmlwidgets_1.6.4 rstudioapi_0.16.0 systemfonts_1.1.0 digest_0.6.36    
## [25] R6_2.5.1          magrittr_2.0.3    bslib_0.7.0.9000  tools_4.4.0      
## [29] pkgdown_2.0.9     cachem_1.1.0      desc_1.4.3