2015-03-27 32 views
13

Mam dokument RMarkdown wyświetlający kod HTML w tej samej formie, co poniższy przykład. Co mogę dodać, gdzie zastosować niepowtarzalne identyfikatory CSS lub klasy do każdego wydruku?Dodawanie niestandardowych znaczników CSS do dokumentu 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) 
``` 

Czytałem na stronie informacji na http://rmarkdown.rstudio.com/html_document_format.html że poszedł sposobów odpowiedzi na to pytanie, ale nie mnie tam. Mam podobne pytanie, odnoszące się do materiału na tej stronie w jego sekcji komentarzy, i na pewno też na nie odpowiem.

Dzięki!

+0

To jest dobre pytanie, czy kiedykolwiek znalazłeś rozwiązanie? –

+1

Nie, ale są pewne rozwiązania, które można zastosować. Każdy fragment kodu jest renderowany w znaczniku 'p', a każdy z wykresów jest renderowany w znacznikach' img' wewnątrz tych akapitów. Więc możesz uzyskać dostęp do pierwszego z css 'p: nth-of-type (1) img {wprowadź css tutaj ...}' a drugi z css 'p: nth-of-type (2) img {enter css here ...} '. Mam nadzieję że to pomoże! – efbbrown

Odpowiedz

1

Otwórz wynikowy kod HTML w przeglądarce za pomocą opcji Narzędzia programistyczne i spójrz na wygenerowany kod HTML. Następnie zastosuj stylizację do odpowiednich tagów/klas. Na przykład, umieścić następujące do style.css, dzianiny plik i powinieneś zobaczyć czerwoną ramkę na działkach:

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

Wiem, że mogę zmienić wygenerowany plik html, ale chciałbym programistyczne rozwiązanie, które unika stosowania tagów ręcznie, jak zasugerowałeś. Chcę też osobno stylizować wykresy i dostęp do znacznika nie pozwala mi tego zrobić. – efbbrown

4

Można powiedzieć knitr (który jest używany pod maską) z results="asis" osadzić wyjście kawałek bezpośrednio do html. W obrębie fragmentu można użyć cat po prostu napisać tag w tym stylu swoimi definicjami CSS:

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

Zobacz http://yihui.name/knitr/options/#chunk_options szczegóły.

Powiązane problemy