library(testit)
# getting and setting themes
formats = c("markdown", "latex")
for (frm in formats) {
opts_knit$set(out.format = frm)
thm = knit_theme$get('acid')
knit_theme$set(thm)
assert('knit_theme$get returns theme(s)', {
(identical(length(knit_theme$get()),
length(dir(system.file("themes", package = "knitr")))))
(!is.null(thm))
})
assert('knit_theme$set updates highlight and background', {
(thm$highlight %==% as.character(opts_knit$get('header')[1]))
(thm$background %==% opts_chunk$get('background'))
})
opts_knit$restore()
opts_chunk$restore()
}
# style -> theme
tl = theme2list('acid.style')
assert('theme2list parsing from .style to CSS', {
(tl$Description %==% "Acid")
(tl$Canvas$Colour %==% "#eeeeee")
(isTRUE(tl$Number$Bold))
(is.null(tl$Keywords))
})
# theme -> css
css = list2css(tl)
assert('css is generated for a theme', {
(grepl(tl$Canvas$Colour, css[1]))
(grepl("font-weight: bold;", css[2]))
(grepl(tl$String$Colour, css[3]))
})
fdir = file.path(tempdir(), "themes")
dir.create(fdir)
res = lapply(1:2, function(i) {
fn = paste0(fdir, "/acid", i, '.theme', collapse = "")
writeLines(readLines('acid.style'), con = fn)
return()
})
cssdir = file.path(tempdir(), "css")
dir.create(cssdir)
suppressMessages(themes2css(fdir, cssdir))
assert('themes2css creates two css files from test data', {
(length(dir(cssdir)) == 2)
(dir(cssdir) %==% c("acid1.css", "acid2.css"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.