在R中使用knitr和markdown的自定义CSS
我发现了这篇关于如何修改在Rstudio中使用markdown和knitr创建的HTML报告的css格式的精彩教程。这个帖子可以找到 我希望在这个概念的基础上,通过使用相同的css来模拟页面的布局。我试图简单地复制/粘贴/组合我在查看页面源代码时发现的两个css文件在R中使用knitr和markdown的自定义CSS,r,markdown,knitr,R,Markdown,Knitr,我发现了这篇关于如何修改在Rstudio中使用markdown和knitr创建的HTML报告的css格式的精彩教程。这个帖子可以找到 我希望在这个概念的基础上,通过使用相同的css来模拟页面的布局。我试图简单地复制/粘贴/组合我在查看页面源代码时发现的两个css文件 如果您能提供任何帮助,我们将不胜感激!这是我第一次尝试做任何事情 这是RStudio提供的方法: 我从来没能让它正常工作,所以我做的有点不同: 我通过创建标准输出文件来实现这一点,然后将标题和css代码放在R的顶部: tmp &l
如果您能提供任何帮助,我们将不胜感激!这是我第一次尝试做任何事情 这是RStudio提供的方法:
我从来没能让它正常工作,所以我做的有点不同: 我通过创建标准输出文件来实现这一点,然后将标题和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")
在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)
##设置文件名
htmlName谢谢!仍然不完美,但这很有帮助。是的,我从来没有运气使用第一种方法,所以我只是后期处理。如果你让它工作-让我知道!根据RStudio页面,您可以直接转到Pandoc,通过将RStudio.markdownToHTML
函数更改为通过Pandoc,而不是使用内置的markdown-to-html转换函数,将此过程简化为一步。(朝底部)
system("pandoc -s -S your.html -c your.css -o output.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)