summaryrefslogtreecommitdiff
path: root/internal/glightbox/extension.go
blob: e9a9f3e9b52a6d1e669d80cd8fd13e7a64553a4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package glightbox

import (
	"github.com/SayaAndy/saya-today-web/config"
	"github.com/yuin/goldmark"
	"github.com/yuin/goldmark/parser"
	"github.com/yuin/goldmark/renderer"
	"github.com/yuin/goldmark/util"
)

// Extension that combines parser and renderer
type GLightboxExtension struct {
	photoStorage config.PhotoStorageConfig
}

func NewGLightboxExtension(photoStorage config.PhotoStorageConfig) goldmark.Extender {
	return &GLightboxExtension{photoStorage}
}

func (e *GLightboxExtension) Extend(m goldmark.Markdown) {
	m.Parser().AddOptions(
		parser.WithBlockParsers(
			util.Prioritized(NewGLightboxParser(), 500),
		),
	)
	m.Renderer().AddOptions(
		renderer.WithNodeRenderers(
			util.Prioritized(NewGLightboxHTMLRenderer(e.photoStorage), 500),
		),
	)
}