components

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var IMG_BASE_URL = "https://www.mailjet.com/images/theme/v1/icons/ico-social/"
View Source
var MjAccordionElementSpec = &core.ComponentSpec{
	TagName: "mj-accordion-element",
	AllowedAttributes: map[string]string{
		"background-color":   "color",
		"border":             "string",
		"font-family":        "string",
		"icon-align":         "enum(top,middle,bottom)",
		"icon-width":         "unit(px,%)",
		"icon-height":        "unit(px,%)",
		"icon-wrapped-url":   "string",
		"icon-wrapped-alt":   "string",
		"icon-unwrapped-url": "string",
		"icon-unwrapped-alt": "string",
		"icon-position":      "enum(left,right)",
	},
	Create: NewMjAccordionElement,
}
View Source
var MjAccordionSpec = &core.ComponentSpec{
	TagName: "mj-accordion",
	AllowedAttributes: map[string]string{
		"container-background-color": "color",
		"border":                     "string",
		"font-family":                "string",
		"icon-align":                 "enum(top,middle,bottom)",
		"icon-width":                 "unit(px,%)",
		"icon-height":                "unit(px,%)",
		"icon-wrapped-url":           "string",
		"icon-wrapped-alt":           "string",
		"icon-unwrapped-url":         "string",
		"icon-unwrapped-alt":         "string",
		"icon-position":              "enum(left,right)",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "border", Value: "2px solid black"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "icon-align", Value: "middle"},
		{Key: "icon-wrapped-url", Value: "https://i.imgur.com/bIXv1bk.png"},
		{Key: "icon-wrapped-alt", Value: "+"},
		{Key: "icon-unwrapped-url", Value: "https://i.imgur.com/w4uTygT.png"},
		{Key: "icon-unwrapped-alt", Value: "-"},
		{Key: "icon-position", Value: "right"},
		{Key: "icon-height", Value: "32px"},
		{Key: "icon-width", Value: "32px"},
		{Key: "padding", Value: "10px 25px"},
	},
	Create: NewMjAccordion,
}
View Source
var MjAccordionTextSpec = &core.ComponentSpec{
	TagName:   "mj-accordion-text",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"background-color": "color",
		"font-size":        "unit(px)",
		"font-family":      "string",
		"font-weight":      "string",
		"letter-spacing":   "unitWithNegative(px,em)",
		"line-height":      "unit(px,%,)",
		"color":            "color",
		"padding-bottom":   "unit(px,%)",
		"padding-left":     "unit(px,%)",
		"padding-right":    "unit(px,%)",
		"padding-top":      "unit(px,%)",
		"padding":          "unit(px,%){1,4}",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "font-size", Value: "13px"},
		{Key: "line-height", Value: "1"},
		{Key: "padding", Value: "16px"},
	},
	Create: NewMjAccordionText,
}
View Source
var MjAccordionTitleSpec = &core.ComponentSpec{
	TagName:   "mj-accordion-title",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"background-color": "color",
		"color":            "color",
		"font-size":        "unit(px)",
		"font-family":      "string",
		"font-weight":      "string",
		"padding-bottom":   "unit(px,%)",
		"padding-left":     "unit(px,%)",
		"padding-right":    "unit(px,%)",
		"padding-top":      "unit(px,%)",
		"padding":          "unit(px,%){1,4}",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "font-size", Value: "13px"},
		{Key: "padding", Value: "16px"},
	},
	Create: NewMjAccordionTitle,
}
View Source
var MjAttributesSpec = &core.ComponentSpec{
	TagName: "mj-attributes",
	Create:  NewMjAttributes,
}
View Source
var MjBodySpec = &core.ComponentSpec{
	TagName: "mj-body",
	AllowedAttributes: map[string]string{
		"background-color": "color",
		"width":            "unit(px)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "width", Value: "600px"},
	},
	Create: NewMjBody,
}
View Source
var MjBreakpointSpec = &core.ComponentSpec{
	TagName:   "mj-breakpoint",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"width": "unit(px)",
	},
	Create: NewMjBreakpoint,
}
View Source
var MjButtonSpec = &core.ComponentSpec{
	TagName:   "mj-button",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"align":                      "enum(left,center,right)",
		"background-color":           "color",
		"border-bottom":              "string",
		"border-left":                "string",
		"border-radius":              "string",
		"border-right":               "string",
		"border-top":                 "string",
		"border":                     "string",
		"color":                      "color",
		"container-background-color": "color",
		"font-family":                "string",
		"font-size":                  "unit(px)",
		"font-style":                 "string",
		"font-weight":                "string",
		"height":                     "unit(px,%)",
		"href":                       "string",
		"name":                       "string",
		"title":                      "string",
		"inner-padding":              "unit(px,%){1,4}",
		"letter-spacing":             "unitWithNegative(px,em)",
		"line-height":                "unit(px,%,)",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
		"rel":                        "string",
		"target":                     "string",
		"text-decoration":            "string",
		"text-transform":             "string",
		"vertical-align":             "enum(top,bottom,middle)",
		"text-align":                 "enum(left,right,center)",
		"width":                      "unit(px,%)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "align", Value: "center"},
		{Key: "background-color", Value: "#414141"},
		{Key: "border", Value: "none"},
		{Key: "border-radius", Value: "3px"},
		{Key: "color", Value: "#ffffff"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "font-size", Value: "13px"},
		{Key: "font-weight", Value: "normal"},
		{Key: "inner-padding", Value: "10px 25px"},
		{Key: "line-height", Value: "120%"},
		{Key: "padding", Value: "10px 25px"},
		{Key: "target", Value: "_blank"},
		{Key: "text-decoration", Value: "none"},
		{Key: "text-transform", Value: "none"},
		{Key: "vertical-align", Value: "middle"},
	},
	Create: NewMjButton,
}
View Source
var MjCarouselImageSpec = &core.ComponentSpec{
	TagName:   "mj-carousel-image",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"alt":              "string",
		"href":             "string",
		"rel":              "string",
		"target":           "string",
		"title":            "string",
		"src":              "string",
		"thumbnails-src":   "string",
		"border-radius":    "unit(px,%){1,4}",
		"tb-border":        "string",
		"tb-border-radius": "unit(px,%){1,4}",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "alt", Value: ""},
		{Key: "target", Value: "_blank"},
	},
	Create: NewMjCarouselImage,
}
View Source
var MjCarouselSpec = &core.ComponentSpec{
	TagName: "mj-carousel",
	AllowedAttributes: map[string]string{
		"align":                      "enum(left,center,right)",
		"border-radius":              "unit(px,%){1,4}",
		"container-background-color": "color",
		"icon-width":                 "unit(px,%)",
		"left-icon":                  "string",
		"padding":                    "unit(px,%){1,4}",
		"padding-top":                "unit(px,%)",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"right-icon":                 "string",
		"thumbnails":                 "enum(visible,hidden,supported)",
		"tb-border":                  "string",
		"tb-border-radius":           "unit(px,%)",
		"tb-hover-border-color":      "color",
		"tb-selected-border-color":   "color",
		"tb-width":                   "unit(px,%)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "align", Value: "center"},
		{Key: "border-radius", Value: "6px"},
		{Key: "icon-width", Value: "44px"},
		{Key: "left-icon", Value: "https://i.imgur.com/xTh3hln.png"},
		{Key: "right-icon", Value: "https://i.imgur.com/os7o9kz.png"},
		{Key: "thumbnails", Value: "visible"},
		{Key: "tb-border", Value: "2px solid transparent"},
		{Key: "tb-border-radius", Value: "6px"},
		{Key: "tb-hover-border-color", Value: "#fead0d"},
		{Key: "tb-selected-border-color", Value: "#ccc"},
	},
	Create: NewMjCarousel,
}
View Source
var MjColumnSpec = &core.ComponentSpec{
	TagName: "mj-column",
	AllowedAttributes: map[string]string{
		"background-color":       "color",
		"border":                 "string",
		"border-bottom":          "string",
		"border-left":            "string",
		"border-radius":          "unit(px,%){1,4}",
		"border-right":           "string",
		"border-top":             "string",
		"direction":              "enum(ltr,rtl)",
		"inner-background-color": "color",
		"padding-bottom":         "unit(px,%)",
		"padding-left":           "unit(px,%)",
		"padding-right":          "unit(px,%)",
		"padding-top":            "unit(px,%)",
		"inner-border":           "string",
		"inner-border-bottom":    "string",
		"inner-border-left":      "string",
		"inner-border-radius":    "unit(px,%){1,4}",
		"inner-border-right":     "string",
		"inner-border-top":       "string",
		"padding":                "unit(px,%){1,4}",
		"vertical-align":         "enum(top,bottom,middle)",
		"width":                  "unit(px,%)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "direction", Value: "ltr"},
		{Key: "vertical-align", Value: "top"},
	},
	Create: NewMjColumn,
}
View Source
var MjDividerSpec = &core.ComponentSpec{
	TagName: "mj-divider",
	AllowedAttributes: map[string]string{
		"border-color":               "color",
		"border-style":               "string",
		"border-width":               "unit(px)",
		"container-background-color": "color",
		"padding":                    "unit(px,%){1,4}",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"width":                      "unit(px,%)",
		"align":                      "enum(left,center,right)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "border-color", Value: "#000000"},
		{Key: "border-style", Value: "solid"},
		{Key: "border-width", Value: "4px"},
		{Key: "padding", Value: "10px 25px"},
		{Key: "width", Value: "100%"},
		{Key: "align", Value: "center"},
	},
	Create: NewMjDivider,
}
View Source
var MjFontSpec = &core.ComponentSpec{
	TagName: "mj-font",
	AllowedAttributes: map[string]string{
		"name": "string",
		"href": "string",
	},
	Create: NewMjFont,
}
View Source
var MjGroupSpec = &core.ComponentSpec{
	TagName: "mj-group",
	AllowedAttributes: map[string]string{
		"background-color": "color",
		"direction":        "enum(ltr,rtl)",
		"vertical-align":   "enum(top,bottom,middle)",
		"width":            "unit(px,%)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "direction", Value: "ltr"},
	},
	Create: NewMjGroup,
}
View Source
var MjHeadSpec = &core.ComponentSpec{
	TagName: "mj-head",
	Create:  NewMjHead,
}
View Source
var MjHeroSpec = &core.ComponentSpec{
	TagName: "mj-hero",
	AllowedAttributes: map[string]string{
		"mode":                       "string",
		"height":                     "unit(px,%)",
		"background-url":             "string",
		"background-width":           "unit(px,%)",
		"background-height":          "unit(px,%)",
		"background-position":        "string",
		"border-radius":              "string",
		"container-background-color": "color",
		"inner-background-color":     "color",
		"inner-padding":              "unit(px,%){1,4}",
		"inner-padding-top":          "unit(px,%)",
		"inner-padding-left":         "unit(px,%)",
		"inner-padding-right":        "unit(px,%)",
		"inner-padding-bottom":       "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"background-color":           "color",
		"vertical-align":             "enum(top,bottom,middle)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "mode", Value: "fixed-height"},
		{Key: "height", Value: "0px"},
		{Key: "background-position", Value: "center center"},
		{Key: "padding", Value: "0px"},
		{Key: "background-color", Value: "#ffffff"},
		{Key: "vertical-align", Value: "top"},
	},
	Create: NewMjHero,
}
View Source
var MjHtmlAttributesSpec = &core.ComponentSpec{
	TagName: "mj-html-attributes",
	Create:  NewMjHtmlAttributes,
}
View Source
var MjImageSpec = &core.ComponentSpec{
	TagName: "mj-image",
	AllowedAttributes: map[string]string{
		"alt":                        "string",
		"href":                       "string",
		"name":                       "string",
		"src":                        "string",
		"srcset":                     "string",
		"sizes":                      "string",
		"title":                      "string",
		"rel":                        "string",
		"align":                      "enum(left,center,right)",
		"border":                     "string",
		"border-bottom":              "string",
		"border-left":                "string",
		"border-right":               "string",
		"border-top":                 "string",
		"border-radius":              "unit(px,%){1,4}",
		"container-background-color": "color",
		"fluid-on-mobile":            "boolean",
		"padding":                    "unit(px,%){1,4}",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"target":                     "string",
		"width":                      "unit(px)",
		"height":                     "unit(px,auto)",
		"max-height":                 "unit(px,%)",
		"font-size":                  "unit(px)",
		"usemap":                     "string",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "alt", Value: ""},
		{Key: "align", Value: "center"},
		{Key: "border", Value: "0"},
		{Key: "height", Value: "auto"},
		{Key: "padding", Value: "10px 25px"},
		{Key: "target", Value: "_blank"},
		{Key: "font-size", Value: "13px"},
	},
	Create: NewMjImage,
}
View Source
var MjNavbarLinkSpec = &core.ComponentSpec{
	TagName:   "mj-navbar-link",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"color":           "color",
		"font-family":     "string",
		"font-size":       "unit(px)",
		"font-style":      "string",
		"font-weight":     "string",
		"href":            "string",
		"name":            "string",
		"target":          "string",
		"rel":             "string",
		"letter-spacing":  "unitWithNegative(px,em)",
		"line-height":     "unit(px,%,)",
		"padding-bottom":  "unit(px,%)",
		"padding-left":    "unit(px,%)",
		"padding-right":   "unit(px,%)",
		"padding-top":     "unit(px,%)",
		"padding":         "unit(px,%){1,4}",
		"text-decoration": "string",
		"text-transform":  "string",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "color", Value: "#000000"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "font-size", Value: "13px"},
		{Key: "font-weight", Value: "normal"},
		{Key: "line-height", Value: "22px"},
		{Key: "padding", Value: "15px 10px"},
		{Key: "target", Value: "_blank"},
		{Key: "text-decoration", Value: "none"},
		{Key: "text-transform", Value: "uppercase"},
	},
	Create: NewMjNavbarLink,
}
View Source
var MjNavbarSpec = &core.ComponentSpec{
	TagName: "mj-navbar",
	AllowedAttributes: map[string]string{
		"align":               "enum(left,center,right)",
		"base-url":            "string",
		"hamburger":           "string",
		"ico-align":           "enum(left,center,right)",
		"ico-open":            "string",
		"ico-close":           "string",
		"ico-color":           "color",
		"ico-font-size":       "unit(px,%)",
		"ico-font-family":     "string",
		"ico-text-transform":  "string",
		"ico-padding":         "unit(px,%){1,4}",
		"ico-padding-left":    "unit(px,%)",
		"ico-padding-top":     "unit(px,%)",
		"ico-padding-right":   "unit(px,%)",
		"ico-padding-bottom":  "unit(px,%)",
		"padding":             "unit(px,%){1,4}",
		"padding-left":        "unit(px,%)",
		"padding-top":         "unit(px,%)",
		"padding-right":       "unit(px,%)",
		"padding-bottom":      "unit(px,%)",
		"ico-text-decoration": "string",
		"ico-line-height":     "unit(px,%,)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "align", Value: "center"},
		{Key: "ico-align", Value: "center"},
		{Key: "ico-open", Value: "☰"},
		{Key: "ico-close", Value: "⊗"},
		{Key: "ico-color", Value: "#000000"},
		{Key: "ico-font-size", Value: "30px"},
		{Key: "ico-font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "ico-text-transform", Value: "uppercase"},
		{Key: "ico-padding", Value: "10px"},
		{Key: "ico-text-decoration", Value: "none"},
		{Key: "ico-line-height", Value: "30px"},
	},
	Create: NewMjNavbar,
}
View Source
var MjPreviewSpec = &core.ComponentSpec{
	TagName:   "mj-preview",
	EndingTag: true,
	Create:    NewMjPreview,
}
View Source
var MjRawSpec = &core.ComponentSpec{
	TagName:      "mj-raw",
	EndingTag:    true,
	IsRawElement: true,
	AllowedAttributes: map[string]string{
		"position": "enum(file-start)",
	},
	Create: NewMjRaw,
}
View Source
var MjSectionSpec = &core.ComponentSpec{
	TagName: "mj-section",
	AllowedAttributes: map[string]string{
		"background-color":      "color",
		"background-url":        "string",
		"background-repeat":     "enum(repeat,no-repeat)",
		"background-size":       "string",
		"background-position":   "string",
		"background-position-x": "string",
		"background-position-y": "string",
		"border":                "string",
		"border-bottom":         "string",
		"border-left":           "string",
		"border-radius":         "string",
		"border-right":          "string",
		"border-top":            "string",
		"direction":             "enum(ltr,rtl)",
		"full-width":            "enum(full-width,false,)",
		"padding":               "unit(px,%){1,4}",
		"padding-top":           "unit(px,%)",
		"padding-bottom":        "unit(px,%)",
		"padding-left":          "unit(px,%)",
		"padding-right":         "unit(px,%)",
		"text-align":            "enum(left,center,right)",
		"text-padding":          "unit(px,%){1,4}",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "background-repeat", Value: "repeat"},
		{Key: "background-size", Value: "auto"},
		{Key: "background-position", Value: "top center"},
		{Key: "direction", Value: "ltr"},
		{Key: "padding", Value: "20px 0"},
		{Key: "text-align", Value: "center"},
		{Key: "text-padding", Value: "4px 4px 4px 0"},
	},
	Create: NewMjSection,
}
View Source
var MjSocialElementSpec = &core.ComponentSpec{
	TagName:   "mj-social-element",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"align":            "enum(left,center,right)",
		"icon-position":    "enum(left,right)",
		"background-color": "color",
		"color":            "color",
		"border-radius":    "unit(px)",
		"font-family":      "string",
		"font-size":        "unit(px)",
		"font-style":       "string",
		"font-weight":      "string",
		"href":             "string",
		"icon-size":        "unit(px,%)",
		"icon-height":      "unit(px,%)",
		"icon-padding":     "unit(px,%){1,4}",
		"line-height":      "unit(px,%,)",
		"name":             "string",
		"padding-bottom":   "unit(px,%)",
		"padding-left":     "unit(px,%)",
		"padding-right":    "unit(px,%)",
		"padding-top":      "unit(px,%)",
		"padding":          "unit(px,%){1,4}",
		"text-padding":     "unit(px,%){1,4}",
		"rel":              "string",
		"src":              "string",
		"srcset":           "string",
		"sizes":            "string",
		"alt":              "string",
		"title":            "string",
		"target":           "string",
		"text-decoration":  "string",
		"vertical-align":   "enum(top,middle,bottom)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "alt", Value: ""},
		{Key: "align", Value: "left"},
		{Key: "icon-position", Value: "left"},
		{Key: "color", Value: "#000"},
		{Key: "border-radius", Value: "3px"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "font-size", Value: "13px"},
		{Key: "line-height", Value: "1"},
		{Key: "padding", Value: "4px"},
		{Key: "text-padding", Value: "4px 4px 4px 0"},
		{Key: "target", Value: "_blank"},
		{Key: "text-decoration", Value: "none"},
		{Key: "vertical-align", Value: "middle"},
	},
	Create: NewMjSocialElement,
}
View Source
var MjSocialSpec = &core.ComponentSpec{
	TagName: "mj-social",
	AllowedAttributes: map[string]string{
		"align":                      "enum(left,right,center)",
		"border-radius":              "unit(px,%)",
		"container-background-color": "color",
		"color":                      "color",
		"font-family":                "string",
		"font-size":                  "unit(px)",
		"font-style":                 "string",
		"font-weight":                "string",
		"icon-size":                  "unit(px,%)",
		"icon-height":                "unit(px,%)",
		"icon-padding":               "unit(px,%){1,4}",
		"inner-padding":              "unit(px,%){1,4}",
		"line-height":                "unit(px,%,)",
		"mode":                       "enum(horizontal,vertical)",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
		"table-layout":               "enum(auto,fixed)",
		"text-padding":               "unit(px,%){1,4}",
		"text-decoration":            "string",
		"vertical-align":             "enum(top,bottom,middle)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "align", Value: "center"},
		{Key: "border-radius", Value: "3px"},
		{Key: "color", Value: "#333333"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "font-size", Value: "13px"},
		{Key: "icon-size", Value: "20px"},
		{Key: "line-height", Value: "22px"},
		{Key: "mode", Value: "horizontal"},
		{Key: "padding", Value: "10px 25px"},
		{Key: "text-decoration", Value: "none"},
	},
	Create: NewMjSocial,
}
View Source
var MjSpacerSpec = &core.ComponentSpec{
	TagName: "mj-spacer",
	AllowedAttributes: map[string]string{
		"border":                     "string",
		"border-bottom":              "string",
		"border-left":                "string",
		"border-right":               "string",
		"border-top":                 "string",
		"container-background-color": "color",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
		"height":                     "unit(px,%)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "height", Value: "20px"},
	},
	Create: NewMjSpacer,
}
View Source
var MjStyleSpec = &core.ComponentSpec{
	TagName: "mj-style",
	AllowedAttributes: map[string]string{
		"inline": "string",
	},
	Create: NewMjStyle,
}
View Source
var MjTableSpec = &core.ComponentSpec{
	TagName:   "mj-table",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"align":                      "enum(left,right,center)",
		"border":                     "string",
		"cellpadding":                "integer",
		"cellspacing":                "integer",
		"container-background-color": "color",
		"color":                      "color",
		"font-family":                "string",
		"font-size":                  "unit(px)",
		"font-weight":                "string",
		"line-height":                "unit(px,%,)",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
		"role":                       "enum(none,presentation)",
		"table-layout":               "enum(auto,fixed,initial,inherit)",
		"vertical-align":             "enum(top,bottom,middle)",
		"width":                      "unit(px,%,auto)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "align", Value: "left"},
		{Key: "border", Value: "none"},
		{Key: "cellpadding", Value: "0"},
		{Key: "cellspacing", Value: "0"},
		{Key: "color", Value: "#000000"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "font-size", Value: "13px"},
		{Key: "line-height", Value: "22px"},
		{Key: "padding", Value: "10px 25px"},
		{Key: "table-layout", Value: "auto"},
		{Key: "width", Value: "100%"},
	},
	Create: NewMjTable,
}
View Source
var MjTextSpec = &core.ComponentSpec{
	TagName:   "mj-text",
	EndingTag: true,
	AllowedAttributes: map[string]string{
		"align":                      "enum(left,right,center,justify)",
		"background-color":           "color",
		"color":                      "color",
		"container-background-color": "color",
		"font-family":                "string",
		"font-size":                  "unit(px)",
		"font-style":                 "string",
		"font-weight":                "string",
		"height":                     "unit(px,%)",
		"letter-spacing":             "unitWithNegative(px,em)",
		"line-height":                "unit(px,%,)",
		"padding-bottom":             "unit(px,%)",
		"padding-left":               "unit(px,%)",
		"padding-right":              "unit(px,%)",
		"padding-top":                "unit(px,%)",
		"padding":                    "unit(px,%){1,4}",
		"text-decoration":            "string",
		"text-transform":             "string",
		"vertical-align":             "enum(top,bottom,middle)",
	},
	DefaultAttributes: []*core.Attribute{
		{Key: "align", Value: "left"},
		{Key: "color", Value: "#000000"},
		{Key: "font-family", Value: "Ubuntu, Helvetica, Arial, sans-serif"},
		{Key: "font-size", Value: "13px"},
		{Key: "line-height", Value: "1"},
		{Key: "padding", Value: "10px 25px"},
	},
	Create: NewMjText,
}
View Source
var MjTitleSpec = &core.ComponentSpec{
	TagName:   "mj-title",
	EndingTag: true,
	Create:    NewMjTitle,
}
View Source
var MjWrapperSpec = &core.ComponentSpec{
	TagName:           "mj-wrapper",
	AllowedAttributes: utils.CopyMap(maps.Clone(MjSectionSpec.AllowedAttributes), map[string]string{"gap": "unit(px)"}),
	DefaultAttributes: MjSectionSpec.DefaultAttributes,
	Create:            NewMjWrapper,
}

Functions

func FormatCssStyles

func FormatCssStyles(w io.StringWriter, stylesObject []*core.Style) error

func NewMjAccordion

func NewMjAccordion(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjAccordionElement

func NewMjAccordionElement(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjAccordionText

func NewMjAccordionText(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjAccordionTitle

func NewMjAccordionTitle(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjAttributes

func NewMjAttributes(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjBody

func NewMjBody(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjBreakpoint

func NewMjBreakpoint(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjButton

func NewMjButton(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjCarousel

func NewMjCarousel(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjCarouselImage

func NewMjCarouselImage(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjColumn

func NewMjColumn(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjDivider

func NewMjDivider(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjFont

func NewMjFont(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjGroup

func NewMjGroup(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjHead

func NewMjHead(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjHero

func NewMjHero(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjHtmlAttributes

func NewMjHtmlAttributes(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjImage

func NewMjImage(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjNavbar

func NewMjNavbar(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)
func NewMjNavbarLink(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjPreview

func NewMjPreview(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjRaw

func NewMjRaw(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjSection

func NewMjSection(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjSocial

func NewMjSocial(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjSocialElement

func NewMjSocialElement(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjSpacer

func NewMjSpacer(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjStyle

func NewMjStyle(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjTable

func NewMjTable(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjText

func NewMjText(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjTitle

func NewMjTitle(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

func NewMjWrapper

func NewMjWrapper(node *parser.MJMLNode, spec *core.ComponentSpec, props *core.ComponentProps, context *core.MJMLContext) (core.Component, error)

Types

type AttributesBuilder

type AttributesBuilder struct {
	// contains filtered or unexported fields
}

func NewAttributesBuilder

func NewAttributesBuilder(component core.Component) *AttributesBuilder

func (*AttributesBuilder) Add

func (b *AttributesBuilder) Add(name string, value string) *AttributesBuilder

func (*AttributesBuilder) AddIf

func (b *AttributesBuilder) AddIf(name string, value string, condition bool) *AttributesBuilder

func (*AttributesBuilder) AddNullable

func (b *AttributesBuilder) AddNullable(name string, value *string) *AttributesBuilder

func (*AttributesBuilder) Write

func (b *AttributesBuilder) Write(w io.StringWriter) error

type MjAccordion

type MjAccordion struct {
	*core.BodyComponent
}

func (*MjAccordion) GetChildContext

func (a *MjAccordion) GetChildContext() *core.MJMLContext

func (*MjAccordion) GetStyles

func (a *MjAccordion) GetStyles(element string) []*core.Style

func (*MjAccordion) GetTagName

func (a *MjAccordion) GetTagName() string

func (*MjAccordion) HeadStyle

func (a *MjAccordion) HeadStyle(breakpoint string) string

func (*MjAccordion) Render

func (a *MjAccordion) Render(w core.MJMLWriter) error

type MjAccordionElement

type MjAccordionElement struct {
	*core.BodyComponent
}

func (*MjAccordionElement) GetChildContext

func (e *MjAccordionElement) GetChildContext() *core.MJMLContext

func (*MjAccordionElement) GetStyles

func (e *MjAccordionElement) GetStyles(element string) []*core.Style

func (*MjAccordionElement) GetTagName

func (e *MjAccordionElement) GetTagName() string

func (*MjAccordionElement) Render

func (e *MjAccordionElement) Render(w core.MJMLWriter) error

type MjAccordionText

type MjAccordionText struct {
	*core.BodyComponent
}

func (*MjAccordionText) GetChildContext

func (t *MjAccordionText) GetChildContext() *core.MJMLContext

func (*MjAccordionText) GetStyles

func (t *MjAccordionText) GetStyles(element string) []*core.Style

func (*MjAccordionText) GetTagName

func (t *MjAccordionText) GetTagName() string

func (*MjAccordionText) Render

func (t *MjAccordionText) Render(w core.MJMLWriter) error

type MjAccordionTitle

type MjAccordionTitle struct {
	*core.BodyComponent
}

func (*MjAccordionTitle) GetChildContext

func (t *MjAccordionTitle) GetChildContext() *core.MJMLContext

func (*MjAccordionTitle) GetStyles

func (t *MjAccordionTitle) GetStyles(element string) []*core.Style

func (*MjAccordionTitle) GetTagName

func (t *MjAccordionTitle) GetTagName() string

func (*MjAccordionTitle) Render

func (t *MjAccordionTitle) Render(w core.MJMLWriter) error

type MjAttributes

type MjAttributes struct {
	*core.HeadComponent
}

func (*MjAttributes) GetChildContext

func (a *MjAttributes) GetChildContext() *core.MJMLContext

func (*MjAttributes) GetStyles

func (a *MjAttributes) GetStyles(element string) []*core.Style

func (*MjAttributes) GetTagName

func (a *MjAttributes) GetTagName() string

func (*MjAttributes) Render

func (a *MjAttributes) Render(w core.MJMLWriter) error

type MjBody

type MjBody struct {
	*core.BodyComponent
}

func (*MjBody) GetChildContext

func (b *MjBody) GetChildContext() *core.MJMLContext

func (*MjBody) GetStyles

func (b *MjBody) GetStyles(element string) []*core.Style

func (*MjBody) GetTagName

func (b *MjBody) GetTagName() string

func (*MjBody) Render

func (b *MjBody) Render(w core.MJMLWriter) error

type MjBreakpoint

type MjBreakpoint struct {
	*core.HeadComponent
}

func (*MjBreakpoint) GetChildContext

func (b *MjBreakpoint) GetChildContext() *core.MJMLContext

func (*MjBreakpoint) GetStyles

func (b *MjBreakpoint) GetStyles(element string) []*core.Style

func (*MjBreakpoint) GetTagName

func (b *MjBreakpoint) GetTagName() string

func (*MjBreakpoint) Render

func (b *MjBreakpoint) Render(w core.MJMLWriter) error

type MjButton

type MjButton struct {
	*core.BodyComponent
}

func (*MjButton) GetChildContext

func (b *MjButton) GetChildContext() *core.MJMLContext

func (*MjButton) GetStyles

func (b *MjButton) GetStyles(element string) []*core.Style

func (*MjButton) GetTagName

func (b *MjButton) GetTagName() string

func (*MjButton) Render

func (b *MjButton) Render(w core.MJMLWriter) error

type MjCarousel

type MjCarousel struct {
	*core.BodyComponent
	// contains filtered or unexported fields
}

func (*MjCarousel) ComponentHeadStyle

func (c *MjCarousel) ComponentHeadStyle(breakpoint string) string

func (*MjCarousel) GetChildContext

func (c *MjCarousel) GetChildContext() *core.MJMLContext

func (*MjCarousel) GetStyles

func (c *MjCarousel) GetStyles(element string) []*core.Style

func (*MjCarousel) GetTagName

func (c *MjCarousel) GetTagName() string

func (*MjCarousel) Render

func (c *MjCarousel) Render(w core.MJMLWriter) error

type MjCarouselImage

type MjCarouselImage struct {
	*core.BodyComponent
}

func (*MjCarouselImage) GetChildContext

func (m *MjCarouselImage) GetChildContext() *core.MJMLContext

func (*MjCarouselImage) GetStyles

func (m *MjCarouselImage) GetStyles(element string) []*core.Style

func (*MjCarouselImage) GetTagName

func (m *MjCarouselImage) GetTagName() string

func (*MjCarouselImage) Render

func (m *MjCarouselImage) Render(w core.MJMLWriter) error

type MjColumn

type MjColumn struct {
	*core.BodyComponent
}

func (*MjColumn) GetChildContext

func (c *MjColumn) GetChildContext() *core.MJMLContext

func (*MjColumn) GetStyles

func (c *MjColumn) GetStyles(element string) []*core.Style

func (*MjColumn) GetTagName

func (c *MjColumn) GetTagName() string

func (*MjColumn) GetWidthAsPixel

func (c *MjColumn) GetWidthAsPixel() string

func (*MjColumn) Render

func (c *MjColumn) Render(w core.MJMLWriter) error

type MjDivider

type MjDivider struct {
	*core.BodyComponent
}

func (*MjDivider) GetChildContext

func (d *MjDivider) GetChildContext() *core.MJMLContext

func (*MjDivider) GetStyles

func (d *MjDivider) GetStyles(element string) []*core.Style

func (*MjDivider) GetTagName

func (d *MjDivider) GetTagName() string

func (*MjDivider) Render

func (d *MjDivider) Render(w core.MJMLWriter) error

type MjFont

type MjFont struct {
	*core.HeadComponent
}

func (*MjFont) GetChildContext

func (f *MjFont) GetChildContext() *core.MJMLContext

func (*MjFont) GetStyles

func (f *MjFont) GetStyles(element string) []*core.Style

func (*MjFont) GetTagName

func (f *MjFont) GetTagName() string

func (*MjFont) Render

func (f *MjFont) Render(w core.MJMLWriter) error

type MjGroup

type MjGroup struct {
	*core.BodyComponent
}

func (*MjGroup) GetChildContext

func (g *MjGroup) GetChildContext() *core.MJMLContext

func (*MjGroup) GetStyles

func (g *MjGroup) GetStyles(element string) []*core.Style

func (*MjGroup) GetTagName

func (g *MjGroup) GetTagName() string

func (*MjGroup) GetWidthAsPixel

func (g *MjGroup) GetWidthAsPixel() string

func (*MjGroup) Render

func (g *MjGroup) Render(w core.MJMLWriter) error

type MjHead

type MjHead struct {
	*core.HeadComponent
}

func (*MjHead) GetChildContext

func (h *MjHead) GetChildContext() *core.MJMLContext

func (*MjHead) GetStyles

func (h *MjHead) GetStyles(element string) []*core.Style

func (*MjHead) GetTagName

func (h *MjHead) GetTagName() string

func (*MjHead) Render

func (h *MjHead) Render(w core.MJMLWriter) error

type MjHero

type MjHero struct {
	*core.BodyComponent
}

func (*MjHero) GetChildContext

func (h *MjHero) GetChildContext() *core.MJMLContext

func (*MjHero) GetStyles

func (h *MjHero) GetStyles(element string) []*core.Style

func (*MjHero) GetTagName

func (h *MjHero) GetTagName() string

func (*MjHero) Render

func (h *MjHero) Render(w core.MJMLWriter) error

type MjHtmlAttributes

type MjHtmlAttributes struct {
	*core.HeadComponent
}

func (*MjHtmlAttributes) GetChildContext

func (h *MjHtmlAttributes) GetChildContext() *core.MJMLContext

func (*MjHtmlAttributes) GetStyles

func (h *MjHtmlAttributes) GetStyles(element string) []*core.Style

func (*MjHtmlAttributes) GetTagName

func (h *MjHtmlAttributes) GetTagName() string

func (*MjHtmlAttributes) Render

func (h *MjHtmlAttributes) Render(w core.MJMLWriter) error

type MjImage

type MjImage struct {
	*core.BodyComponent
}

func (*MjImage) GetChildContext

func (m *MjImage) GetChildContext() *core.MJMLContext

func (*MjImage) GetStyles

func (m *MjImage) GetStyles(element string) []*core.Style

func (*MjImage) GetTagName

func (m *MjImage) GetTagName() string

func (*MjImage) HeadStyle

func (m *MjImage) HeadStyle(breakpoint string) string

func (*MjImage) Render

func (m *MjImage) Render(w core.MJMLWriter) error

type MjNavbar

type MjNavbar struct {
	*core.BodyComponent
}

func (*MjNavbar) GetChildContext

func (n *MjNavbar) GetChildContext() *core.MJMLContext

func (*MjNavbar) GetStyles

func (n *MjNavbar) GetStyles(element string) []*core.Style

func (*MjNavbar) GetTagName

func (n *MjNavbar) GetTagName() string

func (*MjNavbar) HeadStyle

func (n *MjNavbar) HeadStyle(breakpoint string) string

func (*MjNavbar) Render

func (n *MjNavbar) Render(w core.MJMLWriter) error
type MjNavbarLink struct {
	*core.BodyComponent
}

func (*MjNavbarLink) GetChildContext

func (l *MjNavbarLink) GetChildContext() *core.MJMLContext

func (*MjNavbarLink) GetStyles

func (l *MjNavbarLink) GetStyles(element string) []*core.Style

func (*MjNavbarLink) GetTagName

func (l *MjNavbarLink) GetTagName() string

func (*MjNavbarLink) Render

func (l *MjNavbarLink) Render(w core.MJMLWriter) error

type MjPreview

type MjPreview struct {
	*core.HeadComponent
}

func (*MjPreview) GetChildContext

func (p *MjPreview) GetChildContext() *core.MJMLContext

func (*MjPreview) GetStyles

func (p *MjPreview) GetStyles(element string) []*core.Style

func (*MjPreview) GetTagName

func (p *MjPreview) GetTagName() string

func (*MjPreview) Render

func (p *MjPreview) Render(w core.MJMLWriter) error

type MjRaw

type MjRaw struct {
	*core.BodyComponent
}

func (*MjRaw) GetChildContext

func (r *MjRaw) GetChildContext() *core.MJMLContext

func (*MjRaw) GetStyles

func (r *MjRaw) GetStyles(element string) []*core.Style

func (*MjRaw) GetTagName

func (r *MjRaw) GetTagName() string

func (*MjRaw) Render

func (r *MjRaw) Render(w core.MJMLWriter) error

type MjSection

type MjSection struct {
	*core.BodyComponent
	// contains filtered or unexported fields
}

func (*MjSection) GetChildContext

func (s *MjSection) GetChildContext() *core.MJMLContext

func (*MjSection) GetStyles

func (s *MjSection) GetStyles(element string) []*core.Style

func (*MjSection) GetTagName

func (s *MjSection) GetTagName() string

func (*MjSection) Render

func (s *MjSection) Render(w core.MJMLWriter) error

type MjSocial

type MjSocial struct {
	*core.BodyComponent
}

func (*MjSocial) GetChildContext

func (s *MjSocial) GetChildContext() *core.MJMLContext

func (*MjSocial) GetStyles

func (s *MjSocial) GetStyles(element string) []*core.Style

func (*MjSocial) GetTagName

func (s *MjSocial) GetTagName() string

func (*MjSocial) Render

func (s *MjSocial) Render(w core.MJMLWriter) error

type MjSocialElement

type MjSocialElement struct {
	*core.BodyComponent
}

func (*MjSocialElement) GetChildContext

func (e *MjSocialElement) GetChildContext() *core.MJMLContext

func (*MjSocialElement) GetStyles

func (e *MjSocialElement) GetStyles(element string) []*core.Style

func (*MjSocialElement) GetTagName

func (e *MjSocialElement) GetTagName() string

func (*MjSocialElement) Render

func (e *MjSocialElement) Render(w core.MJMLWriter) error

type MjSpacer

type MjSpacer struct {
	*core.BodyComponent
}

func (*MjSpacer) GetChildContext

func (s *MjSpacer) GetChildContext() *core.MJMLContext

func (*MjSpacer) GetStyles

func (s *MjSpacer) GetStyles(element string) []*core.Style

func (*MjSpacer) GetTagName

func (s *MjSpacer) GetTagName() string

func (*MjSpacer) Render

func (s *MjSpacer) Render(w core.MJMLWriter) error

type MjStyle

type MjStyle struct {
	*core.HeadComponent
}

func (*MjStyle) GetChildContext

func (s *MjStyle) GetChildContext() *core.MJMLContext

func (*MjStyle) GetStyles

func (s *MjStyle) GetStyles(element string) []*core.Style

func (*MjStyle) GetTagName

func (s *MjStyle) GetTagName() string

func (*MjStyle) Render

func (s *MjStyle) Render(w core.MJMLWriter) error

type MjTable

type MjTable struct {
	*core.BodyComponent
}

func (*MjTable) GetChildContext

func (t *MjTable) GetChildContext() *core.MJMLContext

func (*MjTable) GetStyles

func (t *MjTable) GetStyles(element string) []*core.Style

func (*MjTable) GetTagName

func (t *MjTable) GetTagName() string

func (*MjTable) Render

func (t *MjTable) Render(w core.MJMLWriter) error

type MjText

type MjText struct {
	*core.BodyComponent
}

func (*MjText) GetChildContext

func (t *MjText) GetChildContext() *core.MJMLContext

func (*MjText) GetStyles

func (t *MjText) GetStyles(element string) []*core.Style

func (*MjText) GetTagName

func (t *MjText) GetTagName() string

func (*MjText) Render

func (t *MjText) Render(w core.MJMLWriter) error

type MjTitle

type MjTitle struct {
	*core.HeadComponent
}

func (*MjTitle) GetChildContext

func (b *MjTitle) GetChildContext() *core.MJMLContext

func (*MjTitle) GetStyles

func (b *MjTitle) GetStyles(element string) []*core.Style

func (*MjTitle) GetTagName

func (b *MjTitle) GetTagName() string

func (*MjTitle) Render

func (b *MjTitle) Render(w core.MJMLWriter) error

type SocialNetwork

type SocialNetwork struct {
	Src             string
	BackgroundColor string
	ShareUrl        string
}

Jump to

Keyboard shortcuts

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