htmlstyle

package
v0.0.0-...-3435f2a Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplySettings

func ApplySettings(settings frontend.TypesettingSettings, ih *FormattingStyles)

ApplySettings converts the inheritable settings to boxes and glue text settings.

func DumpElement

func DumpElement(thisNode *html.Node, direction Mode, firstItem *HTMLItem) error

DumpElement fills the firstItem with the contents of thisNode. Comments and DocumentNodes are ignored.

func HTMLNodeToText

func HTMLNodeToText(n *html.Node, ss StylesStack, df *frontend.Document) (*frontend.Text, error)

HTMLNodeToText converts an HTML node to a *frontend.Text element.

func Output

func Output(item *HTMLItem, ss StylesStack, df *frontend.Document) (*frontend.Text, error)

Output turns HTML structure into a nested frontend.Text element.

func ParseHorizontalAlign

func ParseHorizontalAlign(align string, styles *FormattingStyles) frontend.HorizontalAlignment

ParseHorizontalAlign parses the input ("left","center") and returns the HorizontalAlignment value.

func ParseRelativeSize

func ParseRelativeSize(fs string, cur bag.ScaledPoint, root bag.ScaledPoint) bag.ScaledPoint

ParseRelativeSize converts the string fs to a scaled point. This can be an absolute size like 12pt but also a size like 1.2 or 2em. The provided dflt is the source size. The root is the document's default value.

func ParseVerticalAlign

func ParseVerticalAlign(align string, styles *FormattingStyles) frontend.VerticalAlignment

ParseVerticalAlign parses the input ("top","middle",...) and returns the VerticalAlignment value.

func StylesToStyles

func StylesToStyles(ih *FormattingStyles, attributes map[string]string, df *frontend.Document, curFontSize bag.ScaledPoint) error

StylesToStyles updates the inheritable formattingStyles from the attributes (of the current HTML element).

Types

type FormattingStyles

type FormattingStyles struct {
	BackgroundColor         *color.Color
	BorderLeftWidth         bag.ScaledPoint
	BorderRightWidth        bag.ScaledPoint
	BorderBottomWidth       bag.ScaledPoint
	BorderTopWidth          bag.ScaledPoint
	BorderTopLeftRadius     bag.ScaledPoint
	BorderTopRightRadius    bag.ScaledPoint
	BorderBottomLeftRadius  bag.ScaledPoint
	BorderBottomRightRadius bag.ScaledPoint
	BorderLeftColor         *color.Color
	BorderRightColor        *color.Color
	BorderBottomColor       *color.Color
	BorderTopColor          *color.Color
	BorderLeftStyle         frontend.BorderStyle
	BorderRightStyle        frontend.BorderStyle
	BorderBottomStyle       frontend.BorderStyle
	BorderTopStyle          frontend.BorderStyle
	DefaultFontSize         bag.ScaledPoint
	DefaultFontFamily       *frontend.FontFamily

	Hide bool

	Fontsize bag.ScaledPoint

	Fontweight frontend.FontWeight

	Halign frontend.HorizontalAlignment

	ListStyleType string

	OlCounter          int
	PaddingBottom      bag.ScaledPoint
	PaddingLeft        bag.ScaledPoint
	PaddingRight       bag.ScaledPoint
	PaddingTop         bag.ScaledPoint
	TextDecorationLine frontend.TextDecorationLine

	Valign frontend.VerticalAlignment
	// contains filtered or unexported fields
}

FormattingStyles are HTML formatting styles.

func (*FormattingStyles) Clone

func (is *FormattingStyles) Clone() *FormattingStyles

Clone mimics style inheritance.

type HTMLItem

type HTMLItem struct {
	Typ        html.NodeType
	Data       string
	Dir        Mode
	Attributes map[string]string
	Styles     map[string]string
	Children   []*HTMLItem
}

HTMLItem is a struct which represents a HTML element or a text node.

func (*HTMLItem) String

func (itm *HTMLItem) String() string

type Mode

type Mode int

Mode is the progression direction of the current HTML element.

const (
	// ModeHorizontal represents inline progression direction.
	ModeHorizontal Mode = iota
	// ModeVertical represents block progression direction.
	ModeVertical
)

func (Mode) String

func (m Mode) String() string

type StylesStack

type StylesStack []*FormattingStyles

StylesStack mimics CSS style inheritance.

func (StylesStack) CurrentStyle

func (ss StylesStack) CurrentStyle() *FormattingStyles

CurrentStyle returns the current style from the stack. CurrentStyle does not change the stack.

func (*StylesStack) PopStyles

func (ss *StylesStack) PopStyles()

PopStyles removes the top style from the stack.

func (*StylesStack) PushStyles

func (ss *StylesStack) PushStyles() *FormattingStyles

PushStyles creates a new style instance, pushes it onto the stack and returns the new style.

func (*StylesStack) SetDefaultFontFamily

func (ss *StylesStack) SetDefaultFontFamily(ff *frontend.FontFamily)

SetDefaultFontFamily sets the font family that should be used as a default for the document.

func (*StylesStack) SetDefaultFontSize

func (ss *StylesStack) SetDefaultFontSize(size bag.ScaledPoint)

SetDefaultFontSize sets the document font size which should be used for rem calculation.

Jump to

Keyboard shortcuts

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