builder.html.Document
type pub DocumentA container for HTML nodes
A Document defaults to being treated as a whole HTML5 document (i.e. with a
doctype), but this can be disabled by setting Document.fragment to true.
Fields
nodes
let pub @nodes: Array[Node]All top-level nodes in this document.
Static methods
fragment
Show source codeHide source code
fn pub static fragment -> Document {
Document(nodes: [], doctype: false)
}fn pub static fragment -> DocumentReturns a new empty document that acts as a fragment.
A fragment is an HTML document without a doctype, making it useful for generating chunks of HTML meant to be included in other chunks of HTML (e.g. when rendering Markdown as part of a larger document).
Examples
import builder.html.Document
let doc = Document.fragment
doc.to_string # => ''
html
Show source codeHide source code
fn pub static html(lang: String, func: fn (mut Element)) -> Document {
let doc = new
doc.element('html').attr('lang', lang).with(func)
doc
}fn pub static html(lang: String, func: fn (mut Element)) -> DocumentReturns a Document that containes a top-level <html> tag.
The lang argument specifies the value of the lang attribute of the
<html> element.
The func argument is called with a mutable reference to the top-level
<html> element.
Examples
import builder.html.Document
Document.html('en', fn (html) {
html.head.title.text('Hello')
})
new
Show source codeHide source code
fn pub static new -> Document {
Document(nodes: [], doctype: true)
}fn pub static new -> DocumentReturns a new empty document.
Examples
import builder.html.Document
let doc = Document.new
doc.to_string # => '<!DOCTYPE html>'
Instance methods
a
Show source codeHide source code
fn pub mut a -> mut Element {
element('a').inline
}fn pub mut a -> mut ElementAdds a <a> element as a child element.
abbr
Show source codeHide source code
fn pub mut abbr -> mut Element {
element('abbr').inline
}fn pub mut abbr -> mut ElementAdds a <abbr> element as a child element.
add
Show source codeHide source code
fn pub mut add(element: Element) {
nodes_mut.push(Node.Element(element))
}fn pub mut add(element: Element)Adds the child Element to self.
Examples
import builder.html.Element
Element.new('p').add(Element.new('span'))
address
Show source codeHide source code
fn pub mut address -> mut Element {
element('address').inline
}fn pub mut address -> mut ElementAdds a <address> element as a child element.
append
Show source codeHide source code
fn pub mut append(document: Document) {
match document {
case { @nodes = n } -> nodes_mut.append(n)
}
}fn pub mut append(document: Document)Adds the nodes of the given Document to self.
Examples
import builder.html.(Document, Element)
let doc1 = Document.fragment
let doc2 = Document.fragment
doc1.p.text('test')
doc2.div.append(doc1)
doc2.to_string # => '<div><p>test</p></div>'
area
Show source codeHide source code
fn pub mut area -> mut Element {
element('area').self_closing.inline
}fn pub mut area -> mut ElementAdds a <area> element as a child element.
article
Show source codeHide source code
fn pub mut article -> mut Element {
element('article')
}fn pub mut article -> mut ElementAdds a <article> element as a child element.
aside
Show source codeHide source code
fn pub mut aside -> mut Element {
element('aside')
}fn pub mut aside -> mut ElementAdds a <aside> element as a child element.
audio
Show source codeHide source code
fn pub mut audio -> mut Element {
element('audio').inline
}fn pub mut audio -> mut ElementAdds a <audio> element as a child element.
b
Show source codeHide source code
fn pub mut b -> mut Element {
element('b').inline
}fn pub mut b -> mut ElementAdds a <b> element as a child element.
base
Show source codeHide source code
fn pub mut base -> mut Element {
element('base').self_closing
}fn pub mut base -> mut ElementAdds a <base> element as a child element.
bdi
Show source codeHide source code
fn pub mut bdi -> mut Element {
element('bdi')
}fn pub mut bdi -> mut ElementAdds a <bdi> element as a child element.
bdo
Show source codeHide source code
fn pub mut bdo -> mut Element {
element('bdo')
}fn pub mut bdo -> mut ElementAdds a <bdo> element as a child element.
blockquote
Show source codeHide source code
fn pub mut blockquote -> mut Element {
element('blockquote')
}fn pub mut blockquote -> mut ElementAdds a <blockquote> element as a child element.
body
Show source codeHide source code
fn pub mut body -> mut Element {
element('body')
}fn pub mut body -> mut ElementAdds a <body> element as a child element.
br
Show source codeHide source code
fn pub mut br -> mut Element {
element('br').self_closing
}fn pub mut br -> mut ElementAdds a <br> element as a child element.
button
Show source codeHide source code
fn pub mut button -> mut Element {
element('button')
}fn pub mut button -> mut ElementAdds a <button> element as a child element.
canvas
Show source codeHide source code
fn pub mut canvas -> mut Element {
element('canvas')
}fn pub mut canvas -> mut ElementAdds a <canvas> element as a child element.
caption
Show source codeHide source code
fn pub mut caption -> mut Element {
element('caption')
}fn pub mut caption -> mut ElementAdds a <caption> element as a child element.
cite
Show source codeHide source code
fn pub mut cite -> mut Element {
element('cite').inline
}fn pub mut cite -> mut ElementAdds a <cite> element as a child element.
code
Show source codeHide source code
fn pub mut code -> mut Element {
element('code').inline
}fn pub mut code -> mut ElementAdds a <code> element as a child element.
col
Show source codeHide source code
fn pub mut col -> mut Element {
element('col').self_closing
}fn pub mut col -> mut ElementAdds a <col> element as a child element.
colgroup
Show source codeHide source code
fn pub mut colgroup -> mut Element {
element('colgroup')
}fn pub mut colgroup -> mut ElementAdds a <colgroup> element as a child element.
data
Show source codeHide source code
fn pub mut data -> mut Element {
element('data')
}fn pub mut data -> mut ElementAdds a <data> element as a child element.
datalist
Show source codeHide source code
fn pub mut datalist -> mut Element {
element('datalist')
}fn pub mut datalist -> mut ElementAdds a <datalist> element as a child element.
dd
Show source codeHide source code
fn pub mut dd -> mut Element {
element('dd')
}fn pub mut dd -> mut ElementAdds a <dd> element as a child element.
del
Show source codeHide source code
fn pub mut del -> mut Element {
element('del').inline
}fn pub mut del -> mut ElementAdds a <del> element as a child element.
details
Show source codeHide source code
fn pub mut details -> mut Element {
element('details')
}fn pub mut details -> mut ElementAdds a <details> element as a child element.
dfn
Show source codeHide source code
fn pub mut dfn -> mut Element {
element('dfn').inline
}fn pub mut dfn -> mut ElementAdds a <dfn> element as a child element.
dialog
Show source codeHide source code
fn pub mut dialog -> mut Element {
element('dialog')
}fn pub mut dialog -> mut ElementAdds a <dialog> element as a child element.
div
Show source codeHide source code
fn pub mut div -> mut Element {
element('div')
}fn pub mut div -> mut ElementAdds a <div> element as a child element.
dl
Show source codeHide source code
fn pub mut dl -> mut Element {
element('dl')
}fn pub mut dl -> mut ElementAdds a <dl> element as a child element.
dt
Show source codeHide source code
fn pub mut dt -> mut Element {
element('dt')
}fn pub mut dt -> mut ElementAdds a <dt> element as a child element.
element
Show source codeHide source code
fn pub mut element(name: String) -> mut Element {
let el = Element.new(name)
let ret = mut el
add(el)
ret
}fn pub mut element(name: String) -> mut ElementAdds an element with the given name as a cild of self.
em
Show source codeHide source code
fn pub mut em -> mut Element {
element('em').inline
}fn pub mut em -> mut ElementAdds a <em> element as a child element.
embed
Show source codeHide source code
fn pub mut embed -> mut Element {
element('embed').self_closing
}fn pub mut embed -> mut ElementAdds a <embed> element as a child element.
fieldset
Show source codeHide source code
fn pub mut fieldset -> mut Element {
element('fieldset')
}fn pub mut fieldset -> mut ElementAdds a <fieldset> element as a child element.
figcaption
Show source codeHide source code
fn pub mut figcaption -> mut Element {
element('figcaption')
}fn pub mut figcaption -> mut ElementAdds a <figcaption> element as a child element.
figure
Show source codeHide source code
fn pub mut figure -> mut Element {
element('figure')
}fn pub mut figure -> mut ElementAdds a <figure> element as a child element.
footer
Show source codeHide source code
fn pub mut footer -> mut Element {
element('footer')
}fn pub mut footer -> mut ElementAdds a <footer> element as a child element.
form
Show source codeHide source code
fn pub mut form -> mut Element {
element('form')
}fn pub mut form -> mut ElementAdds a <form> element as a child element.
h1
Show source codeHide source code
fn pub mut h1 -> mut Element {
element('h1')
}fn pub mut h1 -> mut ElementAdds a <h1> element as a child element.
h2
Show source codeHide source code
fn pub mut h2 -> mut Element {
element('h2')
}fn pub mut h2 -> mut ElementAdds a <h2> element as a child element.
h3
Show source codeHide source code
fn pub mut h3 -> mut Element {
element('h3')
}fn pub mut h3 -> mut ElementAdds a <h3> element as a child element.
h4
Show source codeHide source code
fn pub mut h4 -> mut Element {
element('h4')
}fn pub mut h4 -> mut ElementAdds a <h4> element as a child element.
h5
Show source codeHide source code
fn pub mut h5 -> mut Element {
element('h5')
}fn pub mut h5 -> mut ElementAdds a <h5> element as a child element.
h6
Show source codeHide source code
fn pub mut h6 -> mut Element {
element('h6')
}fn pub mut h6 -> mut ElementAdds a <h6> element as a child element.
head
Show source codeHide source code
fn pub mut head -> mut Element {
element('head')
}fn pub mut head -> mut ElementAdds a <head> element as a child element.
header
Show source codeHide source code
fn pub mut header -> mut Element {
element('header')
}fn pub mut header -> mut ElementAdds a <header> element as a child element.
hgroup
Show source codeHide source code
fn pub mut hgroup -> mut Element {
element('hgroup')
}fn pub mut hgroup -> mut ElementAdds a <hgroup> element as a child element.
hr
Show source codeHide source code
fn pub mut hr -> mut Element {
element('hr').self_closing
}fn pub mut hr -> mut ElementAdds a <hr> element as a child element.
i
Show source codeHide source code
fn pub mut i -> mut Element {
element('i').inline
}fn pub mut i -> mut ElementAdds a <i> element as a child element.
iframe
Show source codeHide source code
fn pub mut iframe -> mut Element {
element('iframe')
}fn pub mut iframe -> mut ElementAdds a <iframe> element as a child element.
img
Show source codeHide source code
fn pub mut img -> mut Element {
element('img').self_closing.inline
}fn pub mut img -> mut ElementAdds a <img> element as a child element.
input
Show source codeHide source code
fn pub mut input -> mut Element {
element('input').self_closing
}fn pub mut input -> mut ElementAdds a <input> element as a child element.
ins
Show source codeHide source code
fn pub mut ins -> mut Element {
element('ins').inline
}fn pub mut ins -> mut ElementAdds a <ins> element as a child element.
kbd
Show source codeHide source code
fn pub mut kbd -> mut Element {
element('kbd').inline
}fn pub mut kbd -> mut ElementAdds a <kbd> element as a child element.
label
Show source codeHide source code
fn pub mut label -> mut Element {
element('label')
}fn pub mut label -> mut ElementAdds a <label> element as a child element.
legend
Show source codeHide source code
fn pub mut legend -> mut Element {
element('legend').inline
}fn pub mut legend -> mut ElementAdds a <legend> element as a child element.
li
Show source codeHide source code
fn pub mut li -> mut Element {
element('li')
}fn pub mut li -> mut ElementAdds a <li> element as a child element.
link
Show source codeHide source code
fn pub mut link -> mut Element {
element('link').self_closing
}fn pub mut link -> mut ElementAdds a <link> element as a child element.
main
Show source codeHide source code
fn pub mut main -> mut Element {
element('main')
}fn pub mut main -> mut ElementAdds a <main> element as a child element.
map
Show source codeHide source code
fn pub mut map -> mut Element {
element('map')
}fn pub mut map -> mut ElementAdds a <map> element as a child element.
mark
Show source codeHide source code
fn pub mut mark -> mut Element {
element('mark').inline
}fn pub mut mark -> mut ElementAdds a <mark> element as a child element.
menu
Show source codeHide source code
fn pub mut menu -> mut Element {
element('menu')
}fn pub mut menu -> mut ElementAdds a <menu> element as a child element.
meta
Show source codeHide source code
fn pub mut meta -> mut Element {
element('meta').self_closing
}fn pub mut meta -> mut ElementAdds a <meta> element as a child element.
meter
Show source codeHide source code
fn pub mut meter -> mut Element {
element('meter').inline
}fn pub mut meter -> mut ElementAdds a <meter> element as a child element.
nav
Show source codeHide source code
fn pub mut nav -> mut Element {
element('nav')
}fn pub mut nav -> mut ElementAdds a <nav> element as a child element.
nodes_mut
Show source codeHide source code
fn pub mut nodes_mut -> mut Array[Node] {
@nodes
}fn pub mut nodes_mut -> mut Array[Node]Returns a mutable reference to the nodes of self.
noscript
Show source codeHide source code
fn pub mut noscript -> mut Element {
element('noscript')
}fn pub mut noscript -> mut ElementAdds a <noscript> element as a child element.
object
Show source codeHide source code
fn pub mut object -> mut Element {
element('object')
}fn pub mut object -> mut ElementAdds a <object> element as a child element.
ol
Show source codeHide source code
fn pub mut ol -> mut Element {
element('ol')
}fn pub mut ol -> mut ElementAdds a <ol> element as a child element.
optgroup
Show source codeHide source code
fn pub mut optgroup -> mut Element {
element('optgroup')
}fn pub mut optgroup -> mut ElementAdds a <optgroup> element as a child element.
option
Show source codeHide source code
fn pub mut option -> mut Element {
element('option')
}fn pub mut option -> mut ElementAdds a <option> element as a child element.
output
Show source codeHide source code
fn pub mut output -> mut Element {
element('output')
}fn pub mut output -> mut ElementAdds a <output> element as a child element.
p
Show source codeHide source code
fn pub mut p -> mut Element {
element('p')
}fn pub mut p -> mut ElementAdds a <p> element as a child element.
picture
Show source codeHide source code
fn pub mut picture -> mut Element {
element('picture')
}fn pub mut picture -> mut ElementAdds a <picture> element as a child element.
portal
Show source codeHide source code
fn pub mut portal -> mut Element {
element('portal')
}fn pub mut portal -> mut ElementAdds a <portal> element as a child element.
pre
Show source codeHide source code
fn pub mut pre -> mut Element {
element('pre')
}fn pub mut pre -> mut ElementAdds a <pre> element as a child element.
progress
Show source codeHide source code
fn pub mut progress -> mut Element {
element('progress')
}fn pub mut progress -> mut ElementAdds a <progress> element as a child element.
q
Show source codeHide source code
fn pub mut q -> mut Element {
element('q').inline
}fn pub mut q -> mut ElementAdds a <q> element as a child element.
rp
Show source codeHide source code
fn pub mut rp -> mut Element {
element('rp')
}fn pub mut rp -> mut ElementAdds a <rp> element as a child element.
rt
Show source codeHide source code
fn pub mut rt -> mut Element {
element('rt')
}fn pub mut rt -> mut ElementAdds a <rt> element as a child element.
ruby
Show source codeHide source code
fn pub mut ruby -> mut Element {
element('ruby')
}fn pub mut ruby -> mut ElementAdds a <ruby> element as a child element.
s
Show source codeHide source code
fn pub mut s -> mut Element {
element('s')
}fn pub mut s -> mut ElementAdds a <s> element as a child element.
samp
Show source codeHide source code
fn pub mut samp -> mut Element {
element('samp')
}fn pub mut samp -> mut ElementAdds a <samp> element as a child element.
script
Show source codeHide source code
fn pub mut script -> mut Element {
element('script')
}fn pub mut script -> mut ElementAdds a <script> element as a child element.
search
Show source codeHide source code
fn pub mut search -> mut Element {
element('search')
}fn pub mut search -> mut ElementAdds a <search> element as a child element.
section
Show source codeHide source code
fn pub mut section -> mut Element {
element('section')
}fn pub mut section -> mut ElementAdds a <section> element as a child element.
select
Show source codeHide source code
fn pub mut select -> mut Element {
element('select')
}fn pub mut select -> mut ElementAdds a <select> element as a child element.
slot
Show source codeHide source code
fn pub mut slot -> mut Element {
element('slot')
}fn pub mut slot -> mut ElementAdds a <slot> element as a child element.
small
Show source codeHide source code
fn pub mut small -> mut Element {
element('small').inline
}fn pub mut small -> mut ElementAdds a <small> element as a child element.
source
Show source codeHide source code
fn pub mut source -> mut Element {
element('source').self_closing.inline
}fn pub mut source -> mut ElementAdds a <source> element as a child element.
span
Show source codeHide source code
fn pub mut span -> mut Element {
element('span').inline
}fn pub mut span -> mut ElementAdds a <span> element as a child element.
strong
Show source codeHide source code
fn pub mut strong -> mut Element {
element('strong').inline
}fn pub mut strong -> mut ElementAdds a <strong> element as a child element.
style
Show source codeHide source code
fn pub mut style -> mut Element {
element('style')
}fn pub mut style -> mut ElementAdds a <style> element as a child element.
sub
Show source codeHide source code
fn pub mut sub -> mut Element {
element('sub').inline
}fn pub mut sub -> mut ElementAdds a <sub> element as a child element.
summary
Show source codeHide source code
fn pub mut summary -> mut Element {
element('summary').inline
}fn pub mut summary -> mut ElementAdds a <summary> element as a child element.
sup
Show source codeHide source code
fn pub mut sup -> mut Element {
element('sup').inline
}fn pub mut sup -> mut ElementAdds a <sup> element as a child element.
table
Show source codeHide source code
fn pub mut table -> mut Element {
element('table')
}fn pub mut table -> mut ElementAdds a <table> element as a child element.
tbody
Show source codeHide source code
fn pub mut tbody -> mut Element {
element('tbody')
}fn pub mut tbody -> mut ElementAdds a <tbody> element as a child element.
td
Show source codeHide source code
fn pub mut td -> mut Element {
element('td')
}fn pub mut td -> mut ElementAdds a <td> element as a child element.
template
Show source codeHide source code
fn pub mut template -> mut Element {
element('template')
}fn pub mut template -> mut ElementAdds a <template> element as a child element.
text
Show source codeHide source code
fn pub mut text(text: String) {
nodes_mut.push(Node.Text(text))
}fn pub mut text(text: String)Adds a text node to this element.
Examples
import builder.html.Element
Element.new('p').text('Hello!')
textarea
Show source codeHide source code
fn pub mut textarea -> mut Element {
element('textarea')
}fn pub mut textarea -> mut ElementAdds a <textarea> element as a child element.
tfoot
Show source codeHide source code
fn pub mut tfoot -> mut Element {
element('tfoot')
}fn pub mut tfoot -> mut ElementAdds a <tfoot> element as a child element.
th
Show source codeHide source code
fn pub mut th -> mut Element {
element('th')
}fn pub mut th -> mut ElementAdds a <th> element as a child element.
thead
Show source codeHide source code
fn pub mut thead -> mut Element {
element('thead')
}fn pub mut thead -> mut ElementAdds a <thead> element as a child element.
time
Show source codeHide source code
fn pub mut time -> mut Element {
element('time').inline
}fn pub mut time -> mut ElementAdds a <time> element as a child element.
title
Show source codeHide source code
fn pub mut title -> mut Element {
element('title')
}fn pub mut title -> mut ElementAdds a <title> element as a child element.
to_pretty_string
Show source codeHide source code
fn pub to_pretty_string -> String {
Generator.new(indent: ' ').generate(self)
}fn pub to_pretty_string -> StringReturns an indented String containing the HTML representation of self.
This method uses two spaces for indentation. If you want to customize the
indentation, use the Generator type directly instead.
Examples
import builder.html.Document
let doc = Document.new
doc.p.text('hello')
doc.to_pretty_string # => "<p>\n hello\n</p>"
to_string
Show source codeHide source code
fn pub to_string -> String {
Generator.new(indent: '').generate(self)
}fn pub to_string -> StringReturns a String containing the HTML representation of self.
Examples
import builder.html.Document
let doc = Document.new
doc.p.text('hello')
doc.to_string # => '<p>hello</p>'
tr
Show source codeHide source code
fn pub mut tr -> mut Element {
element('tr')
}fn pub mut tr -> mut ElementAdds a <tr> element as a child element.
track
Show source codeHide source code
fn pub mut track -> mut Element {
element('track').self_closing
}fn pub mut track -> mut ElementAdds a <track> element as a child element.
u
Show source codeHide source code
fn pub mut u -> mut Element {
element('u')
}fn pub mut u -> mut ElementAdds a <u> element as a child element.
ul
Show source codeHide source code
fn pub mut ul -> mut Element {
element('ul')
}fn pub mut ul -> mut ElementAdds a <ul> element as a child element.
var
Show source codeHide source code
fn pub mut var -> mut Element {
element('var').inline
}fn pub mut var -> mut ElementAdds a <var> element as a child element.
video
Show source codeHide source code
fn pub mut video -> mut Element {
element('video')
}fn pub mut video -> mut ElementAdds a <video> element as a child element.
wbr
Show source codeHide source code
fn pub mut wbr -> mut Element {
element('wbr').self_closing
}fn pub mut wbr -> mut ElementAdds a <wbr> element as a child element.
xmp
Show source codeHide source code
fn pub mut xmp -> mut Element {
element('xmp')
}fn pub mut xmp -> mut ElementAdds a <xmp> element as a child element.
xperimental
Show source codeHide source code
fn pub mut xperimental -> mut Element {
element('xperimental')
}fn pub mut xperimental -> mut ElementAdds a <xperimental> element as a child element.
Implemented traits
Builder
impl Builder for DocumentToString
impl ToString for Document