library(shiny)
library(shinyAce)
# use an environment to evaluate R code evaluated by knitr
ace_envir <- environment()
shinyServer(function(input, output, session) {
# using a reactive value so we can use either the
# action button or hotkeys (see ui.R)
code <- reactiveVal("")
observeEvent(input$code_run_key, {
if (!is.empty(input$code_run_key$selection)) {
# evaluate only the selected code
code(input$code_run_key$selection)
} else {
# evalute the line where the cursor is located
# using "code-jumping" to include lines as needed
# see www/code/code-jump-r.js for details
code(input$code_run_key$line)
}
})
observeEvent(input$eval, {
if (!is.empty(input$code_selection)) {
# evaluate only the selected code
code(input$code_selection)
} else {
# evalute all code in the editor
code(input$code)
}
})
output$output <- renderUI({
input$eval
input$code_run_key
eval_code <- paste0("\n```{r echo = TRUE, comment = NA}\n", code(), "\n```\n")
HTML(knitr::knit2html(text = eval_code, fragment.only = TRUE, quiet = TRUE, envir = ace_envir))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.