2015-01-10 12 views
5

Sto cercando di capire quale comando e le opzioni predefinite utilizzate da RStudio quando si preme il pulsante "knit HTML" in RStudio versione 0.98.1091 perché ottengo un file di markdown intermedio leggermente diverso quando eseguo la funzione knit() dalla console.Cosa fa "Knit HTML" in Rstudio 0.98?

In particolare, quando uso la seguente intestazione per il file R mark-down:

--- 
title: "Report Title" 
author: Daddy the Runner 
date: "`r format(Sys.time(), '%A, %B %d, %Y')`" 
output: 
    html_document: 
    keep_md: true 
--- 

ricevo il seguente file di mark-down quando si preme il pulsante "Knit HTML":

# Report Title 
Daddy the Runner 
`r format(Sys.time(), '%A, %B %d, %Y')` 

Quando eseguo il seguente comando: knit("myReport.Rmd"), ottengo il seguente file markdown:

--- 
title: "Report Title" 
author: Daddy the Runner 
date: "Saturday, January 10, 2015" 
output: 
    html_document: 
    keep_md: true 
--- 

Chiaramente il pulsante RStudio sta generando il file di markdown intermedio utilizzando alcune altre opzioni, ma non riesco a trovare alcuna informazione su di esso nei documenti RStudio.

Il problema chiave è la linea della data. Per qualche motivo, RStudio non esegue il blocco r inline nell'intestazione quando crea il file markdown. (Tuttavia, viene eseguito prima di generare l'HTML finale.) Mentre la chiamata alla funzione knit() esegue il blocco in linea durante la generazione del file di markdown.

L'unica altra differenza che ho notato nei due file di markdown è legata alla generazione di grafici. I due metodi generano grafici di dimensioni diverse (riga di comando: 504 x 504) contro (pulsante: 672 x 480) e li posizionano in directory diverse.

ho provato la raccomandazione in questo What commands are run when pressing "Knit HTML" on an R Markdown file in Rstudio 0.96? domanda per inserire una chiamata Sys.sleep(30), ma che non ha fornito alcuna informazione su ciò che chiamiamo RStudio utilizzato a lavorare a maglia il documento. Mette in pausa l'output nella finestra della console R Markdown che non era necessario perché RStudio conserva comunque tutto l'output. Quello che non ho visto nell'output è stato il comando RStudio emesso.

Qualsiasi intuizione sulla natura di queste differenze sarebbe molto apprezzata. Mentre mi piace utilizzare gli ambienti IDE e le comodità che forniscono, mi piace davvero capire cosa stanno facendo in modo da poter meglio anticipare il loro comportamento.

+3

IIRC, 'knitr :: knit' se lavoro a maglia è richiesto quindi' rmarkdown :: render' che chiama Pandoc con opzioni – rawr

+0

@rawr si ricordava bene. Sono stato in grado di riprodurre i risultati RStudio utilizzando rmarkdown :: render e c'era un ampio elenco di opzioni pandoc mostrate nell'output della console. Grazie per l'aiuto. –

+3

Ciascuno di voi può copiare e incollare il commento come risposta sotto, e l'OP può contrassegnarlo come accettato. –

risposta

0

Quando guardo la scheda RMarkdown (diritto di scheda Console) Sembra che corrono knitr::knit e poi un abbastanza coinvolto pandoc linea guscio

/usr/local/lib/rstudio/bin/pandoc/pandoc filename.utf8.md --to html --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output filename.html --smart --email-obfuscation none --self-contained --standalone --section-divs --table-of-contents --toc-depth 3 --template /home/me/R/i686-pc-linux-gnu-library/3.1/rmarkdown/rmd/h/default.html --variable 'theme:flatly' --include-in-header /tmp/user/1001/RtmpKz5GnI/rmarkdown-str3bba3848bd7b.html --mathjax --variable 'mathjax-url:https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' --no-highlight --variable highlightjs=/home/cd/R/i686-pc-linux-gnu-library/3.1/rmarkdown/rmd/h/highlight

Dal primo /usr/local/lib/rstudio/bin/pandoc/pandoc deduco che portano il loro pandoc, probabilmente la duplicazione è meglio del debug per giocare con le versioni idiosincratiche di tutti pandoc.


Quindi, per me sembra RStudio sta facendo il seguente:

  1. maglia
  2. Pandoc con la loro versione speciale Pandoc e un sacco di bandiere

e passo # 2 è dove l'interpretazione della tua intestazione

--- 
title: "Report Title" 
author: Daddy the Runner 
date: "`r format(Sys.time(), '%A, %B %d, %Y')`" 
output: 
    html_document: 
    keep_md: true 
--- 

accade.

HTH.

3

Come @rawr sottolineato nei commenti:

rmarkdown::render('your_document.Rmd', 'html_document', 'new_titel.html') 

opere e crea lo stesso documento, come il pulsante Knit HTML.

0

Credo che attualmente utilizza la funzione html_document nel pacchetto RMarkdown