apply RStudio editor themes to help files

家住魔仙堡 提交于 2021-01-29 12:31:27

问题


This is a follow-up question to a previous answer I got. Can I apply RStudio editor themes to help files? @Allan Cameron hinted that this is possible in his answer but I can't get it to work. My knowledge of css is poor but this page says that RStudio themes (.rstheme file ) are just css files:

Since an rstheme is just CSS, anything that you can do with CSS you can do in an rstheme.

so I thought I could bring in some of that css code into my help files (css version) to change colouring etc. but it doesn't work. For example including .ace_constant is meant to change the colours and style of words like TRUE and FALSE:

.ace_constant

Changes the color and style of constants like TRUE, FALSE, and numeric literals.

Using the lm help file as an example, I made a copy of the lm R.css help file and called it my.css as outlined in @Allan answer and added .ace_constant with red but it didn't change TRUE FALSE colours. Specifying red for h2 worked though. my.css file:

body {
    background: white;
    color: black;
}
.ace_constant {
  color: red
 }

.ace_keyword,
.ace_meta,
.ace_storage,
.ace_storage.ace_type,
.ace_support.ace_type {
  color: red
}

a:link {
    background: white;
    color: blue;
}

a:visited {
    background: white;
    color: rgb(50%, 0%, 50%);
}

h1 {
    background: white;
    color: rgb(55%, 55%, 55%);
    font-family: monospace;
    font-size: x-large;
    text-align: center;
}

h2 {
    background: white;
    color: red;
    font-family: monospace;
    font-size: large;
    text-align: center;
}

h3 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
    font-size: large;
}

h4 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
    font-style: italic;
    font-size: large;
}

h5 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
}

h6 {
    background: white;
    color: rgb(40%, 40%, 40%);
    font-family: monospace;
    font-style: italic;
}
        
img.toplogo {
    width: 4em;
    vertical-align: middle;
}

img.arrow {
    width: 30px;
    height: 30px;
    border: 0;
}

span.acronym {
    font-size: small;
}

span.env {
    font-family: monospace;
}

span.file {
    font-family: monospace;
}

span.option{
    font-family: monospace;
}

span.pkg {
    font-weight: bold;
}

span.samp{
    font-family: monospace;
}

div.vignettes a:hover {
    background: rgb(85%, 85%, 85%);
}

And then call it using @Allan solution:

help_css <- function(func, css_file)
  {
    pack <- sub("^.*:(.*)>$", "\\1", capture.output(environment(func)))
    func <- deparse(substitute(func))
    
    x <- readLines(paste0(find.package(pack), "/html/", func, ".html"))
    x[3] <- paste("<style>", 
                  paste(readLines(css_file), collapse = "\n"), 
                  "</style>")
    writeLines(x, file.path(tempdir(), "test.html"))
    
    myViewer <- getOption("viewer")
    myViewer(file.path(tempdir(), "test.html"))
  }
  
help_css(lm, "C:\\my.css")

gives:

Note how TRUE, FALSE have not changed colour (although the heading has worked, i.e. its red).

My two questions are:

  1. should the theme css commands: .ace_constant, ace_storage etc. work using the approach I have tried to do above? If so, what have I done wrong.
  2. Is there an easier way to apply RStudio editor themes to help files?

Thanks

来源:https://stackoverflow.com/questions/64424229/apply-rstudio-editor-themes-to-help-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!