tabset: Represent a (recursive) list with (nested) tabsets

View source: R/markdown.R

tabsetR Documentation

Represent a (recursive) list with (nested) tabsets

Description

The tab titles are names of list members, and the tab content contains the values of list members. If a list member is also a list, it will be represented recursively with a child tabset.

Usage

tabset(x, value = str)

tab_content(x)

Arguments

x

A list for tabset(), and a character vector for tab_content().

value

A function to print the value of a list member. By default, str() is used to print the structure of the value. You may also use dput() to output the full value, but it may be slow when the size of the value is too big. If the function prints the value to the console, the output will be captured and shown in a code block. If you want construct the tab content by yourself instead of capturing console output as a code block, you may pass the Markdown content to tab_content() and return it in this value() function.

Value

A character vector of Markdown that can be rendered to HTML with litedown::mark().

Examples

xfun::tabset(iris)
xfun::tabset(iris, dput)
xfun::tabset(iris, print)

# a deeply nested list
plot(1:10)
p = recordPlot()
xfun::tabset(p)

# custom tab content
xfun::tabset(iris, function(x) {
    if (is.factor(x)) {
        res = c("A factor with levels: ", xfun::join_words(levels(x), before = "`"))
        xfun::tab_content(res)
    } else print(summary(x))
})

xfun documentation built on March 20, 2026, 5:07 p.m.