Я пытаюсь встроить учебник Rmd из пакета learnr
в полноценное блестящее приложение. Однако обучающий использует shiny_prerendered
среду выполнения, я не могу вызвать ее в своем приложении. Как мне запустить интерактивное руководство в моем блестящем приложении?
Сейчас у меня есть три файла: ui.R, server.R и tutorial.Rmd.
Мой учебник выглядит так (один `удален для форматирования)
---
title: "my tutorial"
tutorial:
id: "com.example.tutorials.a-tutorial"
version: 1.0
output: learnr::tutorial
runtime: shiny_prerendered
---
``{r setup, include=FALSE}
library(learnr)
knitr::opts_chunk$set(echo = FALSE)
``
### Exercise Example
An R code question
``{r add-function, exercise=TRUE, exercise.lines = 5}
add <- function() {
}
``
### Quiz
R Quiz Question
``{r quiz}
quiz(
question("Question 1",
answer("wrong"),
answer("also wrong"),
answer("right", correct = TRUE),
answer("wrong again")
)
)
``
Когда я пытаюсь отобразить вывод этого файла из ui.R
следующим образом:
ui <- tagList(
fluidPage(theme = shinytheme("cosmo")),
navbarPage(
"appTitle",
tabPanel("Embedding Tutorials?",
includeMarkdown("tutorial.Rmd")
),
)
)
Он (правильно, я считаю) отображает его как обычный старый файл Rmd, а не как интерактивный учебник.
Я также пробовал использовать rmarkdown::render("tutorial.Rmd")
, который просто отображает путь к файлу html, сгенерированный Rmd (/Users/me/app/tutorial.html
).
Когда я пытаюсь визуализировать любой учебник с использованием run_tutorial("hello", package="learnr")
, он (опять же по праву) выдает ошибку ERROR: Can't call
runApp () _ 10_runApp () _ 11_runApp () _ 12_
Я уже обнаружил, что могу создавать блоки вопросов, используя функцию question()
в learnr
, используя следующее:
ui <- tagList(
fluidPage(theme = shinytheme("cosmo")),
navbarPage(
"appTitle",
tabPanel("Tutorial",
quiz(
question("Quiz question",
answer("1"),
answer("2"),
answer("3", correct = TRUE),
answer("4"),
allow_retry = TRUE
)
),
)
)
Но это не позволяет создавать фрагменты кода R, которые можно запускать в приложении.
Мне нужен полностью интерактивный учебник, который можно отобразить из ui.R
файла для блестящего приложения. Это возможно?
learnr
, так что извините, если я веду себя глупо, но если руководство предварительно отрисовано, можете ли вы просто встроить его в свой html с помощью<iframe>
? - person Phil   schedule 09.04.2019tutorial.Rmd
фактически создает html (для заголовка установлено значениеoutput: html_document
), он больше не является интерактивным (в средстве просмотра / открытии в браузере). Я не думаю, что сработает встроить его как необработанный html в блестящий пользовательский интерфейс, используя что-то вроде того, что было найдено здесь. (Но я пытаюсь это сейчас) - person Carolyn   schedule 09.04.2019