Skip to content

Commit

Permalink
Merge branch 'main' into cansavvy/reorg
Browse files Browse the repository at this point in the history
  • Loading branch information
cansavvy committed Jul 1, 2024
2 parents ee27a10 + cc20abb commit 7a06ddd
Show file tree
Hide file tree
Showing 15 changed files with 113 additions and 111 deletions.
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ vignettes/.httr-oauth$
^package_bundles/leanbuild_0.1.2.tar.gz*
^package_bundles/leanbuild_0.1.2.tgz*
inst/extdata/tmp/default*
quarto-session*

^CRAN-SUBMISSION$
Binary file removed .github/.DS_Store
Binary file not shown.
57 changes: 10 additions & 47 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,68 +12,31 @@ name: R-CMD-check

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}

name: ${{ matrix.config.os }} (${{ matrix.config.r }})

strategy:
fail-fast: false
matrix:
config:
- {os: windows-latest, r: 'release'}
- {os: macOS-latest, r: 'release'}
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}
- {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: ${{ matrix.config.rspm }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
runs-on: ubuntu-latest
container:
image: jhudsl/base_ottr

steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}

- uses: r-lib/actions/setup-pandoc@v2

- name: Query dependencies
run: |
install.packages('remotes')
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
shell: Rscript {0}

- name: Restore R package cache
if: runner.os != 'Windows'
uses: actions/cache@v2
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-

- name: Install system dependencies
if: runner.os == 'Linux'
run: |
while read -r cmd
do
eval sudo $cmd
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
- name: Install dependencies
run: |
remotes::install_deps(dependencies = TRUE, force = TRUE)
remotes::install_deps(dependencies = TRUE)
remotes::install_cran("devtools")
sessionInfo()
shell: Rscript {0}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

- name: Check
run: |
options(crayon.enabled = TRUE)
devtools::document()
devtools::load_all()
rcmdcheck::rcmdcheck(args = c("--no-manual"), check_dir = "check")
shell: Rscript {0}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

- name: Check testthat
if: runner.os != 'Windows'
Expand Down
File renamed without changes.
1 change: 0 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ Imports:
rvest,
stringr,
xml2,
quarto,
yaml
Suggests:
remotes,
Expand Down
4 changes: 3 additions & 1 deletion R/data.R
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,12 @@ download_ottr_template <- function(dir = "inst/extdata", type = "rmd") {
download.file(url,
destfile = file_path
)
}
output_dir <- stringr::str_remove(file.path(dir, file_name), ".zip")

if (!dir.exists(output_dir)) {
unzip(file_path, exdir = dir)
}
output_dir <- stringr::str_remove(file.path(dir, file_name), ".zip")

return(output_dir)
}
Expand Down
5 changes: 5 additions & 0 deletions R/iframe_leanpub.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#' Column names `url`, `chapt_title`, and `img_path` must be used.
#' If no chapter title column supplied, the basename of the url will be used,
#' If no image column supplied, default image used.
#' @param html_page The file path of the rendered index.html file
#' @param base_url The base url of where the chapters are published -- the url to provide to the iframe in Leanpub
#' e.g. https://jhudatascience.org/OTTR_Template/coursera
#' @param default_img A google slide link to the default image to be used for all chapters
Expand Down Expand Up @@ -39,6 +40,7 @@
#' }
website_to_embed_leanpub <- function(path = ".",
chapt_img_key = NULL,
html_page = file.path(base_url, "index.html"),
base_url = NULL,
clean_up = FALSE,
default_img = NULL,
Expand Down Expand Up @@ -77,6 +79,7 @@ website_to_embed_leanpub <- function(path = ".",
}
chapt_df <- get_chapters(
html_page = paste0(base_url, "index.html"),
base_url = base_url
) %>%
dplyr::mutate(chapt_title = gsub("\\:|\\?|\\&|\\!|\\'", "", chapt_title))
}
Expand Down Expand Up @@ -291,6 +294,7 @@ make_embed_markdown <- function(url,

#' Make Leanpub file that has embed webpage of a chapter
#'
#' @param html_page The file path of the rendered index.html file. It can be a url
#' @param base_url The base url of where the chapters are published -- the url to provide to the iframe in Leanpub
#' e.g. https://jhudatascience.org/OTTR_Template/coursera
#'
Expand All @@ -299,6 +303,7 @@ make_embed_markdown <- function(url,
#'
#' @export
#'

get_chapters <- function(html_page = file.path("docs", "index.html"),
base_url = ".") {
# Read in html
Expand Down
3 changes: 2 additions & 1 deletion R/utils.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@

utils::globalVariables(c(
"num", "quiz_dir", "type_url", "file_name", "trimmed", "quiz",
"quiz_path", "type", "q_num", "verbose", "chapt_title", "data_path", "image_dir"
"quiz_path", "type", "q_num", "verbose", "chapt_title", "data_path", "image_dir",
"convert_footnotes"
))


Expand Down
Binary file removed man/figures/New.png
Binary file not shown.
Binary file removed man/figures/Upload.png
Binary file not shown.
Binary file removed man/figures/copy_url.png
Binary file not shown.
42 changes: 24 additions & 18 deletions tests/testthat/test-quarto_leanpub_prep.R
Original file line number Diff line number Diff line change
@@ -1,28 +1,34 @@
test_that("Tocless render for Quarto", {
test_that("Create Leanpub IFrames for Quarto", {

dir <- download_ottr_template(dir = "inst/extdata", type = "quarto")
dir <- download_ottr_template(dir = ".", type = "quarto")

# render_without_toc()
quarto::quarto_render(dir,
metadata = list(sidebar = F, toc = F),
quarto_args = c('--output-dir', 'docs/no_toc/'))

# TODO: This should be functionalized and incorporated into the package
# curl -o make_screenshots.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/make_screenshots.R
# chapt_urls=$(Rscript --vanilla make_screenshots.R \
# --git_pat ${{ secrets.GH_PAT }} \
# --repo $GITHUB_REPOSITORY \
# chapt_urls=$(Rscript --vanilla make_screenshots.R
# --git_pat sys.getEnv("GH_PAT")
# --repo fhdsl/OTTR_Quarto
# --output_dir resources/chapt_screen_images)
unlink(dir, recursive = TRUE)
})

## TEST HERE:
# 1. Does each chapter have screenshot?
# 2. Is the file 'resources/chapt_screen_images/chapter_urls.tsv' made fresh?
# 2. Does chapter_urls.tsv file made have columns with information that are labeled "url", "chapt_title" and "img_path"

test_that("Create Leanpub IFrames for Quarto", {
# ottrpal::bookdown_to_embed_leanpub(
# render = FALSE, \
# chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
# make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'), \
# quiz_dir = NULL)
#ottrpal::bookdown_to_embed_leanpub(
# render = FALSE,
# chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv',
# make_book_txt = TRUE,
# quiz_dir = NULL)

## TEST HERE:
# 1. Did each chapter get a md in the manuscript folder?
# 2. Does each md link to the appropriate sceenshot?
# 3. Did the screenshot file path that's in the md lead to the appropriate file path?

# ottrpal::bookdown_to_embed_leanpub(
# render = FALSE, \
# chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
# make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'))
unlink(dir, recursive = TRUE)
file.remove(paste0(dir, ".zip"))
})
15 changes: 10 additions & 5 deletions tests/testthat/test-quizzes.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,22 @@ test_that("Quiz checks", {
good_quiz_checks <- check_all_questions(good_quiz_specs)

# Using bad quiz md example

bad_quiz <- readLines(bad_quiz_path())
bad_quiz_specs <- parse_quiz(bad_quiz)
bad_quiz_checks <- check_all_questions(bad_quiz_specs)

# THe following checks *should fail* because we're giving it a bad quiz.
bad_quiz_checks <- suppressWarnings(check_all_questions(bad_quiz_specs))

## Make a temporary quiz directory
quiz_dir <- dirname(good_quiz_path())

## Now check the quizzes in that directory
all_quiz_results <- check_quizzes(quiz_dir = quiz_dir)
# The following checks *should also fail* because the bad quiz is in there
all_quiz_results <- suppressWarnings(check_quizzes(quiz_dir = quiz_dir))

## TEST HERE:
# 1. quiz_error_report.tsv should be made
# 2. bad quiz should have errors
# 3. good quiz should pass!

# Need to download OTTR course for testing
# ottrpal::check_quizzes(quiz_dir = file.path(root_dir, "quizzes"), write_report = TRUE, verbose = TRUE)
})
52 changes: 35 additions & 17 deletions tests/testthat/test-rendering.R
Original file line number Diff line number Diff line change
@@ -1,36 +1,54 @@
test_that("Rmd Rendering", {
dir <- download_ottr_template(dir = ".", type = "rmd")
rmd_dir <- download_ottr_template(dir = ".", type = "rmd")

bookdown::render_book("OTTR_Template-main")
unlink(dir)
dir.exists(rmd_dir)

bookdown::render_book(rmd_dir)

unlink(rmd_dir, recursive = TRUE)
file.remove(paste0(rmd_dir, ".zip"))
})

test_that("Quarto Rendering", {
dir <- download_ottr_template(dir = ".", type = "quarto")
quarto_dir <- download_ottr_template(dir = ".", type = "quarto")

dir.exists(quarto_dir)

quarto::quarto_render(dir)
quarto::quarto_render(dir,
# Render it normal
quarto::quarto_render(quarto_dir, as_job = FALSE)

# Render it a different way
quarto::quarto_render(quarto_dir,
metadata = list(sidebar = F, toc = F),
quarto_args = c("--output-dir", "docs/no_toc/")
quarto_args = c("--output-dir", "docs/no_toc/"),
as_job = FALSE

)
unlink(dir)
unlink(quarto_dir, recursive = TRUE)
file.remove(paste0(quarto_dir, ".zip"))
})

test_that("Rmd Website Rendering", {
dir <- download_ottr_template(dir = ".", type = "rmd_website")
rmd_web_dir <- download_ottr_template(dir = ".", type = "rmd_website")

rmarkdown::clean_site(dir, preview = FALSE)
dir.exists(rmd_web_dir)

rmarkdown::render_site(dir)

unlink(dir)
rmarkdown::clean_site(rmd_web_dir, preview = FALSE)

rmarkdown::render_site(rmd_web_dir)

unlink(rmd_web_dir, recursive = TRUE)
file.remove(paste0(rmd_web_dir, ".zip"))
})


test_that("Quarto Website Rendering", {
dir <- download_ottr_template(dir = ".", type = "quarto_website")
quarto_web_dir <- download_ottr_template(dir = ".", type = "quarto_website")

dir.exists(quarto_web_dir)

quarto::quarto_render(quarto_web_dir, as_job = FALSE)

quarto::quarto_render(dir)

unlink(dir)
unlink(quarto_web_dir, recursive = TRUE)
file.remove(paste0(quarto_web_dir, ".zip"))
})
44 changes: 23 additions & 21 deletions tests/testthat/test-rmd_leanpub_prep.R
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@

test_that("Tocless render for Rmd", {
# render_without_toc()
test_that("Create Leanpub IFrames for Rmd", {

dir <- download_ottr_template(dir = ".", type = "rmd")

dir.exists(dir)

bookdown::render_book(dir)

# TODO: This should be functionalized and incorporated into the package
# curl -o make_screenshots.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/make_screenshots.R
# chapt_urls=$(Rscript --vanilla make_screenshots.R \
# --git_pat ${{ secrets.GH_PAT }} \
# --repo $GITHUB_REPOSITORY \
# Rscript --vanilla make_screenshots.R
# --git_pat sys.getEnv("GH_PAT")
# --repo fhdsl/OTTR_Template
# --output_dir resources/chapt_screen_images)

unlink("dir", recursive = TRUE)
})


test_that("Create Leanpub IFrames for Rmd", {

dir <- download_ottr_template(dir = ".", type = "rmd")
## TEST HERE:
# 1. Does each chapter have screenshot?
# 2. Is the file 'resources/chapt_screen_images/chapter_urls.tsv' made fresh?
# 2. Does chapter_urls.tsv file made have columns with information that are labeled "url", "chapt_title" and "img_path"

# ottrpal::bookdown_to_embed_leanpub(
# render = FALSE, \
# chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
# make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'), \
# quiz_dir = NULL)
#ottrpal::bookdown_to_embed_leanpub(
# render = FALSE,
# chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv',
# make_book_txt = TRUE,
# quiz_dir = NULL)

# ottrpal::bookdown_to_embed_leanpub(
# render = FALSE, \
# chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
# make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'))
## TEST HERE:
# 1. Did each chapter get a md in the manuscript folder?
# 2. Does each md link to the appropriate sceenshot?
# 3. Did the screenshot file path that's in the md lead to the appropriate file path?

unlink(dir, recursive = TRUE)
file.remove(paste0(dir, ".zip"))
})

0 comments on commit 7a06ddd

Please sign in to comment.