Documentation
¶
Overview ¶
Domino is a Go library for creating and manipulating HTML documents using an elegant DOM API. It allows you to write HTML pages in pure Go reasonably concisely, which eliminates the need to learn another template language, and lets you take advantage of the more powerful features of Go.
Index ¶
- Variables
- type Attr
- type Context
- type Document
- type DomNode
- func A(args ...interface{}) *DomNode
- func Abbr(args ...interface{}) *DomNode
- func Address(args ...interface{}) *DomNode
- func Area(args ...interface{}) *DomNode
- func Article(args ...interface{}) *DomNode
- func Aside(args ...interface{}) *DomNode
- func Audio(args ...interface{}) *DomNode
- func B(args ...interface{}) *DomNode
- func Base(args ...interface{}) *DomNode
- func Bdi(args ...interface{}) *DomNode
- func Bdo(args ...interface{}) *DomNode
- func Blockquote(args ...interface{}) *DomNode
- func Body(args ...interface{}) *DomNode
- func Br(args ...interface{}) *DomNode
- func Button(args ...interface{}) *DomNode
- func Canvas(args ...interface{}) *DomNode
- func Caption(args ...interface{}) *DomNode
- func Cite(args ...interface{}) *DomNode
- func Code(args ...interface{}) *DomNode
- func Col(args ...interface{}) *DomNode
- func Colgroup(args ...interface{}) *DomNode
- func Command(args ...interface{}) *DomNode
- func Datalist(args ...interface{}) *DomNode
- func Dd(args ...interface{}) *DomNode
- func Del(args ...interface{}) *DomNode
- func Details(args ...interface{}) *DomNode
- func Dfn(args ...interface{}) *DomNode
- func Div(args ...interface{}) *DomNode
- func Dl(args ...interface{}) *DomNode
- func Dt(args ...interface{}) *DomNode
- func Em(args ...interface{}) *DomNode
- func Embed(args ...interface{}) *DomNode
- func Fieldset(args ...interface{}) *DomNode
- func Figcaption(args ...interface{}) *DomNode
- func Figure(args ...interface{}) *DomNode
- func Footer(args ...interface{}) *DomNode
- func Form(args ...interface{}) *DomNode
- func H1(args ...interface{}) *DomNode
- func H2(args ...interface{}) *DomNode
- func H3(args ...interface{}) *DomNode
- func H4(args ...interface{}) *DomNode
- func H5(args ...interface{}) *DomNode
- func H6(args ...interface{}) *DomNode
- func Head(args ...interface{}) *DomNode
- func Header(args ...interface{}) *DomNode
- func Hgroup(args ...interface{}) *DomNode
- func Hr(args ...interface{}) *DomNode
- func Html(args ...interface{}) *DomNode
- func I(args ...interface{}) *DomNode
- func Iframe(args ...interface{}) *DomNode
- func Img(args ...interface{}) *DomNode
- func Input_(args ...interface{}) *DomNode
- func Ins(args ...interface{}) *DomNode
- func Kbd(args ...interface{}) *DomNode
- func Keygen(args ...interface{}) *DomNode
- func Label(args ...interface{}) *DomNode
- func Legend(args ...interface{}) *DomNode
- func Li(args ...interface{}) *DomNode
- func Link(args ...interface{}) *DomNode
- func Map_(args ...interface{}) *DomNode
- func Mark(args ...interface{}) *DomNode
- func Menu(args ...interface{}) *DomNode
- func Meta(args ...interface{}) *DomNode
- func Meter(args ...interface{}) *DomNode
- func Nav(args ...interface{}) *DomNode
- func NewDomNode(name string, args ...interface{}) *DomNode
- func Noscript(args ...interface{}) *DomNode
- func Object(args ...interface{}) *DomNode
- func Ol(args ...interface{}) *DomNode
- func Optgroup(args ...interface{}) *DomNode
- func Option(args ...interface{}) *DomNode
- func Output(args ...interface{}) *DomNode
- func P(args ...interface{}) *DomNode
- func Param(args ...interface{}) *DomNode
- func Pre(args ...interface{}) *DomNode
- func Progress(args ...interface{}) *DomNode
- func Q(args ...interface{}) *DomNode
- func Rp(args ...interface{}) *DomNode
- func Rt(args ...interface{}) *DomNode
- func Ruby(args ...interface{}) *DomNode
- func S(args ...interface{}) *DomNode
- func Samp(args ...interface{}) *DomNode
- func Script(args ...interface{}) *DomNode
- func Section(args ...interface{}) *DomNode
- func Select(args ...interface{}) *DomNode
- func Small(args ...interface{}) *DomNode
- func Source(args ...interface{}) *DomNode
- func Span(args ...interface{}) *DomNode
- func Strong(args ...interface{}) *DomNode
- func Style(args ...interface{}) *DomNode
- func Sub(args ...interface{}) *DomNode
- func Summary(args ...interface{}) *DomNode
- func Sup(args ...interface{}) *DomNode
- func Table(args ...interface{}) *DomNode
- func Tbody(args ...interface{}) *DomNode
- func Td(args ...interface{}) *DomNode
- func Textarea(args ...interface{}) *DomNode
- func Tfoot(args ...interface{}) *DomNode
- func Th(args ...interface{}) *DomNode
- func Thead(args ...interface{}) *DomNode
- func Time(args ...interface{}) *DomNode
- func Title(args ...interface{}) *DomNode
- func Tr(args ...interface{}) *DomNode
- func Track(args ...interface{}) *DomNode
- func U(args ...interface{}) *DomNode
- func Ul(args ...interface{}) *DomNode
- func Var(args ...interface{}) *DomNode
- func Video(args ...interface{}) *DomNode
- func Wbr(args ...interface{}) *DomNode
- func (n *DomNode) A(args ...interface{}) *DomNode
- func (n *DomNode) Abbr(args ...interface{}) *DomNode
- func (n *DomNode) Add(children ...Node) Node
- func (n *DomNode) Address(args ...interface{}) *DomNode
- func (n *DomNode) Area(args ...interface{}) *DomNode
- func (n *DomNode) Article(args ...interface{}) *DomNode
- func (n *DomNode) Aside(args ...interface{}) *DomNode
- func (n *DomNode) Audio(args ...interface{}) *DomNode
- func (n *DomNode) B(args ...interface{}) *DomNode
- func (n *DomNode) Base(args ...interface{}) *DomNode
- func (n *DomNode) Bdi(args ...interface{}) *DomNode
- func (n *DomNode) Bdo(args ...interface{}) *DomNode
- func (n *DomNode) Blockquote(args ...interface{}) *DomNode
- func (n *DomNode) Body(args ...interface{}) *DomNode
- func (n *DomNode) Br(args ...interface{}) *DomNode
- func (n *DomNode) Button(args ...interface{}) *DomNode
- func (n *DomNode) Canvas(args ...interface{}) *DomNode
- func (n *DomNode) Caption(args ...interface{}) *DomNode
- func (n *DomNode) Cite(args ...interface{}) *DomNode
- func (n *DomNode) Clear() *DomNode
- func (n *DomNode) Code(args ...interface{}) *DomNode
- func (n *DomNode) Col(args ...interface{}) *DomNode
- func (n *DomNode) Colgroup(args ...interface{}) *DomNode
- func (n *DomNode) Command(args ...interface{}) *DomNode
- func (n *DomNode) Datalist(args ...interface{}) *DomNode
- func (n *DomNode) Dd(args ...interface{}) *DomNode
- func (n *DomNode) Del(args ...interface{}) *DomNode
- func (n *DomNode) Details(args ...interface{}) *DomNode
- func (n *DomNode) Dfn(args ...interface{}) *DomNode
- func (n *DomNode) Div(args ...interface{}) *DomNode
- func (n *DomNode) Dl(args ...interface{}) *DomNode
- func (n *DomNode) Dt(args ...interface{}) *DomNode
- func (n *DomNode) Em(args ...interface{}) *DomNode
- func (n *DomNode) Embed(args ...interface{}) *DomNode
- func (n *DomNode) Fieldset(args ...interface{}) *DomNode
- func (n *DomNode) Figcaption(args ...interface{}) *DomNode
- func (n *DomNode) Figure(args ...interface{}) *DomNode
- func (n *DomNode) Footer(args ...interface{}) *DomNode
- func (n *DomNode) Form(args ...interface{}) *DomNode
- func (n *DomNode) H1(args ...interface{}) *DomNode
- func (n *DomNode) H2(args ...interface{}) *DomNode
- func (n *DomNode) H3(args ...interface{}) *DomNode
- func (n *DomNode) H4(args ...interface{}) *DomNode
- func (n *DomNode) H5(args ...interface{}) *DomNode
- func (n *DomNode) H6(args ...interface{}) *DomNode
- func (n *DomNode) Head(args ...interface{}) *DomNode
- func (n *DomNode) Header(args ...interface{}) *DomNode
- func (n *DomNode) Hgroup(args ...interface{}) *DomNode
- func (n *DomNode) Hr(args ...interface{}) *DomNode
- func (n *DomNode) Html(args ...interface{}) *DomNode
- func (n *DomNode) I(args ...interface{}) *DomNode
- func (n *DomNode) Iframe(args ...interface{}) *DomNode
- func (n *DomNode) Img(args ...interface{}) *DomNode
- func (n *DomNode) IndentString() string
- func (n *DomNode) Input_(args ...interface{}) *DomNode
- func (n *DomNode) Ins(args ...interface{}) *DomNode
- func (n *DomNode) Kbd(args ...interface{}) *DomNode
- func (n *DomNode) Keygen(args ...interface{}) *DomNode
- func (n *DomNode) Label(args ...interface{}) *DomNode
- func (n *DomNode) Legend(args ...interface{}) *DomNode
- func (n *DomNode) Li(args ...interface{}) *DomNode
- func (n *DomNode) Link(args ...interface{}) *DomNode
- func (n *DomNode) Map_(args ...interface{}) *DomNode
- func (n *DomNode) Mark(args ...interface{}) *DomNode
- func (n *DomNode) Menu(args ...interface{}) *DomNode
- func (n *DomNode) Meta(args ...interface{}) *DomNode
- func (n *DomNode) Meter(args ...interface{}) *DomNode
- func (n *DomNode) Nav(args ...interface{}) *DomNode
- func (n *DomNode) Noscript(args ...interface{}) *DomNode
- func (n *DomNode) Object(args ...interface{}) *DomNode
- func (n *DomNode) Ol(args ...interface{}) *DomNode
- func (n *DomNode) Optgroup(args ...interface{}) *DomNode
- func (n *DomNode) Option(args ...interface{}) *DomNode
- func (n *DomNode) Output(args ...interface{}) *DomNode
- func (n *DomNode) P(args ...interface{}) *DomNode
- func (n *DomNode) Param(args ...interface{}) *DomNode
- func (n *DomNode) Pre(args ...interface{}) *DomNode
- func (n *DomNode) Progress(args ...interface{}) *DomNode
- func (n *DomNode) Q(args ...interface{}) *DomNode
- func (n *DomNode) Rp(args ...interface{}) *DomNode
- func (n *DomNode) Rt(args ...interface{}) *DomNode
- func (n *DomNode) Ruby(args ...interface{}) *DomNode
- func (n *DomNode) S(args ...interface{}) *DomNode
- func (n *DomNode) Samp(args ...interface{}) *DomNode
- func (n *DomNode) Script(args ...interface{}) *DomNode
- func (n *DomNode) Section(args ...interface{}) *DomNode
- func (n *DomNode) Select(args ...interface{}) *DomNode
- func (n *DomNode) Small(args ...interface{}) *DomNode
- func (n *DomNode) Source(args ...interface{}) *DomNode
- func (n *DomNode) Span(args ...interface{}) *DomNode
- func (n *DomNode) String() string
- func (n *DomNode) StringBuild(b *bytes.Buffer, indent bool, depth int)
- func (n *DomNode) Strong(args ...interface{}) *DomNode
- func (n *DomNode) Style(args ...interface{}) *DomNode
- func (n *DomNode) Sub(args ...interface{}) *DomNode
- func (n *DomNode) Summary(args ...interface{}) *DomNode
- func (n *DomNode) Sup(args ...interface{}) *DomNode
- func (n *DomNode) Table(args ...interface{}) *DomNode
- func (n *DomNode) Tbody(args ...interface{}) *DomNode
- func (n *DomNode) Td(args ...interface{}) *DomNode
- func (n *DomNode) Text(text string) *DomNode
- func (n *DomNode) Textarea(args ...interface{}) *DomNode
- func (n *DomNode) Tfoot(args ...interface{}) *DomNode
- func (n *DomNode) Th(args ...interface{}) *DomNode
- func (n *DomNode) Thead(args ...interface{}) *DomNode
- func (n *DomNode) Time(args ...interface{}) *DomNode
- func (n *DomNode) Title(args ...interface{}) *DomNode
- func (n *DomNode) Tr(args ...interface{}) *DomNode
- func (n *DomNode) Track(args ...interface{}) *DomNode
- func (n *DomNode) U(args ...interface{}) *DomNode
- func (n *DomNode) Ul(args ...interface{}) *DomNode
- func (n *DomNode) Var(args ...interface{}) *DomNode
- func (n *DomNode) Video(args ...interface{}) *DomNode
- func (n *DomNode) Wbr(args ...interface{}) *DomNode
- type Node
- type TextNode
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var NSpaces = 4
NSpaces can be adjusted to determine how many spaces are used in each indent.
Functions ¶
This section is empty.
Types ¶
type Attr ¶
type Attr map[string]interface{}
Attr is a shorthand for map[string]interface{}, used when declaring attributes for DomNodes.
type Context ¶
type Context struct { *DomNode // contains filtered or unexported fields }
Context is a stack of dom nodes, the last-in node becomes the focused node and from there you can add elements, text etc. to it before popping to get back up the stack. See examples.
Example ¶
// Establish a new context on a <div> c := NewContext(Div()) // Push a <ul> on to the stack, adding it to the div automatically. c.Push(Ul()) for i := 0; i < 2; i++ { // Add to the current context's focus <ul> c.Li(fmt.Sprintf("hello %d", i+1)) } // Pop the <ul> off the stack, context focuses on the <div> again. c.Pop() // Add some spans to the div from before Span(c, "end1") c.Add(Span("end2")) fmt.Println(c)
Output: <div><ul><li>hello 1</li><li>hello 2</li></ul><span>end1</span><span>end2</span></div>
func NewContext ¶
NewContext creates a context focused on the passed in dom node.
func (*Context) Pop ¶
func (c *Context) Pop()
Pop a node off of the stack, focus moves to the last-in node.
type Document ¶
type Document struct { Html *DomNode Head *DomNode Body *DomNode // contains filtered or unexported fields }
Document is a convenience type to help build a standard HTML5 document. It provides a doctype, and header/title/body structure.
Example ¶
// Create a document with the title Domino d := NewDocument("Domino") // Add an H1 to the body. d.Body.H1("Hello World!") // Add a script & style tag to the header. d.Head.Script(Attr{"type": "text/javascript", "src": "//google.com/jquery.js"}) d.Head.Style(NewTextNode("a {\n color: #FFF;\n}")) fmt.Println(d.IndentString())
Output: <!DOCTYPE html> <html> <head> <title>Domino</title> <script src="//google.com/jquery.js" type="text/javascript"></script> <style> a { color: #FFF; } </style> </head> <body> <h1>Hello World!</h1> </body> </html>
func NewDocument ¶
NewDocument creates a new HTML5 document with a title using the text provided
func (*Document) IndentString ¶
IndentString returns the HTML for the document with proper formatting.
type DomNode ¶
DomNode is a node in a dom tree. It has children nodes and attributes.
func Blockquote ¶
func Blockquote(args ...interface{}) *DomNode
func Figcaption ¶
func Figcaption(args ...interface{}) *DomNode
func NewDomNode ¶
NewDomNode creates a new dom node with it's name (div, ul, html) and any number of arguments, these can be: children dom or text nodes, or Attr lists.
func (*DomNode) Blockquote ¶
func (*DomNode) Figcaption ¶
func (*DomNode) IndentString ¶
IndentString returns HTML for this node and all it's ancestors with indentation.
func (*DomNode) StringBuild ¶
StringBuild appends the html for this node and all it's ancestors to the provided buffer.
type Node ¶
Node is basically a stringer interface but with the ability to append to a buffer for performance reasons.
type TextNode ¶
type TextNode struct {
Value string
}
TextNode represents text in the dom tree. Text can not have child nodes or attributes.
func NewTextNode ¶
NewTextNode creates a new text node with the provided text.
func (*TextNode) IndentString ¶
IndentString appends it's value to the provided buffer.