knitr::opts_chunk$set(
  comment = "#>",
  fig.path = "man/figures/"
)

Superseded

This package is superseded, and we focus on the cli package now: https://github.com/r-lib/cli

Installation

Stable version:

install.packages("cliapp")

Development version:

pak::pak("r-lib/cliapp")

Usage

This README uses the simple theme, included in the package, see ?simple_theme().

options(crayon.enabled = TRUE)
options(crayon.colors = 256)
crayon::num_colors(forget = TRUE)
options(cli.unicode = TRUE)
library(cliapp)
start_app(theme = simple_theme(), output = "stdout")
library(cliapp)
start_app(theme = simple_theme())

Headings

cli_h1(), cli_h2() and cli_h3() create three levels of headings:

cli_h1("Title")
cli_h2("Subtitle")
cli_h3("Subsubtitle")
capture.output(cli_h1("Title"))
capture.output(cli_h2("Subtitle"))
capture.output(cli_h3("Subsubtitle"))

Text and inline markup

All (non-verbatim) outputted text runs through glue::glue(). In addition to glue interpolation, cliapp also supports inline markup via the {markup text} form. The builtin theme defines inline markup classes, see ?inline-markup.

cli_text("{emph Emphasized text}, {strong Strong} importance.
  A piece of code: {code  sum(a) / length(a)}. Package names:
  {pkg cliapp}, file names: {path /usr/bin/env}, etc.")
capture.output(cli_text("{emph Emphasized text}, {strong Strong} importance.
  A piece of code: {code  sum(a) / length(a)}. Package names:
  {pkg cliapp}, file names : {path /usr/bin/env}, etc."))

Alerts

cli_alert("Generic alert")
cli_alert_danger("Something went horribly wrong")
cli_alert_warning("Better watch out!")
cli_alert_info("About to download 1.4GiB of data.")
cli_alert_success("All downloads finished successfully")
capture.output(cli_alert("Generic alert"))
capture.output(cli_alert_danger("Something went horribly wrong"))
capture.output(cli_alert_warning("Better watch out!"))
capture.output(cli_alert_info("About to download 1.4GiB of data."))
capture.output(cli_alert_success("All downloads finished successfully"))

Lists

Ordered, unordered and definition lists, they can be nested. See ?cli_ol(), ?cli_ul(), ?cli_dl() and ?cli_it().

cli_div(theme = list(ol = list("margin-left" = 2)))
cli_ul("one", .close = FALSE)
cli_ol(c("foo", "bar", "foobar"))
cli_it("two")
cli_end()
cli_end()
capture.output({
cli_div(theme = list(ol = list("margin-left" = 2)))
cli_ul("one", .close = FALSE)
cli_ol(c("foo", "bar", "foobar"))
cli_it("two")
cli_end()
cli_end()
})

Progress bars

Progress bars are supported via the progress package.

License

MIT © RStudio



r-lib/cliapp documentation built on Nov. 9, 2023, 11:18 a.m.