Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Future] transition to use the word 'chapter' over 'episode' #85

Open
zkamvar opened this issue May 4, 2022 · 0 comments
Open

[Future] transition to use the word 'chapter' over 'episode' #85

zkamvar opened this issue May 4, 2022 · 0 comments

Comments

@zkamvar
Copy link
Contributor

zkamvar commented May 4, 2022

Eventually we will want to convert the term "episode" to "chapter." This transition should not be sudden or unexpected, so this is very much a future plan.

These all the places that contain the word 'episode' (which is a lot because the class name needs to change):

R/validate_headings.R:11:#' @note This is an internal function implemented for the [Episode] and [Lesson]
R/validate_headings.R:26:#' e <- l$episodes[[3]]
R/validate_divs.R:1:#' Validate Callout Blocks for sandpaper episodes
R/validate_links.R:57:#'   This function is internal. Please use the methods for the [Episode] and
R/validate_links.R:60:#' @param yrn a [tinkr::yarn] or [Episode] object.
R/validate_links.R:67:#' e <- l$episodes[[3]]
R/validate_links.R:252:# TODO: add Episode$sandpaper to be `TRUE` if the _initial_ state was a
R/validate_links.R:255:  # Add home path, assuming that we can link out from the episode and it will
R/validate_links.R:260:    ".", "episodes", "learners", "instructors", "profiles", 
R/validate_links.R:262:    "_episodes", "_episodes_rmd", "_extras", "_includes"
tests/testthat/examples/link-liquid.xml:19:      </link><link xmlns="http://commonmark.org/xml/1.0" destination="{{ page.root }}{% link _episodes/03-expertise.md %}#expertise-and-teaching" sourcepos="72:3-72:243">
tests/testthat/examples/link-liquid.xml:83:      </link><link xmlns="http://commonmark.org/xml/1.0" destination="{{ page.root }}{% link _episodes/05-memory.md %}#why-guided-practice-is-important" sourcepos="55:6-55:108">
tests/testthat/examples/link-liquid.xml:85:      </link><link xmlns="http://commonmark.org/xml/1.0" destination="{{ page.root }}{% link _episodes/09-motivation.md %}" sourcepos="71:1-71:124">
tests/testthat/examples/link-liquid.xml:87:      </link><link xmlns="http://commonmark.org/xml/1.0" destination="{{ page.root }}{% link _episodes/09-motivation.md %}" sourcepos="106:25-106:257">
tests/testthat/examples/link-liquid.xml:89:      </link><link xmlns="http://commonmark.org/xml/1.0" destination="{{ page.root }}{% link _episodes/10-eia.md %}" sourcepos="188:1-188:84">
tests/testthat/examples/link-liquid.xml:90:      <text>earlier episode</text>
tests/testthat/examples/link-liquid.xml:91:      </link><link xmlns="http://commonmark.org/xml/1.0" destination="{{ page.root }}/{% link _episodes/06-feedback.md %}#minute-cards" sourcepos="365:3-365:93">
tests/testthat/test-Lesson.R:16:  expect_named(snd$episodes, "intro.Rmd")
tests/testthat/test-Lesson.R:41:  expect_length(frg$episodes, 4)
tests/testthat/test-Lesson.R:42:  expect_s3_class(frg$episodes[[1]], "Episode")
tests/testthat/test-Lesson.R:43:  expect_s3_class(frg$episodes[[2]], "Episode")
tests/testthat/test-Lesson.R:44:  expect_s3_class(frg$episodes[[3]], "Episode")
tests/testthat/test-Lesson.R:45:  expect_s3_class(frg$episodes[[4]], "Episode")
tests/testthat/test-Lesson.R:47:  expect_equal(names(frg$episodes), unname(purrr::map_chr(frg$episodes, "name")))
tests/testthat/test-Lesson.R:48:  expect_equal(frg$path, unique(purrr::map_chr(frg$episodes, "lesson")))
tests/testthat/test-Lesson.R:89:  expect_named(chal, c("Episode", "Block", "from", "to", "pos", "level"))
tests/testthat/test-Lesson.R:95:  expect_named(chalr, c("Episode", "Block", "from", "to", "pos", "level"))
tests/testthat/test-Lesson.R:114:  expect_equal(xml2::xml_length(frg2$episodes[[1]]$body), 2)
tests/testthat/test-Lesson.R:115:  expect_equal(xml2::xml_length(frg2$isolate_blocks()$episodes[[1]]$body), 0)
tests/testthat/test-Lesson.R:117:  expect_equal(xml2::xml_length(frg$episodes[[1]]$body), 2)
tests/testthat/test-Lesson.R:121:test_that("Lesson class can remove episodes with $thin()", {
tests/testthat/test-Lesson.R:125:  expect_length(frg2$episodes, 4)
tests/testthat/test-Lesson.R:126:  expect_message(frg2$thin(), "Removing 1 episode: 10-lunch.md", fixed = TRUE)
tests/testthat/test-Lesson.R:127:  expect_length(frg2$episodes, 3)
tests/testthat/test-Lesson.R:128:  expect_named(frg2$episodes, c("12-for-loops.md", "14-looping-data-sets.md", "17-scope.md"))
tests/testthat/test-Lesson.R:131:  expect_message(frg2$reset()$thin(), "Removing 1 episode: 10-lunch.md", fixed = TRUE)
tests/testthat/test-Lesson.R:133:  expect_length(frg$episodes, 4)
tests/testthat/test-Lesson.R:135:  expect_length(frg$episodes, 3)
tests/testthat/test-Lesson.R:136:  expect_named(frg$episodes, c("12-for-loops.md", "14-looping-data-sets.md", "17-scope.md"))
tests/testthat/helper-test-div.R:2:expect_moved_yaml <- function(episode, class, position) {
tests/testthat/helper-test-div.R:4:  act <- quasi_label(rlang::enquo(episode), arg = "body")
tests/testthat/_snaps/conversion.md:1:# Episodes with commonmark-violating liquid relative links can be read
tests/testthat/_snaps/conversion.md:16:# Episodes can be converted to use sandpaper
tests/testthat/test-div.R:173:  e <- Episode$new(tmp)
tests/testthat/test-get_stylesheet.R:10:  # load the test episode and confirm output
tests/testthat/test-get_stylesheet.R:11:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-get_stylesheet.R:12:  e <- Episode$new(scope)
tests/testthat/test-images.R:1:imt <- Episode$new(test_path("examples", "image-test.md"))
tests/testthat/test-get_list_block.R:1:scope <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-get_list_block.R:2:e     <- Episode$new(scope)
tests/testthat/test-get_challenges.R:10:  expect_length(get_challenges(frg$episodes[[expected[1]]]$body), 0)
tests/testthat/test-get_challenges.R:11:  expect_length(get_challenges(frg$episodes[[expected[2]]]$body), 3)
tests/testthat/test-get_challenges.R:12:  expect_length(get_challenges(frg$episodes[[expected[3]]]$body), 2)
tests/testthat/test-get_challenges.R:17:  expect_s3_class(get_challenges(frg$episodes[[expected[1]]]$body), "xml_nodeset")
tests/testthat/test-validation.R:1:vh   <- Episode$new(test_path("examples/validation-headings.md"))
tests/testthat/test-validation.R:2:dv   <- Episode$new(test_path("examples/validation-divs.md"))
tests/testthat/test-validation.R:3:cats <- Episode$new(test_path("examples/image-test.md"))
tests/testthat/test-validation.R:4:link <- Episode$new(test_path("examples/link-test.md"))
tests/testthat/test-validation.R:5:loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
tests/testthat/test-conversion.R:3:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:4:  e <- Episode$new(loop)
tests/testthat/test-conversion.R:6:  expect_warning(e$use_sandpaper(), "episode body missing")
tests/testthat/test-conversion.R:7:  expect_warning(e$use_dovetail(), "episode body missing")
tests/testthat/test-conversion.R:11:test_that("Episodes with commonmark-violating liquid relative links can be read", {
tests/testthat/test-conversion.R:16:  expect_error(Episode$new(lnsp))
tests/testthat/test-conversion.R:18:  tmp <- Episode$new(lnsp, fix_liquid = TRUE)
tests/testthat/test-conversion.R:24:test_that("Episodes without include=FALSE in setup chunk are still valid", {
tests/testthat/test-conversion.R:26:  rast <- fs::path(lesson_fragment("rmd-lesson"), "_episodes_rmd", "01-test.Rmd")
tests/testthat/test-conversion.R:27:  e <- Episode$new(rast, process_tags = TRUE, fix_links = FALSE)
tests/testthat/test-conversion.R:47:test_that("Episodes can be converted to use sandpaper", {
tests/testthat/test-conversion.R:49:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:50:  e <- Episode$new(loop)
tests/testthat/test-conversion.R:159:test_that("Episodes can be converted to use dovetail", {
tests/testthat/test-conversion.R:161:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:162:  e <- Episode$new(loop)
tests/testthat/test-conversion.R:195:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:196:  e <- Episode$new(loop)
tests/testthat/test-conversion.R:252:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:253:  e <- Episode$new(loop)
tests/testthat/test-conversion.R:310:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:311:  e <- Episode$new(loop)
tests/testthat/test-conversion.R:365:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-conversion.R:366:  e <- Episode$new(loop)
tests/testthat/test-fix_sandpaper_links.R:2:loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-fix_sandpaper_links.R:3:e <- Episode$new(loop)
tests/testthat/test-get_lesson.R:19:  fs::dir_create(dd, "_episodes")
tests/testthat/test-get_lesson.R:42:    names(frg$episodes),
tests/testthat/test-get_lesson.R:57:  expect_true(fs::dir_exists(fs::path(d, "carpentries--lesson-example", "_episodes")))
tests/testthat/test-get_lesson.R:58:  # The episodes in the object are accounted for
tests/testthat/test-get_lesson.R:59:  episodes <- c(
tests/testthat/test-get_lesson.R:70:  expect_named(lex$files, episodes)
tests/testthat/test-get_lesson.R:87:  expect_true(fs::dir_exists(fs::path(d, "carpentries--lesson-example", "_episodes")))
tests/testthat/test-get_lesson.R:88:  # The episodes in the object are accounted for
tests/testthat/test-get_lesson.R:89:  episodes <- c(
tests/testthat/test-get_lesson.R:100:  expect_named(lex$files, episodes)
tests/testthat/test-get_lesson.R:116:  expect_true(fs::dir_exists(fs::path(d, "carpentries--lesson-example", "_episodes")))
tests/testthat/test-get_lesson.R:117:  # The episodes in the object are accounted for
tests/testthat/test-get_lesson.R:118:  episodes <- c(
tests/testthat/test-get_lesson.R:129:  expect_named(lex$files, episodes)
tests/testthat/test-get_lesson.R:148:    lex$episodes,
tests/testthat/test-get_lesson.R:155:    lex$episodes,
tests/testthat/test-get_lesson.R:177:    lex$episodes,
tests/testthat/test-get_lesson.R:184:    lex$episodes,
tests/testthat/test-get_lesson.R:190:    lex$episodes,
tests/testthat/test-get_lesson.R:197:    lex$episodes,
tests/testthat/test-get_lesson.R:203:    lex$episodes,
tests/testthat/test-get_lesson.R:210:    lex$episodes,
tests/testthat/test-get_lesson.R:222:  episodes <- c(
tests/testthat/test-get_lesson.R:233:  expect_length(lex$files, length(episodes))
tests/testthat/test-get_lesson.R:234:  expect_named(lex$files, episodes)
tests/testthat/test-get_lesson.R:238:  names(problems) <- episodes
tests/testthat/test-get_lesson.R:252:  names(n_solutions) <- episodes
tests/testthat/test-get_lesson.R:258:  # All the blocktypes are in episode 04
tests/testthat/test-get_lesson.R:279:  eps <- glue::glue_collapse(episodes[-(4:5)], sep = ', ', last = ', and ')
tests/testthat/test-get_lesson.R:282:    glue::glue("Removing 6 episodes: {eps}")
tests/testthat/test-get_lesson.R:285:  # $episodes ------------------------------------------------------------------
tests/testthat/test-get_lesson.R:286:  expect_named(lex$episodes, episodes[4:5])
tests/testthat/test-get_lesson.R:287:  expect_s3_class(lex$episodes[[1]], "Episode")
tests/testthat/test-get_lesson.R:288:  expect_s3_class(lex$episodes[[2]], "Episode")
tests/testthat/test-get_lesson.R:298:  expect_length(lex$episodes[[4]]$get_blocks(), 12)
tests/testthat/test-get_lesson.R:299:  expect_length(lex$episodes[[4]]$unblock()$get_divs(), 15)
tests/testthat/test-get_lesson.R:300:  expect_length(lex$episodes[[4]]$challenges, 1)
tests/testthat/test-get_lesson.R:301:  expect_length(lex$episodes[[4]]$solutions, 2)
tests/testthat/test-get_lesson.R:314:    "could not find _episodes/, using _episodes_rmd/ as the source"
tests/testthat/test-get_lesson.R:318:  expect_s3_class(rni$episodes[[1]], "Episode")
tests/testthat/test-get_lesson.R:330:    "could not find either _episodes/ or _episodes_rmd/",
R/use_sandpaper.R:3:#' @param body the xml body of an episode
R/use_sandpaper.R:11:    warning("episode body missing", call. = FALSE)
R/utils.R:37:  the_episodes <- fs::dir_ls(src, glob = "*md")
R/utils.R:38:  the_names    <- fs::path_file(the_episodes)
R/utils.R:44:      the_episodes <- the_episodes[the_order]
R/utils.R:49:  if (!any(grepl("\\.R?md$", the_episodes))) {
R/utils.R:55:  episodes <- purrr::map(the_episodes, Episode$new, ...)
R/utils.R:57:    purrr::walk(episodes, ~.x$confirm_sandpaper())
R/utils.R:60:  # Names of the episodes will be the filename, not the basename
R/utils.R:61:  names(episodes) <- the_names
R/utils.R:62:  return(episodes)
R/read_jekyll_episodes.R:1:read_jekyll_episodes <- function(path = NULL, rmd = FALSE, ...) {
R/read_jekyll_episodes.R:3:  md_src  <- fs::path(path, "_episodes")
R/read_jekyll_episodes.R:4:  rmd_src <- fs::path(path, "_episodes_rmd")
R/read_jekyll_episodes.R:10:    stop(glue::glue("could not find either _episodes/ or _episodes_rmd/ in {path}"))
R/read_jekyll_episodes.R:35:    message("could not find _episodes/, using _episodes_rmd/ as the source")
R/read_jekyll_episodes.R:37:    stop(glue::glue("The _episodes/ directory must have (R)markdown files"),
R/read_jekyll_episodes.R:56:  return(list(episodes = eps, rmd = rmd))
R/use_dovetail.R:14:#' @param body the episode body to convert
R/use_dovetail.R:15:#' @return the episode, invisibly
R/use_dovetail.R:20:    warning("episode body missing", call. = FALSE)
R/to_dovetail.R:19:#' blo <- frg$episodes$`14-looping-data-sets.md`$get_blocks()[[2]]
tests/testthat/_snaps/Lesson.md:86:      # Episode: "For Loops" 
tests/testthat/_snaps/Lesson.md:115:      # Episode: "Looping Over Data Sets" 
tests/testthat/_snaps/Lesson.md:133:      ::warning file=_episodes/12-for-loops.md,line=183:: (duplicated)
tests/testthat/_snaps/Lesson.md:134:      ::warning file=_episodes/12-for-loops.md,line=200:: (duplicated)
tests/testthat/_snaps/Lesson.md:135:      ::warning file=_episodes/12-for-loops.md,line=227:: (duplicated)
tests/testthat/_snaps/Lesson.md:136:      ::warning file=_episodes/12-for-loops.md,line=252:: (duplicated)
tests/testthat/_snaps/Lesson.md:137:      ::warning file=_episodes/12-for-loops.md,line=270:: (duplicated)
tests/testthat/_snaps/Lesson.md:138:      ::warning file=_episodes/12-for-loops.md,line=289:: (duplicated)
tests/testthat/_snaps/Lesson.md:139:      ::warning file=_episodes/12-for-loops.md,line=305:: (duplicated)
tests/testthat/_snaps/Lesson.md:140:      ::warning file=_episodes/12-for-loops.md,line=336:: (duplicated)
tests/testthat/_snaps/Lesson.md:141:      ::warning file=_episodes/12-for-loops.md,line=371:: (duplicated)
tests/testthat/_snaps/Lesson.md:142:      ::warning file=_episodes/12-for-loops.md,line=400:: (duplicated)
tests/testthat/_snaps/Lesson.md:143:      ::warning file=_episodes/14-looping-data-sets.md,line=119:: (duplicated)
tests/testthat/_snaps/Lesson.md:144:      ::warning file=_episodes/14-looping-data-sets.md,line=143:: (duplicated)
tests/testthat/_snaps/Lesson.md:145:      ::warning file=_episodes/14-looping-data-sets.md,line=162:: (duplicated)
tests/testthat/_snaps/Lesson.md:157:      ::warning file=_episodes/14-looping-data-sets.md,line=191:: [missing file] ../no-workie.svg
tests/testthat/_snaps/Lesson.md:158:      ::warning file=_episodes/14-looping-data-sets.md,line=195:: [image missing alt-text]
tests/testthat/_snaps/Lesson.md:159:      ::warning file=_episodes/14-looping-data-sets.md,line=197:: [missing file] ../no-workie.svg [image missing alt-text]
tests/testthat/_snaps/Lesson.md:168:      # Episode: "For Loops" 
tests/testthat/_snaps/Lesson.md:197:      # Episode: "Looping Over Data Sets" 
tests/testthat/_snaps/Lesson.md:215:      ::warning file=_episodes/12-for-loops.md,line=183:: (duplicated)
tests/testthat/_snaps/Lesson.md:216:      ::warning file=_episodes/12-for-loops.md,line=200:: (duplicated)
tests/testthat/_snaps/Lesson.md:217:      ::warning file=_episodes/12-for-loops.md,line=227:: (duplicated)
tests/testthat/_snaps/Lesson.md:218:      ::warning file=_episodes/12-for-loops.md,line=252:: (duplicated)
tests/testthat/_snaps/Lesson.md:219:      ::warning file=_episodes/12-for-loops.md,line=270:: (duplicated)
tests/testthat/_snaps/Lesson.md:220:      ::warning file=_episodes/12-for-loops.md,line=289:: (duplicated)
tests/testthat/_snaps/Lesson.md:221:      ::warning file=_episodes/12-for-loops.md,line=305:: (duplicated)
tests/testthat/_snaps/Lesson.md:222:      ::warning file=_episodes/12-for-loops.md,line=336:: (duplicated)
tests/testthat/_snaps/Lesson.md:223:      ::warning file=_episodes/12-for-loops.md,line=371:: (duplicated)
tests/testthat/_snaps/Lesson.md:224:      ::warning file=_episodes/12-for-loops.md,line=400:: (duplicated)
tests/testthat/_snaps/Lesson.md:225:      ::warning file=_episodes/14-looping-data-sets.md,line=119:: (duplicated)
tests/testthat/_snaps/Lesson.md:226:      ::warning file=_episodes/14-looping-data-sets.md,line=143:: (duplicated)
tests/testthat/_snaps/Lesson.md:227:      ::warning file=_episodes/14-looping-data-sets.md,line=162:: (duplicated)
tests/testthat/_snaps/Lesson.md:239:      ::warning file=_episodes/14-looping-data-sets.md,line=191:: [missing file] ../no-workie.svg
tests/testthat/_snaps/Lesson.md:240:      ::warning file=_episodes/14-looping-data-sets.md,line=195:: [image missing alt-text]
tests/testthat/_snaps/Lesson.md:241:      ::warning file=_episodes/14-looping-data-sets.md,line=197:: [missing file] ../no-workie.svg [image missing alt-text]
tests/testthat/_snaps/Lesson.md:250:      # Episode: "For Loops" 
tests/testthat/_snaps/Lesson.md:279:      # Episode: "Looping Over Data Sets" 
tests/testthat/_snaps/Lesson.md:297:      ::warning file=_episodes/12-for-loops.md,line=183:: (duplicated)
tests/testthat/_snaps/Lesson.md:298:      ::warning file=_episodes/12-for-loops.md,line=200:: (duplicated)
tests/testthat/_snaps/Lesson.md:299:      ::warning file=_episodes/12-for-loops.md,line=227:: (duplicated)
tests/testthat/_snaps/Lesson.md:300:      ::warning file=_episodes/12-for-loops.md,line=252:: (duplicated)
tests/testthat/_snaps/Lesson.md:301:      ::warning file=_episodes/12-for-loops.md,line=270:: (duplicated)
tests/testthat/_snaps/Lesson.md:302:      ::warning file=_episodes/12-for-loops.md,line=289:: (duplicated)
tests/testthat/_snaps/Lesson.md:303:      ::warning file=_episodes/12-for-loops.md,line=305:: (duplicated)
tests/testthat/_snaps/Lesson.md:304:      ::warning file=_episodes/12-for-loops.md,line=336:: (duplicated)
tests/testthat/_snaps/Lesson.md:305:      ::warning file=_episodes/12-for-loops.md,line=371:: (duplicated)
tests/testthat/_snaps/Lesson.md:306:      ::warning file=_episodes/12-for-loops.md,line=400:: (duplicated)
tests/testthat/_snaps/Lesson.md:307:      ::warning file=_episodes/14-looping-data-sets.md,line=119:: (duplicated)
tests/testthat/_snaps/Lesson.md:308:      ::warning file=_episodes/14-looping-data-sets.md,line=143:: (duplicated)
tests/testthat/_snaps/Lesson.md:309:      ::warning file=_episodes/14-looping-data-sets.md,line=162:: (duplicated)
tests/testthat/_snaps/Lesson.md:321:      ::warning file=_episodes/14-looping-data-sets.md,line=191:: [missing file] ../no-workie.svg
tests/testthat/_snaps/Lesson.md:322:      ::warning file=_episodes/14-looping-data-sets.md,line=195:: [image missing alt-text]
tests/testthat/_snaps/Lesson.md:323:      ::warning file=_episodes/14-looping-data-sets.md,line=197:: [missing file] ../no-workie.svg [image missing alt-text]
tests/testthat/_snaps/Lesson.md:332:      # Episode: "For Loops" 
tests/testthat/_snaps/Lesson.md:361:      # Episode: "Looping Over Data Sets" 
tests/testthat/_snaps/Lesson.md:379:      ::warning file=_episodes/12-for-loops.md,line=183:: (duplicated)
tests/testthat/_snaps/Lesson.md:380:      ::warning file=_episodes/12-for-loops.md,line=200:: (duplicated)
tests/testthat/_snaps/Lesson.md:381:      ::warning file=_episodes/12-for-loops.md,line=227:: (duplicated)
tests/testthat/_snaps/Lesson.md:382:      ::warning file=_episodes/12-for-loops.md,line=252:: (duplicated)
tests/testthat/_snaps/Lesson.md:383:      ::warning file=_episodes/12-for-loops.md,line=270:: (duplicated)
tests/testthat/_snaps/Lesson.md:384:      ::warning file=_episodes/12-for-loops.md,line=289:: (duplicated)
tests/testthat/_snaps/Lesson.md:385:      ::warning file=_episodes/12-for-loops.md,line=305:: (duplicated)
tests/testthat/_snaps/Lesson.md:386:      ::warning file=_episodes/12-for-loops.md,line=336:: (duplicated)
tests/testthat/_snaps/Lesson.md:387:      ::warning file=_episodes/12-for-loops.md,line=371:: (duplicated)
tests/testthat/_snaps/Lesson.md:388:      ::warning file=_episodes/12-for-loops.md,line=400:: (duplicated)
tests/testthat/_snaps/Lesson.md:389:      ::warning file=_episodes/14-looping-data-sets.md,line=119:: (duplicated)
tests/testthat/_snaps/Lesson.md:390:      ::warning file=_episodes/14-looping-data-sets.md,line=143:: (duplicated)
tests/testthat/_snaps/Lesson.md:391:      ::warning file=_episodes/14-looping-data-sets.md,line=162:: (duplicated)
tests/testthat/_snaps/Lesson.md:403:      ::warning file=_episodes/14-looping-data-sets.md,line=191:: [missing file] ../no-workie.svg
tests/testthat/_snaps/Lesson.md:404:      ::warning file=_episodes/14-looping-data-sets.md,line=195:: [image missing alt-text]
tests/testthat/_snaps/Lesson.md:405:      ::warning file=_episodes/14-looping-data-sets.md,line=197:: [missing file] ../no-workie.svg [image missing alt-text]
tests/testthat/_snaps/validation.md:20:      # Episode: "Errors in Headings" 
tests/testthat/_snaps/validation.md:39:      _episodes/14-looping-data-sets.md:119  (duplicated)
tests/testthat/_snaps/validation.md:40:      _episodes/14-looping-data-sets.md:143  (duplicated)
tests/testthat/_snaps/validation.md:41:      _episodes/14-looping-data-sets.md:162  (duplicated)
tests/testthat/_snaps/validation.md:42:      # Episode: "Looping Over Data Sets" 
tests/testthat/_snaps/validation.md:87:      _episodes/14-looping-data-sets.md:191  [missing file] ../no-workie.svg
tests/testthat/_snaps/validation.md:88:      _episodes/14-looping-data-sets.md:195  [image missing alt-text]
tests/testthat/_snaps/validation.md:89:      _episodes/14-looping-data-sets.md:197  [missing file] ../no-workie.svg [image missing alt-text]
tests/testthat/_snaps/validation.md:154:      # Episode: "Errors in Headings" 
tests/testthat/_snaps/validation.md:186:      # Episode: "Errors in Headings" 
tests/testthat/_snaps/validation.md:218:      # Episode: "Errors in Headings" 
tests/testthat/_snaps/validation.md:250:      # Episode: "Errors in Headings" 
tests/testthat/_snaps/validation.md:542:      # Episode: "Errors in Headings" 
tests/testthat/_snaps/validation.md:563:      ::warning file=_episodes/14-looping-data-sets.md,line=119:: (duplicated)
tests/testthat/_snaps/validation.md:564:      ::warning file=_episodes/14-looping-data-sets.md,line=143:: (duplicated)
tests/testthat/_snaps/validation.md:565:      ::warning file=_episodes/14-looping-data-sets.md,line=162:: (duplicated)
tests/testthat/_snaps/validation.md:568:      # Episode: "Looping Over Data Sets" 
tests/testthat/test-Episode.R:1:test_that("Episodes can be created and are valid", {
tests/testthat/test-Episode.R:3:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-Episode.R:4:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:6:  expect_s3_class(e, "Episode")
tests/testthat/test-Episode.R:35:test_that("Episodes from sandpaper will have links included", {
tests/testthat/test-Episode.R:41:  e <- Episode$new(tep, fix_links = FALSE)
tests/testthat/test-Episode.R:44:  e <- Episode$new(tep, fix_links = FALSE)
tests/testthat/test-Episode.R:50:test_that("Episodes with image tags do not error", {
tests/testthat/test-Episode.R:52:    ep <- Episode$new(test_path("examples", "post-image-tag.md"))
tests/testthat/test-Episode.R:70:  e <- Episode$new(test_path("examples", "mismatched-div.txt"), 
tests/testthat/test-Episode.R:78:  expect_s3_class(e, "Episode")
tests/testthat/test-Episode.R:83:  e <- Episode$new(test_path("examples", "handout.Rmd"), 
tests/testthat/test-Episode.R:96:  # handout with a file returns the original Episode object
tests/testthat/test-Episode.R:119:test_that("Episodes can be reset if needed", {
tests/testthat/test-Episode.R:121:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-Episode.R:122:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:136:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-Episode.R:137:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:185:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-Episode.R:186:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:209:  # The first thing in the episode is a block quote
tests/testthat/test-Episode.R:218:  scope <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-Episode.R:219:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:259:  scope <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-Episode.R:260:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:307:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-Episode.R:308:  e <- Episode$new(loop)
tests/testthat/test-Episode.R:372:  loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
tests/testthat/test-Episode.R:373:  e <- Episode$new(loop)
tests/testthat/test-Episode.R:434:  floop <- fs::path(lesson_fragment(), "_episodes", "12-for-loops.md")
tests/testthat/test-Episode.R:435:  e     <- Episode$new(floop)
tests/testthat/test-Episode.R:467:  floop <- fs::path(lesson_fragment(), "_episodes", "12-for-loops.md")
tests/testthat/test-Episode.R:468:  e     <- Episode$new(floop)
tests/testthat/test-Episode.R:532:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-Episode.R:533:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:538:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:543:test_that("An episode can be cloned deeply", {
tests/testthat/test-Episode.R:545:  scope <- fs::path(lesson_fragment(), "_episodes", "17-scope.md")
tests/testthat/test-Episode.R:546:  e <- Episode$new(scope)
tests/testthat/test-Episode.R:572:  sunshine <- fs::path(lesson_fragment(), "_episodes", "sunshine.md")
tests/testthat/test-Episode.R:574:  expect_error(Episode$new(sunshine), msg)
tests/testthat/test-Episode.R:581:  sunshine <- fs::path(lesson_fragment(), "_episodes", "sunshine.md")
tests/testthat/test-Episode.R:583:  expect_error(Episode$new(sunshine), msg)
R/make_heading_table.R:14:#' path <- file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
R/make_heading_table.R:15:#' loop <- Episode$new(path)
R/make_link_table.R:1:#' Create a table of parsed URLs from a single Episode object. 
R/make_link_table.R:3:#' @param yrn an Episode class object
R/make_link_table.R:22:#' loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
R/make_link_table.R:23:#' make_link_table(Episode$new(loop))
R/make_div_table.R:1:#' Create a table of divs in an episode
R/lesson_fragment.R:6:#' @return a path to a lesson fragment that contains one `_episodes` directory
R/liquid_to_commonmark.R:28:#' py1  <- get_code(frg1$episodes[["17-scope.md"]]$body, ".language")
R/liquid_to_commonmark.R:29:#' py2  <- get_code(frg2$episodes[["17-scope.md"]]$body, ".language")
R/Lesson.R:4:#' This is a wrapper for several [Episode] class objects.
R/Lesson.R:6:#' Lessons are made of up several episodes within the `_episodes/` directory of
R/Lesson.R:7:#' a lesson. This class keeps track of several episodes and allows us to switch
R/Lesson.R:8:#' between RMarkdown and markdown episodes
R/Lesson.R:16:    #' @field episodes \[`list`\] list of [Episode] class objects representing
R/Lesson.R:17:    #'   the episodes of the lesson.
R/Lesson.R:18:    episodes = NULL,
R/Lesson.R:20:    #' @field extra \[`list`\] list of [Episode] class objects representing
R/Lesson.R:26:    #' @field rmd \[`logical`\] when `TRUE`, the episodes represent RMarkdown
R/Lesson.R:32:    #'   folder called `_episodes` within that contains markdown episodes. 
R/Lesson.R:41:    #' @param ... arguments passed on to [Episode$new][Episode]
R/Lesson.R:42:    #' @return a new Lesson object that contains a list of [Episode] objects in
R/Lesson.R:43:    #' `$episodes`
R/Lesson.R:47:    #' frg$episodes
R/Lesson.R:51:        jeky <- read_jekyll_episodes(path, rmd, ...)
R/Lesson.R:52:        self$episodes <- jeky$episodes
R/Lesson.R:55:        episode_path <- fs::path(path, "episodes")
R/Lesson.R:59:        self$episodes <- read_markdown_files(
R/Lesson.R:60:          episode_path, cfg, process_tags = FALSE, ...)
R/Lesson.R:83:    #'   name of each episode.
R/Lesson.R:85:      nms <-  if (path) purrr::map(self$episodes, "path") else names(self$episodes)
R/Lesson.R:86:      res <- purrr::map(self$episodes, ~.x$get_blocks(type = type, level = level))
R/Lesson.R:95:    #'   name of each episode.
R/Lesson.R:98:    #'   the `get_challenge_graph()` method in [Episode].
R/Lesson.R:100:    #'   solutions in the output. See [Episode] for more details.
R/Lesson.R:102:      nms <-  if (path) purrr::map(self$episodes, "path") else names(self$episodes)
R/Lesson.R:103:      eps <- self$episodes
R/Lesson.R:106:        res <- purrr::map_dfr(eps, ~.x$get_challenge_graph(recurse), .id = "Episode")
R/Lesson.R:117:    #'   name of each episode.
R/Lesson.R:119:      nms <-  if (path) purrr::map(self$episodes, "path") else names(self$episodes)
R/Lesson.R:120:      res <- purrr::map(self$episodes, "solutions")
R/Lesson.R:126:    #' Remove episodes that have no challenges
R/Lesson.R:128:    #'   episode removed is reported. Set to `FALSE` to remove this behavior.
R/Lesson.R:138:          epis <- if (sum(to_remove) > 1) "episodes" else "episode"
R/Lesson.R:140:          self$episodes[to_remove] <- NULL
R/Lesson.R:145:        self$episodes[lengths(self$challenges()) == 0] <- NULL
R/Lesson.R:151:    #' Re-read all Episodes from disk
R/Lesson.R:155:    #' frg$episodes[[1]]$body
R/Lesson.R:156:    #' frg$isolate_blocks()$episodes[[1]]$body # empty
R/Lesson.R:157:    #' frg$reset()$episodes[[1]]$body # reset
R/Lesson.R:166:    #' @return the Episode object, invisibly
R/Lesson.R:171:      purrr::walk(self$episodes, ~.x$isolate_blocks())
R/Lesson.R:175:    #' @description create a handout for all episodes in the lesson
R/Lesson.R:187:      hands <- purrr::map(self$episodes, 
R/Lesson.R:217:    #'    - **episode** the filename of the episode
R/Lesson.R:231:      res <- purrr::map(self$episodes, 
R/Lesson.R:235:        res <- dplyr::bind_rows(res, .id = "episodes")
R/Lesson.R:254:    #'   to the number of episodes in the lesson with an extra column indicating
R/Lesson.R:255:    #'   the type of validation. See the same method in the [Episode] class for 
R/Lesson.R:261:      res <- purrr::map(self$episodes, ~.x$validate_divs(warn = FALSE))
R/Lesson.R:287:    #'   to the number of episodes in the lesson with an extra column indicating
R/Lesson.R:288:    #'   the type of validation. See the same method in the [Episode] class for 
R/Lesson.R:294:      res <- purrr::map(self$episodes, ~.x$validate_links(warn = FALSE))
R/Lesson.R:306:    #' @field n_problems number of problems per episode
R/Lesson.R:308:      purrr::map_int(self$episodes, ~length(.x$show_problems))
R/Lesson.R:311:    #' @field show_problems contents of the problems per episode
R/Lesson.R:313:      res <- purrr::map(self$episodes, "show_problems")
R/Lesson.R:317:    #' @field files the source files for each episode
R/Lesson.R:319:      purrr::map_chr(self$episodes, "path")
R/Lesson.R:324:      if (name == "episodes") {
R/get_solutions.R:27:#' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/heading_tree.R:13:  lname   <- if (is.null(lname)) "<EPISODE>" else dQuote(lname)
R/heading_tree.R:25:  hlabels[1] <- "# Episode:"
R/get_challenges.R:17:#' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/get_list_block.R:3:#' @param self an Episode object
R/get_images.R:1:#' Get images from an Episode/yarn object
R/get_images.R:3:#' @param yrn an Episode/yarn object
R/get_lesson.R:5:#' directory and extracts the lesson in `_episodes/` using [tinkr::to_xml()]
R/get_lesson.R:12:#' @param ... arguments passed on to [Episode$new()][Episode].
R/get_lesson.R:14:#' @return a list of xml objects, one element per episode.
R/get_lesson.R:26:  if (is.null(lesson) && fs::dir_exists(fs::path(path, "_episodes"))) {
R/get_lesson.R:45:  # If the directory contains episodes, then use that, otherwise, download the
R/get_lesson.R:46:  episodes     <- fs::path(the_path, "_episodes")
R/get_lesson.R:47:  episodes_rmd <- fs::path(the_path, "_episodes_rmd")
R/get_lesson.R:49:  if (!fs::dir_exists(episodes) && !fs::dir_exists(episodes_rmd)) {
R/fix_sandpaper_links.R:23:#' loop <- fs::path(lesson_fragment(), "_episodes", "14-looping-data-sets.md")
R/fix_sandpaper_links.R:24:#' e <- Episode$new(loop)
R/fix_sandpaper_links.R:84:# wrapper for link tags like {% link _episodes/page.md %}
R/fix_sandpaper_links.R:122:  episode <- function() glasses("_episodes/([^ %]+?)")
R/fix_sandpaper_links.R:123:  links <- gsub(episode(), "\\2", links, perl = TRUE)
R/get_blocks.R:26:#' get_blocks(frg$episodes[["17-scope.md"]]$body)
R/get_code.R:12:#'   `$error` elements of the [Episode] class.
R/get_code.R:19:#' e <- Episode$new(fs::path(lesson_fragment(), "_episodes", "17-scope.md"))
R/elevate_children.R:12:#' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/fix_links.R:1:#' Finds and fixes unresolved links within an Episode
R/div.R:35:#' lop <- frg$episodes$`14-looping-data-sets.md`
R/div.R:79:#' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/div.R:118:#' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/Episode.R:1:#' Class representing XML source of a Carpentries episode
R/Episode.R:4:#' Wrapper around an xml document to manipulate and inspect Carpentries episodes
R/Episode.R:7:#' has method specific to the Carpentries episodes.
R/Episode.R:9:Episode <- R6::R6Class("Episode",
R/Episode.R:12:    #' @description Create a new Episode
R/Episode.R:13:    #' @param path \[`character`\] path to a markdown episode file on disk
R/Episode.R:26:    #' @return A new Episode object with extracted XML data
R/Episode.R:28:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:91:    #' @description enforce that the episode is a {sandpaper} episode withtout
R/Episode.R:92:    #' going through the conversion steps. The default Episodes from pegboard
R/Episode.R:114:    #' @description return all `block_quote` elements within the Episode
R/Episode.R:120:    #' @return \[`xml_nodeset`\] all the blocks from the episode with the given
R/Episode.R:123:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:132:    #'   dsp1 <- rng$episodes[["04-data-structures-part1.md"]]
R/Episode.R:158:    #' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/Episode.R:165:    #' label all the div elements within the Episode to extract them with 
R/Episode.R:172:    #' return all div elements within the Episode
R/Episode.R:181:    #' Extract the yaml metadata from the episode
R/Episode.R:222:    #' @param yml the list derived from the yml file for the episode
R/Episode.R:314:    #'   within the challenges in the Episode:
R/Episode.R:325:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:333:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:352:    #' @description write the episode to disk as markdown
R/Episode.R:360:    #' @return the episode object
R/Episode.R:362:    #'   the Carpentries Episodes are styled with, thus some block tags will be
R/Episode.R:365:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:406:    #' e <- lsn$episodes[[1]]
R/Episode.R:428:    #' Re-read episode from disk
R/Episode.R:429:    #' @return the episode object
R/Episode.R:431:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:445:    #' @return the Episode object, invisibly
R/Episode.R:447:    #' scope <- Episode$new(file.path(lesson_fragment(), "_episodes", "17-scope.md"))
R/Episode.R:460:    #' @return the Episode object, invisibly
R/Episode.R:462:    #' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/Episode.R:464:    #' loop$get_blocks() # all the blocks in the episode
R/Episode.R:497:    #'    - **episode** the filename of the episode
R/Episode.R:510:    #' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/Episode.R:544:    #' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/Episode.R:572:    #' loop <- Episode$new(file.path(lesson_fragment(), "_episodes", "14-looping-data-sets.md"))
R/Episode.R:583:    #' @field show_problems \[`list`\] a list of all the problems that occurred in parsing the episode
R/Episode.R:600:    #' @field tags \[`xml_nodeset`\] all the kramdown tags from the episode
R/Episode.R:604:    #' @field questions \[`character`\] the questions from the episode
R/Episode.R:608:    #' @field keypoints \[`character`\] the keypoints from the episode
R/Episode.R:612:    #' @field objectives \[`character`\] the objectives from the episode
R/Episode.R:616:    #' @field challenges \[`xml_nodeset`\] all the challenges blocks from the episode
R/Episode.R:627:    #' @field solutions \[`xml_nodeset`\] all the solutions blocks from the episode
R/Episode.R:638:    #' @field output \[`xml_nodeset`\] all the output blocks from the episode
R/Episode.R:646:    #' @field error \[`xml_nodeset`\] all the error blocks from the episode
R/Episode.R:654:    #' @field code \[`xml_nodeset`\] all the code blocks from the episode
R/Episode.R:662:    #' @field lesson \[`character`\] the path to the lesson where the episode is from
R/Episode.R:665:      sub_folders <- c("episodes", "learners", "instructors", "profiles",
R/Episode.R:666:      "_episodes", "_episodes_rmd", "_extras")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant