Вы должны заметить, что в определении эскиза они называют htmltools::withTags
, что довольно просто
function (code)
{
eval(substitute(code), envir = as.list(tags), enclos = parent.frame())
}
<bytecode: 0x000001c832d09200>
<environment: namespace:htmltools>
Следует отметить, что он будет использовать замену и envir = as.list(tags)
. Если мы посмотрим на tags
, то это список со следующими именованными объектами / функциями:
> names(tags)
[1] "a" "abbr" "address" "area" "article" "aside" "audio"
[8] "b" "base" "bdi" "bdo" "blockquote" "body" "br"
[15] "button" "canvas" "caption" "cite" "code" "col" "colgroup"
[22] "command" "data" "datalist" "dd" "del" "details" "dfn"
[29] "div" "dl" "dt" "em" "embed" "eventsource" "fieldset"
[36] "figcaption" "figure" "footer" "form" "h1" "h2" "h3"
[43] "h4" "h5" "h6" "head" "header" "hgroup" "hr"
[50] "html" "i" "iframe" "img" "input" "ins" "kbd"
[57] "keygen" "label" "legend" "li" "link" "mark" "map"
[64] "menu" "meta" "meter" "nav" "noscript" "object" "ol"
[71] "optgroup" "option" "output" "p" "param" "pre" "progress"
[78] "q" "ruby" "rp" "rt" "s" "samp" "script"
[85] "section" "select" "small" "source" "span" "strong" "style"
[92] "sub" "summary" "sup" "table" "tbody" "td" "textarea"
[99] "tfoot" "th" "thead" "time" "title" "tr" "track"
[106] "u" "ul" "var" "video" "wbr"
Каждый из них имеет по существу одинаковую форму:
> tags$thead
function (...)
tag("thead", list(...))
<bytecode: 0x000001c82c4a2678>
<environment: namespace:htmltools>
Так что это просто удобный способ вызова функции tag
с указанным тегом. Пример прямого вызова:
> tag("thead", "This is my thead")
<thead>This is my thead</thead>