Documentation
¶
Index ¶
- Constants
- Variables
- func NewAlertHTMLRenderer(opts ...html.Option) renderer.NodeRenderer
- func NewAlertHeaderHTMLRenderer(opts ...html.Option) renderer.NodeRenderer
- func NewAlertHeaderParser() parser.BlockParser
- func NewAlertParser() parser.BlockParser
- func NewGnoParserContext(url *weburl.GnoURL) parser.Context
- func ParseHTMLTokens(r io.Reader) ([]html.Token, error)
- type Alert
- type AlertHTMLRenderer
- type AlertHeader
- type AlertHeaderHTMLRenderer
- type AlertType
- type GenFunc
- type GnoColumnNode
- type GnoColumnTag
- type GnoExtension
- type GnoLink
- type GnoLinkType
- type GoldenTests
- type ImageValidatorFunc
- type Option
- type Toc
- type TocItem
- type TocOptions
Constants ¶
const MaxDepth = 6
Variables ¶
var ( KindGnoColumn = ast.NewNodeKind("GnoColumn") GnoColumnsShorthand = []byte("|||") // shorthand for column separator )
var ErrLinkInvalidURL = errors.New("invalid URL format")
Error messages for invalid link formats
var ExtAlerts = &alertExtension{}
ExtAlerts is the global instance of the alert extension
var ExtColumns = &columns{}
ExtColumns instance for extending markdown with column functionality.
var ExtImageValidator = &imgValidatorExtension{}
ExtImageValidator is a Goldmark extension that pre validation on image URLs.
var ExtLinks = &linkExtension{}
ExtLinks instance for extending markdown with link functionality
var KindAlert = ast.NewNodeKind("Alert")
KindAlert is the node kind identifier for Alert nodes
var KindAlertHeader = ast.NewNodeKind("AlertHeader")
KindAlertHeader is the node kind identifier for AlertHeader nodes
var KindGnoLink = ast.NewNodeKind("GnoLink")
Functions ¶
func NewAlertHTMLRenderer ¶
func NewAlertHTMLRenderer(opts ...html.Option) renderer.NodeRenderer
NewAlertHTMLRenderer creates a new alert HTML renderer
func NewAlertHeaderHTMLRenderer ¶
func NewAlertHeaderHTMLRenderer(opts ...html.Option) renderer.NodeRenderer
NewAlertHeaderHTMLRenderer creates a new alert header HTML renderer
func NewAlertHeaderParser ¶
func NewAlertHeaderParser() parser.BlockParser
NewAlertHeaderParser creates a new alert header parser
func NewAlertParser ¶
func NewAlertParser() parser.BlockParser
NewAlertParser creates a new alert parser
func NewGnoParserContext ¶
NewGnoParserContext creates a new parser context with GnoURL
Types ¶
type Alert ¶
Alert represents a block-level alert element in markdown It can contain a header and content, and supports different alert types
type AlertHTMLRenderer ¶
AlertHTMLRenderer implements the HTML renderer for Alert nodes
func (*AlertHTMLRenderer) RegisterFuncs ¶
func (r *AlertHTMLRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)
RegisterFuncs registers the render functions
type AlertHeader ¶
AlertHeader represents the header part of an alert It contains the alert type and title
func NewAlertHeader ¶
func NewAlertHeader() *AlertHeader
NewAlertHeader creates a new AlertHeader node
func (*AlertHeader) Dump ¶
func (n *AlertHeader) Dump(source []byte, level int)
Dump prints the AST structure for debugging purposes
func (*AlertHeader) Kind ¶
func (n *AlertHeader) Kind() ast.NodeKind
Kind returns the node kind identifier
type AlertHeaderHTMLRenderer ¶
AlertHeaderHTMLRenderer implements the HTML renderer for AlertHeader nodes
func (*AlertHeaderHTMLRenderer) RegisterFuncs ¶
func (r *AlertHeaderHTMLRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)
RegisterFuncs registers the render functions
type GnoColumnNode ¶
type GnoColumnNode struct { ast.BaseBlock Index int // Index of the column associated with the node. Tag GnoColumnTag // Current Column Tag for this node. // contains filtered or unexported fields }
GnoColumnNode represents a semantic tree for a "column".
func NewColumn ¶
func NewColumn(ctx *columnsContext, tag GnoColumnTag) *GnoColumnNode
NewColumn initializes a ColumnNode object.
func UndefinedGnoColumnNode ¶
func UndefinedGnoColumnNode() *GnoColumnNode
func (*GnoColumnNode) Dump ¶
func (n *GnoColumnNode) Dump(source []byte, level int)
Dump implements Node.Dump for debug representation.
func (*GnoColumnNode) IsEmptyColumns ¶
func (n *GnoColumnNode) IsEmptyColumns() bool
func (*GnoColumnNode) String ¶
func (n *GnoColumnNode) String() string
type GnoColumnTag ¶
type GnoColumnTag int
GnoColumnTag represents the type of tag in a column block.
const ( GnoColumnTagUndefined GnoColumnTag = iota GnoColumnTagOpen GnoColumnTagClose GnoColumnTagSep )
type GnoExtension ¶
type GnoExtension struct {
// contains filtered or unexported fields
}
func NewGnoExtension ¶
func NewGnoExtension(opts ...Option) *GnoExtension
func (*GnoExtension) Extend ¶
func (e *GnoExtension) Extend(m goldmark.Markdown)
Extend adds the Gno extension to the provided Goldmark markdown processor.
type GnoLink ¶
type GnoLink struct { *ast.Link LinkType GnoLinkType GnoURL *weburl.GnoURL }
GnoLink represents a link with Gno-specific metadata
type GnoLinkType ¶
type GnoLinkType int
GnoLinkType represents the type of a link
const ( GnoLinkTypeInvalid GnoLinkType = iota GnoLinkTypeExternal GnoLinkTypePackage GnoLinkTypeInternal )
func (GnoLinkType) String ¶
func (t GnoLinkType) String() string
type GoldenTests ¶
func NewGoldentTests ¶
func NewGoldentTests(exec GenFunc) *GoldenTests
type ImageValidatorFunc ¶
ImageValidatorFunc validates image URLs. It should return `true` for any valid image URL.
type Option ¶
type Option func(cfg *config)
func WithImageValidator ¶
func WithImageValidator(valFunc ImageValidatorFunc) Option
type TocItem ¶
type TocItem struct { // Title of this item in the table of contents. // // This may be blank for items that don't refer to a heading, and only // have sub-items. Title []byte // ID is the identifier for the heading that this item refers to. This // is the fragment portion of the link without the "#". // // This may be blank if the item doesn't have an id assigned to it, or // if it doesn't have a title. // // Enable AutoHeadingID in your parser if you expected these to be set // but they weren't. ID []byte // Items references children of this item. // // For a heading at level 3, Items, contains the headings at level 4 // under that section. Items []*TocItem }
type TocOptions ¶
type TocOptions struct {
MinDepth, MaxDepth int
}