diff --git a/R/utils-yaml.R b/R/utils-yaml.R index d76a9903..a160a85b 100644 --- a/R/utils-yaml.R +++ b/R/utils-yaml.R @@ -177,7 +177,7 @@ create_pkgdown_yaml <- function(path) { branch = siQuote(usr$branch), contact = siQuote(usr$contact), # What carpentry are we dealing with? - carpentry_name = siQuote(which_carpentry(usr$carpentry)), + carpentry_name = siQuote(which_carpentry(usr$carpentry, usr$carpentry_description)), carpentry = siQuote(usr$carpentry), carpentry_icon = siQuote(which_icon_carpentry(usr$carpentry)), license = siQuote(usr$license), diff --git a/R/utils.R b/R/utils.R index 916e0484..954ec28f 100644 --- a/R/utils.R +++ b/R/utils.R @@ -181,14 +181,19 @@ create_description <- function(path) { desc$write(fs::path(path_site(path), "DESCRIPTION")) } -which_carpentry <- function(carpentry) { +which_carpentry <- function(carpentry, carpentry_description = NULL) { + if (!is.null(carpentry_description)) { + return(carpentry_description) + } switch(carpentry, lc = "Library Carpentry", dc = "Data Carpentry", swc = "Software Carpentry", cp = "The Carpentries", incubator = "Carpentries Incubator", - lab = "Carpentries Lab" + lab = "Carpentries Lab", + # Default: match the input + carpentry ) } @@ -199,7 +204,9 @@ which_icon_carpentry <- function(carpentry) { swc = "software", cp = "carpentries", incubator = "incubator", - lab = "lab" + lab = "lab", + # Default: match the input + carpentry ) } diff --git a/inst/templates/config-template.txt b/inst/templates/config-template.txt index a498314a..5612a679 100644 --- a/inst/templates/config-template.txt +++ b/inst/templates/config-template.txt @@ -8,8 +8,14 @@ # lc: Library Carpentry # cp: Carpentries (to use for instructor training for instance) # incubator: The Carpentries Incubator +# Note that you can also use a custom carpentry type. For more info, +# see the documentation: https://carpentries.github.io/sandpaper-docs/editing.html carpentry: {{ carpentry }} +# Custom carpentry description +# This will be used as the alt text for the logo +# carpentry_description: "Custom Carpentry" + # Overall title for pages. title: {{ title }} diff --git a/tests/testthat/test-utils.R b/tests/testthat/test-utils.R index e31956b4..b42a2bcf 100644 --- a/tests/testthat/test-utils.R +++ b/tests/testthat/test-utils.R @@ -33,3 +33,15 @@ test_that("a sitemap can be generated for urls", { urls <- c("https://example.com/one", "https://example.com/two") expect_snapshot(urls_to_sitemap(urls)) }) + +test_that("which_carpentry_workshop works for default carpentries", { + expect_equal(which_carpentry("swc"), "Software Carpentry") + expect_equal(which_carpentry("dc"), "Data Carpentry") + expect_equal(which_carpentry("lc"), "Library Carpentry") + expect_equal(which_carpentry("cp"), "The Carpentries") +}) + +test_that("which_carpentry can take a custom description", { + expect_equal(which_carpentry("ice-cream", "Ice Cream Carpentry"), "Ice Cream Carpentry") + expect_equal(which_carpentry("mexican-guitars"), "mexican-guitars") +})