|
- // Copyright 2020 The Gitea Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package markdown
-
- import (
- "strconv"
-
- "github.com/yuin/goldmark/ast"
- )
-
- // Details is a block that contains Summary and details
- type Details struct {
- ast.BaseBlock
- }
-
- // Dump implements Node.Dump .
- func (n *Details) Dump(source []byte, level int) {
- ast.DumpHelper(n, source, level, nil, nil)
- }
-
- // KindDetails is the NodeKind for Details
- var KindDetails = ast.NewNodeKind("Details")
-
- // Kind implements Node.Kind.
- func (n *Details) Kind() ast.NodeKind {
- return KindDetails
- }
-
- // NewDetails returns a new Paragraph node.
- func NewDetails() *Details {
- return &Details{
- BaseBlock: ast.BaseBlock{},
- }
- }
-
- // IsDetails returns true if the given node implements the Details interface,
- // otherwise false.
- func IsDetails(node ast.Node) bool {
- _, ok := node.(*Details)
- return ok
- }
-
- // Summary is a block that contains the summary of details block
- type Summary struct {
- ast.BaseBlock
- }
-
- // Dump implements Node.Dump .
- func (n *Summary) Dump(source []byte, level int) {
- ast.DumpHelper(n, source, level, nil, nil)
- }
-
- // KindSummary is the NodeKind for Summary
- var KindSummary = ast.NewNodeKind("Summary")
-
- // Kind implements Node.Kind.
- func (n *Summary) Kind() ast.NodeKind {
- return KindSummary
- }
-
- // NewSummary returns a new Summary node.
- func NewSummary() *Summary {
- return &Summary{
- BaseBlock: ast.BaseBlock{},
- }
- }
-
- // IsSummary returns true if the given node implements the Summary interface,
- // otherwise false.
- func IsSummary(node ast.Node) bool {
- _, ok := node.(*Summary)
- return ok
- }
-
- // TaskCheckBoxListItem is a block that repressents a list item of a markdown block with a checkbox
- type TaskCheckBoxListItem struct {
- *ast.ListItem
- IsChecked bool
- }
-
- // KindTaskCheckBoxListItem is the NodeKind for TaskCheckBoxListItem
- var KindTaskCheckBoxListItem = ast.NewNodeKind("TaskCheckBoxListItem")
-
- // Dump implements Node.Dump .
- func (n *TaskCheckBoxListItem) Dump(source []byte, level int) {
- m := map[string]string{}
- m["IsChecked"] = strconv.FormatBool(n.IsChecked)
- ast.DumpHelper(n, source, level, m, nil)
- }
-
- // Kind implements Node.Kind.
- func (n *TaskCheckBoxListItem) Kind() ast.NodeKind {
- return KindTaskCheckBoxListItem
- }
-
- // NewTaskCheckBoxListItem returns a new TaskCheckBoxListItem node.
- func NewTaskCheckBoxListItem(listItem *ast.ListItem) *TaskCheckBoxListItem {
- return &TaskCheckBoxListItem{
- ListItem: listItem,
- }
- }
-
- // IsTaskCheckBoxListItem returns true if the given node implements the TaskCheckBoxListItem interface,
- // otherwise false.
- func IsTaskCheckBoxListItem(node ast.Node) bool {
- _, ok := node.(*TaskCheckBoxListItem)
- return ok
- }
-
- // Icon is an inline for a fomantic icon
- type Icon struct {
- ast.BaseInline
- Name []byte
- }
-
- // Dump implements Node.Dump .
- func (n *Icon) Dump(source []byte, level int) {
- m := map[string]string{}
- m["Name"] = string(n.Name)
- ast.DumpHelper(n, source, level, m, nil)
- }
-
- // KindIcon is the NodeKind for Icon
- var KindIcon = ast.NewNodeKind("Icon")
-
- // Kind implements Node.Kind.
- func (n *Icon) Kind() ast.NodeKind {
- return KindIcon
- }
-
- // NewIcon returns a new Paragraph node.
- func NewIcon(name string) *Icon {
- return &Icon{
- BaseInline: ast.BaseInline{},
- Name: []byte(name),
- }
- }
-
- // IsIcon returns true if the given node implements the Icon interface,
- // otherwise false.
- func IsIcon(node ast.Node) bool {
- _, ok := node.(*Icon)
- return ok
- }
|