Documentation ΒΆ
Index ΒΆ
- Variables
- func DefaultBool(k string, v bool) string
- func DefaultMapKey(key string, v string) string
- func DefaultNull(k string) string
- func DefaultNumber(k string, v float64, s string) string
- func DefaultString(k string, v string) string
- type DefaultRow
- type JSONPathCollector
- func (c *JSONPathCollector) Bool(k string, v bool) string
- func (c *JSONPathCollector) MapKey(k string, v string) string
- func (c *JSONPathCollector) Null(k string) string
- func (c *JSONPathCollector) Number(k string, v float64, s string) string
- func (c *JSONPathCollector) String(k string, v string) string
- type Marshaler
- type PageMarshaler
Constants ΒΆ
This section is empty.
Variables ΒΆ
var ( DefaultArrayDash = `<div class="yaml-lang">- </div>` DefaultArrayEmpty = `<div class="yaml-lang"> []</div>` DefaultMapColon = `<div class="yaml-lang">: </div>` DefaultMapEmpty = `<div class="yaml-lang"> {}</div>` DefaultPaddingSpace = `<span class="yaml-padding-space"> </span>` )
var DefaultMarshaler = Marshaler{ Null: DefaultNull, Bool: DefaultBool, String: DefaultString, Number: DefaultNumber, MapKey: DefaultMapKey, ArrayDash: DefaultArrayDash, ArrayEmpty: DefaultArrayEmpty, MapColon: DefaultMapColon, MapEmpty: DefaultMapEmpty, Row: DefaultRow{Padding: 2, Space: DefaultPaddingSpace}.Marshal, }
DefaultMarshaler adds basic HTML div classes for further styling.
var DefaultPageMarshaler = PageMarshaler{ Title: "htmlyaml", Template: defaultPageTemplate, TemplateTitleKey: `{{.Title}}`, TemplateYAMLKey: `{{.HTMLYAML}}`, Marshaler: &DefaultMarshaler, }
Functions ΒΆ
func DefaultBool ΒΆ
func DefaultMapKey ΒΆ
func DefaultNull ΒΆ
func DefaultString ΒΆ
Types ΒΆ
type DefaultRow ΒΆ
type JSONPathCollector ΒΆ
JSONPathCollector provides HTML renderers as its methods and collects which JSON path keys have been passed to it and which values. This is useful for testing.
func NewJSONPathCollector ΒΆ
func NewJSONPathCollector() *JSONPathCollector
func (*JSONPathCollector) Null ΒΆ
func (c *JSONPathCollector) Null(k string) string
type Marshaler ΒΆ
type Marshaler struct { Null func(key string) string Bool func(key string, v bool) string String func(key string, v string) string Number func(key string, v float64, s string) string ArrayDash string ArrayEmpty string MapColon string MapEmpty string MapKey func(key string, v string) string Row func(s string, padding int) string // contains filtered or unexported fields }
Marshaler converts YAML stored as Go `any` object represented into HTML. Rendering is customized by providing renderers for specific YAML elements. This facilitates CSS styling, CSS animations, and JavaScript events. YAML element renderers receive JSON Path and value of element. Should be used only for types: bool, float64, string, []any, map[string]any, nil. You can get allowed input easily with yaml.Unmarshal or json.Unmarshal to any. Since HTML automatically removes whitespace, to make indentation YAML conformant, spaces are wrapped in their own div element. Safe for repeated use. Not safe for concurrent use.
type PageMarshaler ΒΆ
type PageMarshaler struct { Title string Template []byte TemplateTitleKey string TemplateYAMLKey string Marshaler interface { MarshalTo(w io.Writer, v any) error } // contains filtered or unexported fields }
PageMarshaler encodes YAML via marshaller into HTML page by placing Title and content appropriately.
func (*PageMarshaler) Marshal ΒΆ
func (m *PageMarshaler) Marshal(v any) []byte