diff --git a/R/knitr-hooks.R b/R/knitr-hooks.R
index c7cbe6ad0..0c07e073b 100644
--- a/R/knitr-hooks.R
+++ b/R/knitr-hooks.R
@@ -317,6 +317,7 @@ install_knitr_hooks <- function() {
} else {
cap_engine <- knitr_engine(options$engine)
+ # use logo shipped within learnr pkg (currently none)
cap_engine_file <- system.file(file.path("internals", "icons", paste0(cap_engine, ".svg")), package = "learnr")
if (file.exists(cap_engine_file)) {
as.character(htmltools::div(
@@ -324,7 +325,36 @@ install_knitr_hooks <- function() {
htmltools::HTML(readLines(cap_engine_file))
))
} else {
- paste0(options$engine, " code")
+ cap_engine_val <-
+ switch(cap_engine,
+ "bash" = "Bash",
+ "c" = "C",
+ "coffee" = "CoffeeScript",
+ "cc" = "C++",
+ "css" = "CSS",
+ "go" = "Go",
+ "groovy" = "Groovy",
+ "haskell" = "Haskell",
+ "js" = "JavaScript",
+ "mysql" = "MySQL",
+ "node" = "Node.js",
+ "octave" = "Octave",
+ "psql" = "PostgreSQL",
+ "python" = "Python",
+ "r" = "R",
+ "rcpp" = "Rcpp",
+ "cpp11" = "cpp11",
+ "rscript" = "Rscript",
+ "ruby" = "Ruby",
+ "perl" = "Perl",
+ "sass" = "Sass",
+ "scala" = "Scala",
+ "scss" = "SCSS",
+ "sql" = "SQL",
+ # else, return as the user provided
+ options$engine
+ )
+ paste0(cap_engine_val, " code")
}
}
ui_options <- list(
diff --git a/inst/internals/icons/bash.svg b/inst/internals/icons/bash.svg
deleted file mode 100644
index 2fcfa30ce..000000000
--- a/inst/internals/icons/bash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/c.svg b/inst/internals/icons/c.svg
deleted file mode 100644
index f885ab274..000000000
--- a/inst/internals/icons/c.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/cc.svg b/inst/internals/icons/cc.svg
deleted file mode 100644
index b69b04363..000000000
--- a/inst/internals/icons/cc.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/coffee.svg b/inst/internals/icons/coffee.svg
deleted file mode 100644
index 95ac015ea..000000000
--- a/inst/internals/icons/coffee.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/css.svg b/inst/internals/icons/css.svg
deleted file mode 100644
index f1fb087d8..000000000
--- a/inst/internals/icons/css.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/go.svg b/inst/internals/icons/go.svg
deleted file mode 100644
index 6ce091065..000000000
--- a/inst/internals/icons/go.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/groovy.svg b/inst/internals/icons/groovy.svg
deleted file mode 100644
index 2b9866e9d..000000000
--- a/inst/internals/icons/groovy.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/haskell.svg b/inst/internals/icons/haskell.svg
deleted file mode 100644
index 0e8bb7485..000000000
--- a/inst/internals/icons/haskell.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/js.svg b/inst/internals/icons/js.svg
deleted file mode 100644
index e17c3995b..000000000
--- a/inst/internals/icons/js.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/mysql.svg b/inst/internals/icons/mysql.svg
deleted file mode 100644
index f33a486be..000000000
--- a/inst/internals/icons/mysql.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/node.svg b/inst/internals/icons/node.svg
deleted file mode 100644
index c8833dca0..000000000
--- a/inst/internals/icons/node.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/octave.svg b/inst/internals/icons/octave.svg
deleted file mode 100644
index 26cc1c0b4..000000000
--- a/inst/internals/icons/octave.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/perl.svg b/inst/internals/icons/perl.svg
deleted file mode 100644
index e03599a87..000000000
--- a/inst/internals/icons/perl.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/psql.svg b/inst/internals/icons/psql.svg
deleted file mode 100644
index 0627efdc7..000000000
--- a/inst/internals/icons/psql.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/python.svg b/inst/internals/icons/python.svg
deleted file mode 100644
index 1a7240853..000000000
--- a/inst/internals/icons/python.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/r.svg b/inst/internals/icons/r.svg
deleted file mode 100644
index 49dd11cc2..000000000
--- a/inst/internals/icons/r.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/rcpp.svg b/inst/internals/icons/rcpp.svg
deleted file mode 100644
index b69b04363..000000000
--- a/inst/internals/icons/rcpp.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/rscript.svg b/inst/internals/icons/rscript.svg
deleted file mode 100644
index d1d6b0452..000000000
--- a/inst/internals/icons/rscript.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/ruby.svg b/inst/internals/icons/ruby.svg
deleted file mode 100644
index 4c2e0cd55..000000000
--- a/inst/internals/icons/ruby.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/sass.svg b/inst/internals/icons/sass.svg
deleted file mode 100644
index c16311a03..000000000
--- a/inst/internals/icons/sass.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/scala.svg b/inst/internals/icons/scala.svg
deleted file mode 100644
index 7269551ac..000000000
--- a/inst/internals/icons/scala.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/scss.svg b/inst/internals/icons/scss.svg
deleted file mode 100644
index c16311a03..000000000
--- a/inst/internals/icons/scss.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/inst/internals/icons/sql.svg b/inst/internals/icons/sql.svg
deleted file mode 100644
index c52dafbca..000000000
--- a/inst/internals/icons/sql.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/tools/update-icons.R b/tools/update-icons.R
deleted file mode 100644
index 8bd0f3e3c..000000000
--- a/tools/update-icons.R
+++ /dev/null
@@ -1,100 +0,0 @@
-
-local({
-
- ## https://bookdown.org/yihui/rmarkdown/language-engines.html
- # names(knitr::knit_engines$get())
- ## [1] "awk" "bash" "coffee"
- ## [4] "gawk" "groovy" "haskell"
- ## [7] "lein" "mysql" "node"
- ## [10] "octave" "perl" "psql"
- ## [13] "Rscript" "ruby" "sas"
- ## [16] "scala" "sed" "sh"
- ## [19] "stata" "zsh" "highlight"
- ## [22] "Rcpp" "tikz" "dot"
- ## [25] "c" "cc" "fortran"
- ## [28] "fortran95" "asy" "cat"
- ## [31] "asis" "stan" "block"
- ## [34] "block2" "js" "css"
- ## [37] "sql" "go" "python"
- ## [40] "julia" "sass" "scss"
- ## [43] "theorem" "lemma" "corollary"
- ## [46] "proposition" "conjecture" "definition"
- ## [49] "example" "exercise" "proof"
- ## [52] "remark" "solution"
-
- languages <- list(
- "r" = "r",
- "rscript" = "r",
- "asis" = NULL,
- "asy" = NULL,
- "awk" = NULL,
- "bash" = "gnubash",
- "block" = NULL,
- "block2" = NULL,
- "c" = "c",
- "cat" = NULL,
- "cc" = "cplusplus",
- "coffee" = "coffeescript",
- "css" = "css3",
- "dot" = NULL,
- "fortran" = NULL,
- "fortran95" = NULL,
- "gawk" = NULL,
- "go" = "go",
- "groovy" = "groovy",
- "haskell" = "haskell",
- "highlight" = NULL,
- "js" = "javascript",
- "julia" = NULL,
- "lein" = NULL,
- "mysql" = "mysql",
- "node" = "node-dot-js",
- "octave" = "octave",
- "perl" = "perl",
- "psql" = "postgresql",
- "python" = "python",
- "Rcpp" = "cplusplus",
- "Rscript" = "rstudio",
- "ruby" = "ruby",
- "sas" = NULL,
- "sass" = "sass",
- "scala" = "scala",
- "scss" = "sass",
- "sed" = NULL,
- "sh" = NULL,
- "sql" = "mariadb",
- "stan" = NULL,
- "stata" = NULL,
- "tikz" = NULL,
- "zsh" = NULL
- )
-
- knitr_languages <- sort(names(knitr::knit_engines$get()))
- missing_language <- ! (knitr_languages %in% names(languages))
- if (any(missing_language)) {
- stop("Missing a rule for languages: ", paste0(knitr_languages[missing_language], collapse = ", "))
- }
-
- icon_folder <- file.path("inst", "internals", "icons")
-
- unlink(icon_folder, recursive = TRUE)
- dir.create(icon_folder, recursive = TRUE)
-
- pb <- progress::progress_bar$new(
- total = length(languages),
- format = "[:bar] :current / :total :language",
- show_after = 0, clear = TRUE
- )
- Map(format(names(languages)), unname(languages), f = function(language, loc) {
- pb$tick(tokens = list(language = language))
- if (is.null(loc)) return()
- language <- tolower(trimws(language))
- icon_file <- file.path(icon_folder, paste0(language, ".svg"))
- icon_url <- paste0("https://simpleicons.org/icons/", loc, ".svg")
- icon_lines <- readLines(icon_url, warn = FALSE) # missing EOL
- if (length(icon_lines) == 0) stop("Could not download: ", icon_url)
- # will add a trailing line, which makes readLines happy
- writeLines(icon_lines, icon_file)
- })
-
-})