htmlutil

package
v0.46.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 28, 2023 License: MIT Imports: 15 Imported by: 8

Documentation

Index

Constants

View Source
const (
	TagDiv           = "div"
	AttributeClass   = "class"
	AttributeHref    = "href"
	AttributeOnclick = "onclick"
	AttributeStyle   = "style"
	DelimitSemicolon = ";"
	DelimitSpace     = " "
)
View Source
const (
	Color2GreenHex       = "#00FF2A"
	Color2YellowHex      = "#DFDD13"
	Color2RedHex         = "#FF0000"
	RingCentralOrangeHex = "#FF8800"
	RingCentralBlueHex   = "#0073AE"
	RingCentralGreyHex   = "#585858"
)
View Source
const (
	AttrHref = "href"
)

Variables

View Source
var (
	ErrAttributeNameIsRequired = errors.New("attribute name is required")
	ErrTagNameIsRequired       = errors.New("tag name is required")
)
View Source
var ChartColor1 = [...]string{
	"#3366CC",
	"#DC3912",
	"#FF9900",
	"#109618",
	"#990099",
	"#3B3EAC",
	"#0099C6",
	"#DD4477",
	"#66AA00",
	"#B82E2E",
	"#316395",
	"#994499",
	"#22AA99",
	"#AAAA11",
	"#6633CC",
	"#E67300",
	"#8B0707",
	"#329262",
	"#5574A6",
	"#3B3EAC",
}

ChartColor1 is the color palette for Google Charts as collected by Craig Davis here: https://gist.github.com/there4/2579834

View Source
var ErrTokenNotFound = errors.New("token(s) not found")

Functions

func AtomLookupString added in v0.45.0

func AtomLookupString(tagName string) atom.Atom

func BuildAttributeHTML added in v0.40.12

func BuildAttributeHTML(key string, values []string, delimiter string, htmlEscape bool) string

func HTMLToText added in v0.37.0

func HTMLToText(s string) string

HTMLToText converts HTML to multi-line text.

func HTMLToTextAtom added in v0.43.0

func HTMLToTextAtom(b []byte, policy *bluemonday.Policy, a atom.Atom) (string, error)

func HTMLToTextCondensed added in v0.37.0

func HTMLToTextCondensed(s string) string

HTMLToTextCondensed removes HTML tags, unescapes HTML entities, and removes extra whitespace including non-breaking spaces.

func HTMLToTextH1 added in v0.43.0

func HTMLToTextH1(b []byte, policy *bluemonday.Policy) (string, error)

func NewTokenizerBytes added in v0.45.0

func NewTokenizerBytes(b []byte) *html.Tokenizer

func NewTokenizerFile added in v0.45.0

func NewTokenizerFile(name string) (*html.Tokenizer, error)

func NextStartToken added in v0.45.0

func NextStartToken(z *html.Tokenizer, skipErrors bool, htmlAtoms ...atom.Atom) (html.Token, error)

func NextTextToken added in v0.45.0

func NextTextToken(z *html.Tokenizer, skipErrors bool, htmlAtoms ...atom.Atom) (html.Token, error)

func NextToken added in v0.45.0

func NextToken(z *html.Tokenizer, skipErrors bool, tokFilters ...html.Token) (html.Token, error)

func NextTokenMatch added in v0.45.0

func NextTokenMatch(z *html.Tokenizer, skipErrors, includeChain, includeMatch bool, filters ...TokenFilter) ([]html.Token, error)

NextTokenMatch returns a string of matches. `includeMatch` is only used when `includeChain` is included.

func ParseLink(tokens ...html.Token) (href string, desc string, err error)

func SimplifyHTMLText added in v0.37.0

func SimplifyHTMLText(s string) string

func StreamlineCRLFs

func StreamlineCRLFs(s string) string

func TextToHTML added in v0.37.0

func TextToHTML(s string) string

func TextToHTMLBr2 added in v0.37.0

func TextToHTMLBr2(s string) string

func TokenAttribute added in v0.45.0

func TokenAttribute(token html.Token, attrName string) (string, error)

func TokenMap added in v0.45.0

func TokenMap(t html.Token) map[string]string

func TokenMatchLeft added in v0.45.0

func TokenMatchLeft(tokFilter, tok html.Token) bool

TokenMatchLeft returns true if the token matches the token filter.

func TokensBetween added in v0.45.0

func TokensBetween(z *html.Tokenizer, skipErrors, inclusive bool, begin, end TokenFilters) ([]html.Token, error)

func TokensBetweenAtom added in v0.45.0

func TokensBetweenAtom(z *html.Tokenizer, skipErrors, inclusive bool, htmlAtom atom.Atom) ([]html.Token, error)

TokensBetweenAtom returns the tokens that represent the `innerHtml` between a start and end tag token.

func TokensSubset added in v0.45.0

func TokensSubset(startFilter, endFilter *TokenFilter, inclusive, greedy bool, toks []html.Token) []html.Token

Types

type AtomSet added in v0.45.0

type AtomSet struct {
	Atoms map[string]atom.Atom
}

func NewAtomSet added in v0.45.0

func NewAtomSet(htmlAtoms ...atom.Atom) AtomSet

func NewAtomSetString added in v0.45.0

func NewAtomSetString(tagNames ...string) (AtomSet, error)

func NewAtomSetStringMust added in v0.45.0

func NewAtomSetStringMust(tagNames ...string) AtomSet

func (AtomSet) Add added in v0.45.0

func (set AtomSet) Add(htmlAtoms ...atom.Atom)

func (AtomSet) Exists added in v0.45.0

func (set AtomSet) Exists(htmlAtom atom.Atom) bool

func (AtomSet) Len added in v0.45.0

func (set AtomSet) Len() int

func (AtomSet) Names added in v0.45.0

func (set AtomSet) Names() []string

type Attributes added in v0.45.0

type Attributes []html.Attribute

func (Attributes) Exists added in v0.45.0

func (attrs Attributes) Exists(attr html.Attribute) bool

func (Attributes) Find added in v0.45.0

func (attrs Attributes) Find(ns, key, val *string, n int) []html.Attribute

func (Attributes) FindExists added in v0.45.0

func (attrs Attributes) FindExists(ns, key, val *string) bool

func (Attributes) FindOne added in v0.45.0

func (attrs Attributes) FindOne(ns, key, val *string, errOnNone, errOnMulti bool) (html.Attribute, error)

func (Attributes) FindVal added in v0.45.0

func (attrs Attributes) FindVal(ns, key *string) string

func (Attributes) FindVals added in v0.45.0

func (attrs Attributes) FindVals(ns, key *string, n int) []string

type Description added in v0.45.0

type Description struct {
	Term        Tokens
	Description Tokens
}

func (*Description) DescriptionString added in v0.45.0

func (d *Description) DescriptionString() string

func (*Description) Empty added in v0.45.0

func (d *Description) Empty() bool

func (*Description) Strings added in v0.45.0

func (d *Description) Strings() []string

func (*Description) TermString added in v0.45.0

func (d *Description) TermString() string

type DescriptionList added in v0.45.0

type DescriptionList []Description

func ParseDescriptionListTokens added in v0.45.0

func ParseDescriptionListTokens(toks ...html.Token) DescriptionList

func TokenizerDescriptionListNext added in v0.45.0

func TokenizerDescriptionListNext(z *html.Tokenizer) (DescriptionList, error)

func (DescriptionList) Strings added in v0.45.0

func (dl DescriptionList) Strings() [][]string

type DescriptionLists added in v0.45.0

type DescriptionLists []DescriptionList

func TokenizerDescriptionLists added in v0.45.0

func TokenizerDescriptionLists(z *html.Tokenizer) (DescriptionLists, error)

func (DescriptionLists) Strings added in v0.45.0

func (dls DescriptionLists) Strings() [][][]string

type Element added in v0.39.4

type Element struct {
	TagName   string
	Attrs     map[string][]string
	SelfClose bool
	InnerHTML []stringsutil.StringableWithErr
}

func NewElement added in v0.39.4

func NewElement() *Element

func (*Element) AddAttribute added in v0.40.12

func (el *Element) AddAttribute(key string, values ...string) error

func (*Element) AddInnerHTML added in v0.40.13

func (el *Element) AddInnerHTML(innerHTML stringsutil.StringableWithErr)

func (*Element) AddInnerHTMLText added in v0.40.13

func (el *Element) AddInnerHTMLText(text string, escaped bool)

func (*Element) String added in v0.39.4

func (el *Element) String() (string, error)
type Link struct {
	Href      string
	InnerHTML string
}

Link is a struct to hold information for an HTML link.

type Text added in v0.40.13

type Text struct {
	Text    string
	Escaped bool
}

Text represents a text string that fulfills the `Stringable` interface.

func (Text) String added in v0.40.13

func (s Text) String() (string, error)

type TokenFilter added in v0.45.0

type TokenFilter struct {
	TokenType html.TokenType
	AtomSet   AtomSet
}

find next <tr> or </table>

func NewTokenFilter added in v0.45.0

func NewTokenFilter(tokenType html.TokenType, atoms ...atom.Atom) *TokenFilter

func (*TokenFilter) Match added in v0.45.0

func (tf *TokenFilter) Match(t html.Token) bool

type TokenFilters added in v0.45.0

type TokenFilters []TokenFilter

func (TokenFilters) ByTokenType added in v0.45.0

func (filters TokenFilters) ByTokenType(tt html.TokenType) []TokenFilter

type Tokens added in v0.45.0

type Tokens []html.Token

func (Tokens) Maps added in v0.45.0

func (tokens Tokens) Maps() []map[string]string

func (Tokens) MatchLeft added in v0.45.0

func (tokens Tokens) MatchLeft(tok html.Token) bool

Match matches the supplied token with the tokens in the set. only the attributes in the set need to match for a `true` result. One one set token need to match for success.

func (Tokens) String added in v0.45.0

func (tokens Tokens) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL