Проблемы с внедрением карты листовки в слайд xaringan

#html #r #r-leaflet #xaringan

#HTML #r #r-листовка #xaringan

Вопрос:

Я пытаюсь включить карту листовки в презентацию xaringan. В Интернете есть несколько примеров этого, в том числе в этой презентации.

Когда мой коллега тестирует приведенный ниже минимальный пример, они, как и ожидалось, получают интерактивную карту на слайде 2. Но когда я запускаю это, я не вижу карту, а просто вижу окно слайдера с HTML-кодом.

Это работает на машине моего коллеги:

 ---
title: "Testing leaflet"
output:
  xaringan::moon_reader:
    lib_dir: libs
    nature:
      highlightStyle: github
      highlightLines: true
      countIncrementalSlides: false
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(message = FALSE, warning = FALSE)
```

```{r out.width='100%', fig.height=6}
library(leaflet)
library(dplyr)
leaflet() %>% addTiles() %>% setView(lat = 30.2621, lng = -97.7382, zoom = 17)
```
 

Вот скриншот того, что я вижу на своем слайде xaringan:

Вот скриншот того, что я вижу на своем слайде xaringan

И это фактический html-код, который отображается в поле на слайде:

 <div id="htmlwidget-627abe20cf1eb0297594" style="width:100%;height:432px;" class="leaflet html-widget"></div>
<script type="application/json" data-for="htmlwidget-627abe20cf1eb0297594">{"x":{"options":{"crs":{"crsClass":"L.CRS.EPSG3857","code":null,"proj4def":null,"projectedBounds":null,"options":{}}},"calls":[{"method":"addTiles","args":["//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",null,null,{"minZoom":0,"maxZoom":18,"tileSize":256,"subdomains":"abc","errorTileUrl":"","tms":false,"noWrap":false,"zoomOffset":0,"zoomReverse":false,"opacity":1,"zIndex":1,"detectRetina":false,"attribution":"amp;copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>"}]}],"setView":[[30.2621,-97.7382],17,[]]},"evals":[],"jsHooks":[]}</script>
 

Поскольку это работает на чужой машине, я предполагаю, что проблема должна быть как-то связана с моей настройкой. Я попытался перезапустить RStudio и переустановить xaringan, но после этого у меня не осталось идей, что проверить. Любые предложения будут с благодарностью!

Вот моя информация о сеансе, на случай, если это может помочь диагностировать проблему:

 > sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_4.0.3    rsconnect_0.8.16  htmltools_0.5.1.1 tools_4.0.3       xaringan_0.19     yaml_2.2.1       
 [7] rmarkdown_2.6     knitr_1.30        xfun_0.20         digest_0.6.27     rlang_0.4.10      evaluate_0.14 
 

Комментарии:

1. Я вижу то же самое, что и вы, и я не могу определить причину. Я подозреваю, что это ошибка, внесенная в какое-то обновление пакета: я бы сравнил версии пакетов между вашей системой и вашими коллегами, чтобы увидеть, что отличается, и попробуйте установить старые версии (используя remotes::install_version() ), чтобы узнать, можете ли вы определить, какой пакет вызывает проблему. (Возможно, лучше всего запускать sessionInfo() в самом документе, на случай, если он собирает разные пакеты.)

2. Спасибо за это предложение @user2554330! Вы были правы: у моего коллеги было rmarkdown_2.5 , тогда как у меня было rmarkdown_2.6 . Установка версии v2.5 исправила проблему!

Ответ №1:

Это несовместимость между недавним изменением rmarkdown и xaringan . Текущая версия Github xaringan , доступная как

 remotes::install_github("yihui/xaringan") 
 

исправлено: обсуждение здесь: https://github.com/yihui/xaringan/issues/293 . Он включает в себя обходной путь, если вы не хотите устанавливать неизданное xaringan .