| table_row_border_color = solarized$base00, | table_row_border_color = solarized$base00, | ||||
| table_row_even_background_color = solarized$base02 | 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)}.") | |||||
| ) |
| source(here::here("R/theme_settings.R")) | 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( | setup_theme_function <- function( | ||||
| f_name = "write_xaringan_theme", | f_name = "write_xaringan_theme", |
| 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) | |||||
| }) |