2015-03-27 12 views
13

Possiedo un documento RMarkdown che emette in formato HTML lo stesso modulo dell'esempio seguente. Cosa aggiungo dove applicare gli ID o le classi CSS univoci per ogni output di trama?Aggiunta di tag CSS personalizzati a un documento html RMarkdown

--- 
title: "RMarkdown" 
author: "Me" 
date: "Friday, March 27, 2015" 
output: 
    html_document: 
    theme: null 
    css: style.css 
--- 

```{r plot1, echo=FALSE, warning=FALSE, message=FALSE} 
library(ggplot2) 
x <- ggplot(some_r_code) 
print(x) 
``` 

```{r plot2, echo=FALSE, warning=FALSE, message=FALSE} 
y <- ggplot(some_more_r_code) 
print(y) 
``` 

Ho letto la pagina di informazioni in http://rmarkdown.rstudio.com/html_document_format.html che è andato un modo per rispondere a questa domanda, ma non ha ottenuto là. Ho una domanda simile che fa riferimento al materiale in quella pagina nella sua sezione dei commenti e apprezzerei una risposta su entrambi.

Grazie!

+0

questa è una buona domanda, hai mai trovato una soluzione? –

+1

Non l'ho fatto, ma ci sono alcuni workaround che potresti impiegare. Ciascun blocco di codice viene visualizzato in un tag 'p' e ciascuno dei grafici viene visualizzato nei tag' img' all'interno di tali paragrafi. Quindi puoi accedere al primo con il css 'p: nth-of-type (1) img {inserisci css qui ...}' e il secondo con il css 'p: nth-of-type (2) img {inserisci css qui ...} '. Spero che questo ti aiuti! – efbbrown

risposta

1

Aprire l'HTML risultante in un browser con un'opzione Strumenti di sviluppo e osservare l'HTML generato. Quindi applica lo stile ai tag/classi appropriati. Ad esempio, inserire il seguente in style.css, maglia il file e si dovrebbe vedere un bordo rosso nelle piazzole:

img { 
    background-color: red; 
    padding: 2px; 
    border: 1px solid red; 
    border-radius: 3px; 
    margin: 0 5px; 
    max-width: 100%; 
} 
+0

So che posso modificare il file html generato ma vorrei una soluzione programmatica che eviti di applicare i tag manualmente come suggerito. Voglio anche modellare separatamente i grafici e accedere al tag non mi consente di farlo. – efbbrown

4

Si può dire knitr (che viene utilizzato sotto il cofano) con results="asis" per incorporare direttamente l'uscita di un pezzo nell'html. All'interno del pezzo è possibile utilizzare cat scrivere semplicemente un tag di stile tra cui le definizioni dei css:

```{r results="asis"} 
cat(" 
<style> 
h1 { 
    color: red; 
} 
</style> 
") 
``` 

Vedi http://yihui.name/knitr/options/#chunk_options per i dettagli.