emoji.go

 1// Package ast defines AST nodes that represetns emoji extension's elements.
 2package ast
 3
 4import (
 5	"fmt"
 6
 7	"github.com/yuin/goldmark-emoji/definition"
 8	gast "github.com/yuin/goldmark/ast"
 9)
10
11// Emoji represents an inline emoji.
12type Emoji struct {
13	gast.BaseInline
14
15	ShortName []byte
16	Value     *definition.Emoji
17}
18
19// Dump implements Node.Dump.
20func (n *Emoji) Dump(source []byte, level int) {
21	m := map[string]string{
22		"ShortName": string(n.ShortName),
23		"Value":     fmt.Sprintf("%#v", n.Value),
24	}
25	gast.DumpHelper(n, source, level, m, nil)
26}
27
28// KindEmoji is a NodeKind of the emoji node.
29var KindEmoji = gast.NewNodeKind("Emoji")
30
31// Kind implements Node.Kind.
32func (n *Emoji) Kind() gast.NodeKind {
33	return KindEmoji
34}
35
36// NewEmoji returns a new Emoji node.
37func NewEmoji(shortName []byte, value *definition.Emoji) *Emoji {
38	return &Emoji{
39		ShortName: shortName,
40		Value:     value,
41	}
42}