package html
import "github.com/tdewolff/minify/html"
Package html minifies HTML5 following the specifications at http://www.w3.org/TR/html5/syntax.html.
Index ¶
- Variables
- func Minify(m *minify.M, w io.Writer, r io.Reader, params map[string]string) error
- type Minifier
- type Token
- type TokenBuffer
Examples ¶
Variables ¶
var DefaultMinifier = &Minifier{}
DefaultMinifier is the default minifier.
Functions ¶
func Minify ¶
Minify minifies HTML data, it reads from r and writes to w.
Code:
Code:
Code:
Output: Code:
Output:Example¶
{
m := minify.New()
m.AddFunc("text/html", Minify)
m.AddFunc("text/css", css.Minify)
m.AddFunc("image/svg+xml", svg.Minify)
m.AddFuncRegexp(regexp.MustCompile("^(application|text)/(x-)?(java|ecma)script$"), js.Minify)
m.AddFuncRegexp(regexp.MustCompile("[/+]json$"), json.Minify)
m.AddFuncRegexp(regexp.MustCompile("[/+]xml$"), xml.Minify)
// set URL to minify link locations too
m.URL, _ = url.Parse("https://www.example.com/")
if err := m.Minify("text/html", os.Stdout, os.Stdin); err != nil {
panic(err)
}
}
Example (Options)¶
{
m := minify.New()
m.Add("text/html", &Minifier{
KeepDefaultAttrVals: true,
KeepWhitespace: true,
})
if err := m.Minify("text/html", os.Stdout, os.Stdin); err != nil {
panic(err)
}
}
Example (Reader)¶
{
b := bytes.NewReader([]byte("<html><body><h1>Example</h1></body></html>"))
m := minify.New()
m.Add("text/html", &Minifier{})
r := m.Reader("text/html", b)
if _, err := io.Copy(os.Stdout, r); err != nil {
panic(err)
}
// Output: <h1>Example</h1>
}
<h1>Example</h1>
Example (Writer)¶
{
m := minify.New()
m.Add("text/html", &Minifier{})
w := m.Writer("text/html", os.Stdout)
w.Write([]byte("<html><body><h1>Example</h1></body></html>"))
w.Close()
// Output: <h1>Example</h1>
}
<h1>Example</h1>
Types ¶
type Minifier ¶
type Minifier struct { KeepConditionalComments bool KeepDefaultAttrVals bool KeepDocumentTags bool KeepEndTags bool KeepWhitespace bool }
Minifier is an HTML minifier.
func (*Minifier) Minify ¶
Minify minifies HTML data, it reads from r and writes to w.
type Token ¶
type Token struct { html.TokenType Hash html.Hash Data []byte Text []byte AttrVal []byte Traits traits }
Token is a single token unit with an attribute value (if given) and hash of the data.
type TokenBuffer ¶
type TokenBuffer struct {
// contains filtered or unexported fields
}
TokenBuffer is a buffer that allows for token look-ahead.
func NewTokenBuffer ¶
func NewTokenBuffer(l *html.Lexer) *TokenBuffer
NewTokenBuffer returns a new TokenBuffer.
func (*TokenBuffer) Attributes ¶
func (z *TokenBuffer) Attributes(hashes ...html.Hash) []*Token
Attributes extracts the gives attribute hashes from a tag. It returns in the same order pointers to the requested token data or nil.
func (*TokenBuffer) Peek ¶
func (z *TokenBuffer) Peek(pos int) *Token
Peek returns the ith element and possibly does an allocation. Peeking past an error will panic.
func (*TokenBuffer) Shift ¶
func (z *TokenBuffer) Shift() *Token
Shift returns the first element and advances position.
Source Files ¶
- Version
- v2.3.6+incompatible
- Published
- Oct 26, 2018
- Platform
- darwin/amd64
- Imports
- 6 packages
- Last checked
- 1 hour ago –
Tools for package owners.