-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextend.go
38 lines (35 loc) · 835 Bytes
/
extend.go
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
32
33
34
35
36
37
38
package pikchr
import (
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/parser"
"github.com/yuin/goldmark/renderer"
"github.com/yuin/goldmark/util"
)
// Extender adds support for pikchr diagrams to a Goldmark Markdown parser.
//
// Use it by installing it to the goldmark.Markdown object upon creation.
//
// goldmark.New(
// // ...
// goldmark.WithExtensions(
// // ...
// &pikchr.Exender{},
// ),
// )
type Extender struct {
DarkMode bool
}
// Extend extends the provided Goldmark parser with support for pikchr
// diagrams.
func (e *Extender) Extend(md goldmark.Markdown) {
md.Parser().AddOptions(
parser.WithASTTransformers(
util.Prioritized(&Transformer{}, 100),
),
)
md.Renderer().AddOptions(
renderer.WithNodeRenderers(
util.Prioritized(&Renderer{DarkMode: e.DarkMode}, 100),
),
)
}