https://github.com/etiennebacher/conductor
Create Tours in Shiny Apps Using Shepherd.js.
https://github.com/etiennebacher/conductor
Last synced: 11 days ago
JSON representation
Create Tours in Shiny Apps Using Shepherd.js.
- Host: GitHub
- URL: https://github.com/etiennebacher/conductor
- Owner: etiennebacher
- License: other
- Created: 2022-04-03T16:19:57.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-24T10:47:38.000Z (about 2 months ago)
- Last Synced: 2025-04-10T11:21:23.927Z (14 days ago)
- Language: R
- Homepage: https://conductor.etiennebacher.com
- Size: 1.79 MB
- Stars: 34
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - etiennebacher/conductor - Create Tours in Shiny Apps Using Shepherd.js. (R)
README
# conductor
[](https://github.com/etiennebacher/conductor/actions)
![]()
Create tours in Shiny apps using [shepherd.js](https://shepherdjs.dev/).
## Installation
You can install the development version (recommended) of `conductor` from [GitHub](https://github.com/) with:
``` r
# install.packages("devtools")
devtools::install_github("etiennebacher/conductor")
```You can also install the CRAN version, but the last bug corrections are not there yet:
``` r
install.packages("conductor")
```## How to use
If you already use [`cicerone`](https://github.com/JohnCoene/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.
```r
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`.
```r
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:
* [`rintrojs`](https://github.com/carlganz/rintrojs)
* [`cicerone`](https://github.com/JohnCoene/cicerone)## Acknowledgements
The structure of the package, the code and the docs of `conductor` are copied or largely inspired from [`cicerone`](https://github.com/JohnCoene/cicerone), by [John Coene](https://john-coene.com/).
## How to contribute
This package uses John Coene's [`{packer}`](https://packer.john-coene.com/#/). 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:
```r
packer::bundle()
devtools::load()
```
Please note that the conductor project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.