2012-10-26 12 views
9

Ich fand dieses großartige Tutorial, wie Sie die CSS-Formatierung eines HTML-Bericht mit Absetzung und Knitr in Rstudio geändert ändern. Der Beitrag kann here gefunden werden.Benutzerdefinierte CSS mit Knitr und Markdown in R

Ich hoffte, auf diesem Konzept aufzubauen und das Layout der Seite here mit dem gleichen css nachzuahmen. Ich habe versucht, die beiden css-Dateien, die ich beim Betrachten der Quelle der Seite gefunden habe, einfach zu kopieren/einfügen/zu kombinieren.

Jede Hilfe, die Sie verleihen können, würde sehr geschätzt werden! Dies ist mein erster Versuch und alles CSS zu tun.

Antwort

11

Dies ist die Methode von RStudio bereitgestellt: http://www.rstudio.com/ide/docs/authoring/markdown_custom_rendering

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

Ich habe nie richtig bekommen kann, dass die Arbeit so mache ich es ein wenig anders:

ich dies tun, indem Erstellen Sie die Standard-Ausgabedatei, dann die Kopfzeile und CSS-Code an der Spitze in R fallen:

Dann benutze ich pandoc meine eigene CSS in einer eigenständigen Datei

hinzufügen
system("pandoc -s -S your.html -c your.css -o output.html") 
+0

Dank! Immer noch nicht perfekt, aber das hilft eine Tonne. – Btibert3

+0

Ja, ich hatte nie Glück mit der ersten Methode, also habe ich einfach nachbearbeitet. Wenn Sie es funktioniert haben - lassen Sie es mich wissen! –

+0

Haben Sie das Markdown-Paket in R installiert? – kpierce8

0

Außerhalb RStudio (kann auch darin arbeiten - ich bin nicht sicher, wie ich es nicht viel verwenden), können Sie Option 'markdown.HTML.stylesheet' zum Festlegen eines benutzerdefinierten Stylesheets. Es wird dann alles aus Ihrer .css-Datei in die neu erstellte HTML-Datei importieren. Hier

ein Beispiel:

## 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) 
Verwandte Themen