R中带有knitr和markdown的自定义CSS

时间:2012-10-26 23:38:26

标签: r markdown knitr

我找到了这个很棒的教程,介绍如何修改在Rstudio中用markdown和knitr创建的HTML报告的css格式。该帖子可以找到here

我希望通过使用相同的css来构建此概念并模仿页面here的布局。我试图简单地复制/粘贴/组合我在查看页面源时找到的两个css文件。

您可以借出的任何帮助将不胜感激!这是我第一次尝试并做任何CSS。

2 个答案:

答案 0 :(得分:11)

这是RStudio提供的方法:http://www.rstudio.com/ide/docs/authoring/markdown_custom_rendering

options(rstudio.markdownToHTML = 
  function(inputFile, outputFile) {      
    require(markdown)
    markdownToHTML(inputFile, outputFile, stylesheet='custom.css')   
  }
) 

我从来没有能够正常工作,所以我的做法有点不同:

我这样做是通过创建标准输出文件,然后将标题和css代码放在R的顶部:

tmp <- readLines("your.html") 
tmp <- tmp[-c(1:50)] # or however many lines it is before the css ends
write(tmp,"your.html")

然后我使用pandoc在独立文件中添加我自己的css

system("pandoc -s -S your.html -c your.css -o output.html")

答案 1 :(得分:0)

在RStudio之外(也可以在其中工作 - 我不确定,因为我不太用它),你可以使用选项'markdown.HTML.stylesheet'来设置自定义样式表。然后它会将.css文件中的所有内容导入到新创建的html文件中。

以下是一个例子:

## Set file names
htmlName <- "test.html"
rmdName <- gsub("html","Rmd", htmlName) 
stylesheetName <- 'style.css'

## Generate rmd file from R
sink(file = rmdName, type='output') 
    cat('\n<textarea maxlength="3000" cols="70">') 
    cat("Hello World!") 
    cat('</textarea>\n') 
sink()

## Generate style sheet from R
sink(file = stylesheetName, type='output') 
    cat("textarea {color: #a10000; }\n")
sink()

## Set knitr options and knit html
require(knitr) 
options(markdown.HTML.stylesheet = stylesheetName)
knit2html(rmdName, output = htmlName)