slickR with Iframes"

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(slickR)

Iframes

Since the carousel can accept any html element we can place iframes in the carousel.

There are times when you may want to put in different DOMs rather than an image in slick.

Using slideType you can specify which DOM is used in the slides.

For example lets put the help Rd files from ggplot2 into a slider using the helper function getHelp.

Dont forget to open the output to a browser to view the iframe contents

Function to fetch help files as HTML

get_help <- function(fn,pkg){

  ff <- get('index.search',envir = asNamespace('utils'))(
    topic = fn, 
    paths = find.package(pkg),
    TRUE)

  path    <- dirname(ff)
  dirpath <- dirname(path)
  pkgname <- basename(dirpath)
  RdDB    <- file.path(path, pkgname)

  paste0(
    utils::capture.output({
      tools::Rd2HTML(
        Rd = get('fetchRdDB', envir = asNamespace('tools'))(RdDB, basename(ff))
      )
    }),
  collapse='\n')

}

Retrieve help from stats

help_files <- lapply(
    ls("package:stats",pattern = '^r')[-1],
    get_help,
    pkg = 'stats')

Create IFRAME slick

slickR::slickR(help_files,
               slideType = 'iframe',
               height = 400,
               width='95%') + 
  settings(dots  = TRUE, 
           slidesToShow   = 2, 
           slidesToScroll = 2)


Try the slickR package in your browser

Any scripts or data that you put into this service are public.

slickR documentation built on Dec. 28, 2022, 2:41 a.m.