Используйте htmlwidgets вместе скартируя в rmarkdown - PullRequest
0 голосов
/ 04 октября 2019

Я работаю в Rmarkdown с форматом revealjs_presentation и хочу добавить html-виджет, созданный leaflet. Я наивно пытался просто включить его в слайд, зная, что, вероятно, возникнет конфликт между show.js css и листовкой, что имеет место. Как вы могли видеть на следующем скриншоте, на моей листовке есть несколько неизвестных черных линий.

---
title: "Untitled"
output:
  revealjs::revealjs_presentation:
    self_contained: false
---

## Slide with a widget

```{r, echo=FALSE}
library(leaflet)
library(magrittr)
leaflet() %>%
  addTiles()
```

no-iframe

Однако обратите внимание, что на этомчто размер виджета будет изменяться правильно, если размер экрана изменится.

Я предполагал, что инкапсуляция виджета листовки в iframe потенциально может решить мою проблему со странными черными линиями, так как они, вероятно, созданы самим show.js (которыйне будет загружен в iframe).

Фактически это решило проблему черных линий, но, к сожалению, на этот раз виджет не будет изменять размер окна. Я полагаю, это связано с изменением размера iframe при изменении размера экрана, но не с виджетом внутри iframe.

---
title: "Untitled"
output:
  revealjs::revealjs_presentation:
    self_contained: false
---

## Slide with a widget

```{r, echo=FALSE}
library(leaflet)
library(magrittr)
library(widgetframe)
frameWidget({leaflet() %>%
  addTiles()
})
```

iframe

СетьЭффект заключается в том, что если создать слайды на моем ноутбуке и отобразить их на моем ноутбуке, с помощью iframe работает нормально, но если я хочу проецировать свои слайды на проектор, то виджет слишком мал для (недавно измененного размера) iframe, что приводит к белым отступам для неиспользуемой части iframe.

Любые способы решения моей проблемы приветствуются. Я предполагаю два возможных способа:

  1. Использовать какой-то трюк CSS вместо инкапсуляции моей карты листовки в iframe
  2. Сделать виджет внутри iframe таким, чтобы он изменял размер при изменении размера iframe

Я, к сожалению, не могу заставить работать ни то, ни другое, во многом из-за моих (очень) очень ограниченных навыков в html / js / css. Я поработаю над ними, как только у меня будет время, но сейчас мне нужна ваша помощь.

Спасибо!

...