The webex package

The goal of webex is to enable instructors to easily create interactive web pages that students can use in self-guided learning. Although webex has fewer features than RStudio’s learnr package, it is more lightweight: whereas learnr tutorials must be either hosted on a shiny server or run locally, webex creates standalone HTML files that require only a JavaScript-enabled browser. It is also extremely simple to use.


You can install webex from CRAN using:


You can install the development version of webex from GitHub with:


Creating interactive widgets with inline code

The webex package provides functions that create HTML widgets using inline R code. These functions are:

function widget description
fitb() text box fill-in-the-blank question
mcq() pull-down menu multiple choice question
torf() pull-down menu TRUE or FALSE question
hide() and unhide() button solution revealed when clicked
total_correct() text updating total correct

The appearance of the text box and pull-down menu widgets changes when users enter the correct answer. Answers can be either static or dynamic (i.e., specified using R code). Widget styles can be changed using style_widgets().

Examples are provided in the Web Exercises R Markdown template. To create a file from the webex template in RStudio, click File -> New File... -> RMarkdown and in the dialog box that appears, select From Template and choose Web Exercises.

Alternatively (or if you’re not using RStudio) use:

rmarkdown::draft("exercises.Rmd", "webex", "webex")

Knit the file to HTML to see how it works. Note: The widgets only function in a JavaScript-enabled browser.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.