Travis build status AppVeyor build status Codecov test coverage

shinipsum

The goal of {shinipsum} is to provide random shiny elements for easiest shiny app prototyping, so that you can focus on building the frontend before building the backend.

The full documentation is in the {pkgdown} site: https://thinkr-open.github.io/shinipsum/

Installation

You can install the dev version of shinipsum from GitHub with:

remotes::install_github("Thinkr-open/shinipsum")

Demo

Available examples:

library(shinipsum)
ipsum_examples()
#> [1] "01_navbar.R"

You can run {shinipsum} demos with:

shiny::runApp(
  ipsum_examples("01_navbar.R")
)

Available ipsums :

Note: {shinipsum} only load functions which are necessary to its internal job. If you want to customise an output or to use a renderXX / XXOutput, you’ll need to explicitely load the packages needed (for example, if you want to customise a dygraph, a ggplot, or use ggplotly).

DataTable

random_DT takes 4 args :

Image

random_image returns a random image.

Plot

random_ggplot takes one arg :

Default theme is minimal.

As the return object is a ggplot, it can be enhanced like any other ggplot with +.

library(ggplot2)
random_ggplot(type = "col") + 
  labs(title = "Random plot") + 
  theme_bw()

random_ggplotly calls the ggplotly function on a random_ggplot.

Dygraph

random_dygraph returns a random dygprah. It takes one arg:

As the return object is a dygraph, it can be enhanced like any other dygraph.

library(dygraphs)
random_dygraph()  %>% 
  dyRangeSelector()

Print

random_print takes one arg:

Table

random_table takes three args : nrow, ncols and type. See random_DT.

Text

random_text takes one of these two args :

One of the two should be left NULL

Example

Here is an example of using {shinipsum} to generate a random app:

library(shiny)
library(shinipsum)
library(DT)
ui <- fluidPage(
  h2("A Random DT"),
  DTOutput("data_table"),
  h2("A Random Image"),
  plotOutput("image", height = "300px"),
  h2("A Random Plot"),
  plotOutput("plot"),
  h2("A Random Print"),
  verbatimTextOutput("print"),
  h2("A Random Table"),
  tableOutput("table"),
  h2("A Random Text"),
  tableOutput("text")
)

server <- function(input, output, session) {
  output$data_table <- DT::renderDT({
    random_DT(10, 5)
  })
  output$image <- renderImage({
    random_image()
  })
  output$plot <- renderPlot({
    random_ggplot()
  })
  output$print <- renderPrint({
    random_print("model")
  })
  output$table <- renderTable({
    random_table(10, 5)
  })
  output$text <- renderText({
    random_text(nwords = 50)
  })
}
shinyApp(ui, server)

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