conductor

R-CMD-check

Create tours in Shiny apps using shepherd.js.

Installation

You can install the development version (recommended) of conductor from GitHub with:

# install.packages("devtools")
devtools::install_github("etiennebacher/conductor")

You can also install the CRAN version, but the last bug corrections are not there yet:

install.packages("conductor")

How to use

If you already use cicerone, then you should be able to use conductor quite easily.

Create a conductor

First, create a Conductor with Conductor$new(). This can be done anywhere, not necessarily in the ui or server parts of the app. You can also add some options in $new(). To add steps in the tour, use $step(). Steps can be attached to specific elements with el, but if no el is specified then the popover will be displayed in the center of the screen.

library(conductor)

conductor <- Conductor$
  new()$
  step(
    title = "Hello there",
    text = "This popover is displayed in the center of the screen."
  )$
  step(
    el = "#test",
    title = "This is a button",
    text = "This button has no purpose. Its only goal is to serve as support for demo."
  )

Call the conductor

Then, call useConductor() in the ui and call conductor$init()$start() anywhere in the server.

library(shiny)

ui <- fluidPage(
  useConductor(),
  actionButton("test", "Test")
)

server <- function(input, output, session){
  conductor$init()$start()
}

shinyApp(ui, server)

Similar packages

This is not at all the first package to enable tours in Shiny applications. Similar packages are:

Acknowledgements

The structure of the package, the code and the docs of conductor are copied or largely inspired from cicerone, by John Coene.

How to contribute

This package uses John Coene’s {packer}. If you want to contribute to the JavaScript files located in srcjs, you should run packer::npm_install(), do the modifications you want and then run:

packer::bundle()
devtools::load()

Please note that the conductor project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.