Building Blocks for HTML Code

Description

The functions described here form building blocks for the format_html methods functions for codebook, ftable, ftable_matrix, and mtable objects, etc.

The most basic of these functions is html which constructs an object that represents a minimal piece of HTML code, an object that is member of class "html_elem". Yet unlike a character string containing HTML code, the resulting code element can relatively easily modified using the other functions presented here. The actual code is created, once as.character is applied to objects representing HTML code.

Larger sequences of HTML code can be prepared just by concatenating them with c, or by html_group, or by applying as.html_group to a list of "html_elem" objects. All these result in objects of class "html_group".

Attributes (such as class, id etc.) of HTML elements can be added to the call to html, but can also later recalled or modified with attribs or setAttribs. A potentially important attribute is of course the style attribute, which can contain CSS styling. It can be recalled or modified with style or setStyle. Styling strings can also be created with hmtl_style or as.css

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
html(tag, ..., .content = NULL, linebreak = FALSE)
html_group(...)
as.html_group(x)

content(x)
content(x)<-value
setContent(x,value)

attribs(x)
attribs(x)<-value
setAttribs(x,...)
## S3 method for class 'character'
setAttribs(x,...)
## S3 method for class 'html_elem'
setAttribs(x,...)
## S3 method for class 'html_group'
setAttribs(x,...)

css(...)
as.css(x)
style(x)
style(x) <- value
setStyle(x,...)
## S3 method for class 'character'
setStyle(x,...)
## S3 method for class 'html_elem'
setStyle(x,...)
## S3 method for class 'html_group'
setStyle(x,...)

Arguments

tag

a character string that determines the opening and closing tags of the HTML element. (The closing tag is relevant only if the element has a content.)

...

optional further arguments, named or not.

For html: named arguments create the attributes of the HTML element, unnamed arguments define the content of the HTML element, i.e. whatever appears between opening and closing tags (e.g. <p> and </p>). Character strings, "html_elem", or "html_group" objects can appear as content of a HTML element.

For setAttribs: named arguments create the attributes of the HTML element, unnamed arguments are ignored.

For setStyle: named arguments create the styling of the HTML element, unnamed arguments are ignored.

For html_group: several objects of class "html_elem" or "html_group".

For css: named arguments (character strings!) become components of a styling in CSS format.

.content

an optional character string, "html_elem", or "html_group" object

linebreak

a logical value or vector of length 2, determines whether linebreaks are inserted after the HTML tags.

x

an object. For as.html_group, this should be a list of objects of class "html_elem" or "html_group". For content, setContent, attribs, setAttribs, style, setStyle, this should be an object of class "html_elem" or "html_group".

value

an object of appropriate class.

For content<-: a character string, "html_elem", or "html_group" object, or a concatenation thereof.

For attribs<- or style<-: a named character vector.

Details

Objects created with html are lists with class attribute "html_elem" and components

tag

a character string

attributes

a named character vector

content

a character vector, an "html_elem" or "html_group" object, or a list of such.

linebreak

a logical value or vector of length 2.

Objects created with html_group or by concatenation of "html_elem" or "html_group" object are lists of such objects, with class attribute "html_group".

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
html("img")
html("img",src="test.png")
html("div",class="element",id="first","Sisyphus")
html("div",class="element",id="first",.content="Sisyphus")

div <- html("div",class="element",id="first",linebreak=c(TRUE,TRUE))
content(div) <- "Sisyphus"
div

tag <- html("tag",linebreak=TRUE)
attribs(tag)["class"] <- "something"
attribs(tag)["class"]
tag

style(tag) <- c(color="#342334")
style(tag)
tag

style(tag)["bg"] <- "white"
tag

setStyle(tag,bg="black")
setStyle(tag,c(bg="black"))

c(div,tag,tag)

c(
  c(div,tag),
  c(div,tag,tag)
)

c(
  c(div,tag),
  div,tag,tag
)

c(
  div,tag,
  c(div,tag,tag)
)

content(div) <- c(tag,tag,tag)
div


css("background-color"="black",
                  color="white")

as.css(c("background-color"="black",
                  color="white"))



Hello <- "Hello World!"
Hello <- html("p",Hello)
style(Hello) <- c(color="white",
                  "font-size"="40px",
                  "text-align"="center")

Link <- html("a","More examples here ...",
              href="http://elff.eu/software/memisc",
              title="More examples here ...",
              style=css(color="white"))
Link <- html("p"," (",Link,")")
style(Link) <- c(color="white",
                 "font-size"="15px",
                 "text-align"="center")
                  
Hello <- html("div",c(Hello,Link))
style(Hello) <- c("background-color"="#160666",
                  padding="20px")

show_html(Hello)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.