Container elements may contain other elements. Currently the following
commands create container elements: cli_div(), cli_par(), the list
elements: cli_ul(), cli_ol(), cli_dl(), and list items are
containers as well: cli_li().
A container can add a new theme, which is removed when the container exits.
d <- cli_div(theme = list(h1 = list(color = "blue",
                                    "font-weight" = "bold")))
cli_h1("Custom title")
cli_end(d)
#>                                                                                 
#> Custom title                                                                    
Container elements are closed with cli_end(). For convenience,
by default they are closed automatically when the function that created
them terminated (either regularly or with an error). The default
behavior can be changed with the .auto_close argument.
div <- function() {
  cli_div(class = "tmp", theme = list(.tmp = list(color = "yellow")))
  cli_text("This is yellow")
}
div()
cli_text("This is not yellow any more")
#> This is yellow                                                                  
#> This is not yellow any more                                                     
You can use the internal cli:::cli_debug_doc() function to see the
currently open containers.
fun <- function() {
  cli_div(id = "mydiv")
  cli_par(class = "myclass")
  cli:::cli_debug_doc()
}
fun()
#> #> <cli document> #> <body id="body"> #> <div id="mydiv"> +theme #> <par id="cli-82040-226" class="myclass">