Ir para o conteúdo
Trilha
Capítulos

Referência

Pacote h

Referência do DSL de HTML: nós, elementos, atributos e fluxo de controle.

import "github.com/emersonjoe/trilha/h"

O tipo Node#

type Node interface {
	Render(w io.Writer) error
}

Qualquer valor com esse método pode ser filho de um elemento. h.Render(n) (string, error) é a conveniência para testes.

Texto e estrutura#

FunçãoSaída
Text(s)texto escapado
Textf(fmt, a...)texto formatado e escapado
Raw(html)HTML sem escape — a única porta
Fragment(filhos...), Group(...)filhos em sequência, sem elemento em volta
Doctype()<!doctype html>
Nilnó vazio
El(tag, filhos...)elemento com tag arbitrária
Void(tag, attrs...)elemento vazio arbitrário

Fluxo de controle#

FunçãoComportamento
If(cond, n)n se verdadeiro, vazio se falso
IfElse(cond, a, b)a ou b
Map(itens, f)f(item) para cada item
MapIndex(itens, f)f(i, item)

nil como filho é ignorado.

Elementos#

Todos os elementos HTML de uso comum têm uma função com o nome em maiúscula inicial: Html, Head, Body, Title, Meta, Link, Script, Style, Div, Span, P, A, Ul, Ol, Li, H1H6, Header, Footer, Main, Nav, Section, Article, Aside, Form, Input, Button, Label, Select, Option, Textarea, Table, Thead, Tbody, Tr, Th, Td, Img, Br, Hr, Pre, Code, Strong, Em, Small, Time, Details, Summary, Dialog, Figure, Picture, Video, Audio, Canvas, Iframe, Svg, Template, entre outros. Elementos vazios (Br, Img, Input, Meta, Link, Hr, Source, Track, Wbr, Area, Col, Embed, Base) aceitam só atributos.

Atributos#

FunçãoAtributo
Attr(nome, valor)qualquer atributo, valor escapado
Bool(nome)atributo booleano
Class(v...)class, juntando com espaço e ignorando vazios
ID, Href, Src, Alt, Type, Name, Value, Placeholder, Action, Method, Rel, Lang, Charset, Content, For, Role, Target, Width, Height, Rows, Cols, Min, Max, Step, Pattern, Maxlength, Minlength, Autocomplete, Inputmode, Enctype, Accept, Datetime, Tabindex, Onclicko atributo de mesmo nome
StyleAttr, TitleAttr, LabelAttrstyle, title, label (os nomes sem sufixo são elementos)
Data(chave, v), Aria(chave, v)data-chave, aria-chave
Attrs(...)vários atributos num nó só, para um componente que põe mais de um no elemento onde é colocado (ui.Confirm); o que não é atributo é descartado
Disabled(), Checked(), Selected(), Required(), Autofocus(), Hidden(), Readonly(), Multiple(), Open(), Defer(), Async(), Autoplay(), Controls(), Novalidate()booleanos

Atributos podem aparecer em qualquer posição entre os filhos; são escritos na tag de abertura, na ordem em que aparecem.