Documentation
¶
Overview ¶
Package premailer is for inline styling.
import (
"fmt"
"github.com/vanng822/go-premailer/premailer"
"log"
)
func main() {
prem, err := premailer.NewPremailerFromFile(inputFile, premailer.NewOptions())
if err != nil {
log.Fatal(err)
}
html, err := prem.Transform()
if err != nil {
log.Fatal(err)
}
fmt.Println(html)
}
// Input
<html>
<head>
<title>Title</title>
<style type="text/css">
h1 { width: 300px; color:red; }
strong { text-decoration:none; }
</style>
</head>
<body>
<h1>Hi!</h1>
<p><strong>Yes!</strong></p>
</body>
</html>
// Output
<html> <head> <title>Title</title> </head> <body> <h1 style="color:red;width:300px" width="300">Hi!</h1> <p><strong style="text-decoration:none">Yes!</strong></p> </body> </html>
Index ¶
- type Options
- type Premailer
- func NewPremailer(doc *goquery.Document, options *Options) Premailer
- func NewPremailerFromBytes(doc []byte, options *Options) (Premailer, error)
- func NewPremailerFromFile(filename string, options *Options) (Premailer, error)
- func NewPremailerFromString(doc string, options *Options) (Premailer, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct {
// Remove class attribute from element
// Default false
RemoveClasses bool
// Copy related CSS properties into HTML attributes (e.g. background-color to bgcolor)
// Default true
CssToAttributes bool
// If true, then style declarations that have "!important" will keep the "!important" in the final
// style attribute
// Example:
// <style>p { width: 100% !important }</style><p>Text</p>
// gives
// <p style="width: 100% !important">Text</p>
KeepBangImportant bool
}
Options for controlling behaviour
func NewOptions ¶
func NewOptions() *Options
NewOptions return an Options instance with default value
type Premailer ¶
type Premailer interface {
// Transform process and inlining css
// It start to collect the rules in the document style tags
// Calculate specificity and sort the rules based on that
// It then collects the affected elements
// And applies the rules on those
// The leftover rules will put back into a style element
Transform() (string, error)
}
Premailer is the inteface of Premailer
func NewPremailer ¶
NewPremailer return a new instance of Premailer It take a Document as argument and it shouldn't be nil
func NewPremailerFromBytes ¶
NewPremailerFromBytes take in a document in byte and create a goquery.Document and then create and Premailer instance.
func NewPremailerFromFile ¶
NewPremailerFromFile take an filename Read the content of this file and create a goquery.Document and then create and Premailer instance.
Click to show internal directories.
Click to hide internal directories.