The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

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.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.