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.