| @@ -324,3 +324,27 @@ template_solarized_dark <- set_default( | |||
| table_row_border_color = solarized$base00, | |||
| table_row_even_background_color = solarized$base02 | |||
| ) | |||
| # Theme Generating Helpers ---------------------------------------------- | |||
| plural_element <- function(css_name) { | |||
| is_mult <- grepl(",|and|or", css_name) | |||
| is_class <- grepl("^\\.", css_name) | |||
| ifelse(is_class, | |||
| ifelse(is_mult, "classes", "class"), | |||
| ifelse(is_mult, "elements", "element") | |||
| ) | |||
| } | |||
| element_description <- function(element) { | |||
| out <- rep("", length(element)) | |||
| multiple <- grepl("multiple", element) | |||
| out[multiple] <- "Modifies multiple CSS classes or elements." | |||
| ifelse( | |||
| multiple | is.na(element) | element == "", | |||
| out, | |||
| glue::glue("Modifies the `{element}` {plural_element(element)}.") | |||
| ) | |||
| @@ -1,21 +1,5 @@ | |||
| source(here::here("R/theme_settings.R")) | |||
| plural_element <- function(css_name) { | |||
| is_mult <- grepl(",|and|or", css_name) | |||
| is_class <- grepl("^\\.", css_name) | |||
| ifelse(is_class, | |||
| ifelse(is_mult, "classes", "class"), | |||
| ifelse(is_mult, "elements", "element") | |||
| ) | |||
| } | |||
| element_description <- function(element) { | |||
| ifelse( | |||
| grepl("multiple", element), | |||
| "Modifies multiple CSS classes or elements.", | |||
| glue::glue("Modifies the `{element}` {plural_element(element)}.") | |||
| ) | |||
| } | |||
| # R/theme_settings.R contains element_description() and plural_elements() | |||
| setup_theme_function <- function( | |||
| f_name = "write_xaringan_theme", | |||
| @@ -0,0 +1,14 @@ | |||
| context("test-helpers") | |||
| test_that("element_description", { | |||
| text_in <- c("multiple", NA, "", ".remark-slide-content", "h1", "pre, code") | |||
| text_out <- c( | |||
| "Modifies multiple CSS classes or elements.", | |||
| "", | |||
| "", | |||
| "Modifies the `.remark-slide-content` class.", | |||
| "Modifies the `h1` element.", | |||
| "Modifies the `pre, code` elements." | |||
| ) | |||
| expect_equal(element_description(text_in), text_out) | |||
| }) | |||