Я пытаюсь встроить учебник 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 () from within
runApp () . If your application code contains
runApp () , please remove it.
Я уже обнаружил, что могу создавать блоки вопросов с помощью функции 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
для блестящего приложения.Это возможно?