go-premailer: github.com/vanng822/go-premailer/premailer Index | Files

package premailer

import "github.com/vanng822/go-premailer/premailer"

Package premailer is for inline styling.

import (

func main() {
	prem, err := premailer.NewPremailerFromFile(inputFile, premailer.NewOptions())
	if err != nil {
	html, err := prem.Transform()
	if err != nil {

// Input

<style type="text/css">
	h1 { width: 300px; color:red; }
	strong { text-decoration:none; }

// Output

	<h1 style="color:red;width:300px" width="300">Hi!</h1>
	<p><strong style="text-decoration:none">Yes!</strong></p>


Package Files

doc.go element.go options.go premailer.go premailer_from_bytes.go premailer_from_file.go premailer_from_string.go specificity.go style_rule.go util.go

type Options Uses

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 Uses

func NewOptions() *Options

NewOptions return an Options instance with default value

type Premailer Uses

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 Uses

func NewPremailer(doc *goquery.Document, options *Options) Premailer

NewPremailer return a new instance of Premailer It take a Document as argument and it shouldn't be nil

func NewPremailerFromBytes Uses

func NewPremailerFromBytes(doc []byte, options *Options) (Premailer, error)

NewPremailerFromBytes take in a document in byte and create a goquery.Document and then create and Premailer instance.

func NewPremailerFromFile Uses

func NewPremailerFromFile(filename string, options *Options) (Premailer, error)

NewPremailerFromFile take an filename Read the content of this file and create a goquery.Document and then create and Premailer instance.

func NewPremailerFromString Uses

func NewPremailerFromString(doc string, options *Options) (Premailer, error)

NewPremailerFromString take in a document in string format and create a goquery.Document and then create and Premailer instance.

Package premailer imports 11 packages (graph) and is imported by 9 packages. Updated 2020-08-17. Refresh now. Tools for package owners.