Подтвердить что ты не робот

Knitr (R) - как не вставлять изображения в файл HTML?

Это, вероятно, очень просто, но я не могу найти его в документах. Я хотел бы не встраивать сгенерированные изображения в сам файл HTML.

Итак, в основном я хочу, чтобы knit2html() создавал HTML файл с отдельными файлами изображений (которые затем связаны с/показаны в HTML). Основное поведение заключается в том, что script вставляет изображения в качестве строки base64. Проблема в том, что в IE большие изображения не будут отображаться (т.е. Кажется, отсутствуют). Любая идея, как я могу отделить изображения от вывода HTML?

Мой пример. Rmd file ('knit.Rmd'):

```{r}
plot(3)
```

И мой .R файл, чтобы сгенерировать HTML из этого:

library(knitr)

knit2html('knit.Rmd')

В этом примере создается HTML с графиком в виде встроенной строки base64.

4b9b3361

Ответ 1

Если вы посмотрите справочную страницу knit2html, вы увидите, что:

This is a convenience function to knit the input markdown source and
call ‘markdownToHTML()’ in the ‘markdown’ package to convert the
result to HTML.

Затем вы просматриваете страницу справки markdownToHTML и читаете, что существует следующий аргумент:

 options: options that are passed to the renderer.  see
           ‘markdownHTMLOptions’.

Итак, вы смотрите на markdownHTMLOptions (еще не потерянный?) и видите следующий параметр:

 ‘'base64_images'’ Any local images linked with the ‘'<img>'’ tag
      to the output HTML will automatically be converted to base64
      and included along with output.

С помощью следующей команды вы должны увидеть параметры по умолчанию в вашей системе:

R> markdownHTMLOptions(default=TRUE)
[1] "use_xhtml"      "smartypants"    "base64_images"  "mathjax"       
[5] "highlight_code"

Может быть, вы можете попытаться связать файл сметки с помощью:

knit2html("knit.Rmd", options=c("use_xhtml","smartypants","mathjax","highlight_code"))

Не тестировалось, хотя...

Ответ 2

Его не knitr, который делает это, knitr просто создает измененный файл уценки после запуска фрагментов R. Поэтому вам нужно посмотреть на помощь для пакета markdown, чтобы выяснить...

Его параметр base64_images. Кофе еще не ударил, поэтому я не совсем понял, как установить /reset индивидуальные параметры разметки, но очистка их всех работает для меня:

 > knit2html("foo.Rmd",options="")

производство

 <p><img src="figure/unnamed-chunk-1.png" alt="plot of chunk unnamed-chunk-1"> </p>

в foo.html.

Если очистка всех этих параметров ломает другие вещи, тогда прочитайте на markdownHTMLOptions.

Ответ 3

Вы можете просто добавить self_contained: no к параметрам вывода в заголовке .Rmd. Например:

---
title: "Data visualisation with ggplot"
output:
  html_document:
    self_contained: no
    toc: yes
    toc_float: yes
---

Ответ 4

Вот простой способ иметь цифры в отдельном html файле, что значительно уменьшит его размер.

Добавьте этот фрагмент в начало файла *.rmd:

```{r global_options, include=FALSE}
#suppress the warnings and other messages from showing in the knitted file.
knitr::opts_chunk$set(fig.width=8, fig.height=6, fig.path='Figs/',
                      echo=TRUE, warning=FALSE, message=FALSE)
```

Опция 'fig.path' сообщает R, чтобы сохранить изображения в папке 'Figs'. Остальные параметры не требуются для задачи.

Нажмите эту кнопку:

Нажмите эту кнопку

Убедитесь, что флажок не установлен:

Убедитесь, что флажок не установлен