2012-10-26 12 views
9

Znalazłem ten świetny samouczek na temat modyfikowania formatowania css raportu HTML utworzonego za pomocą markdown i knitr w Rstudio. Post można znaleźć here.Niestandardowe CSS z knitr i markdown w R

Miałem nadzieję zbudować na tej koncepcji i naśladować układ strony here przy użyciu tego samego css. Próbowałem po prostu skopiować/wkleić/połączyć dwa pliki css, które znalazłem podczas przeglądania źródła strony.

Każda pomoc, którą możesz pożyczyć, będzie bardzo ceniona! To moja pierwsza próba i zrobienie czegokolwiek CSS.

Odpowiedz

11

Jest to metoda zapewnia 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') 
    } 
) 

Nigdy nie byłem w stanie dostać się, że działa prawidłowo, więc robię to trochę inaczej:

zrobić to przez tworzenie standardowego pliku wyjściowego, a następnie upuszczenie nagłówka i kodu css u góry w R:

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

Następnie używam pandoc dodać własną css w samodzielny plik

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

Dzięki! Nadal nie jest doskonały, ale to pomaga tonie. – Btibert3

+0

Tak, nigdy nie miałem szczęścia z pierwszą metodą, więc po prostu przetwarzam. Jeśli to działa - daj mi znać! –

+0

Czy masz pakiet obniżek zainstalowany w R? – kpierce8

0

Poza RStudio (może pracować w nim też - nie jestem pewien, jak nie używam go dużo), można użyć opcji "markdown.HTML.stylesheet", aby ustawić niestandardowy arkusz stylów. Następnie zaimportuje wszystko z pliku .css do nowo utworzonego pliku html.

Oto przykład:

## 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) 
Powiązane problemy