ソースを参照

Move theme generation helpers into package and add tests

tags/v0.3.0
コミット
0c7dd01291
3個のファイルの変更39行の追加17行の削除
  1. +24
    -0
      R/theme_settings.R
  2. +1
    -17
      inst/scripts/generate_theme_functions.R
  3. +14
    -0
      tests/testthat/test-helpers.R

+ 24
- 0
R/theme_settings.R ファイルの表示

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)}.")
)

+ 1
- 17
inst/scripts/generate_theme_functions.R ファイルの表示

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",

+ 14
- 0
tests/testthat/test-helpers.R ファイルの表示

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)
})

読み込み中…
キャンセル
保存