forked from Cloudxtreme/wiki-9
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrender.go
46 lines (38 loc) · 1.24 KB
/
render.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
39
40
41
42
43
44
45
46
package main
import (
"github.com/russross/blackfriday/v2"
"io"
)
type wikiRenderer struct {
defR *blackfriday.HTMLRenderer
fileR *blackfriday.HTMLRenderer
}
func (r *wikiRenderer) RenderNode(w io.Writer, node *blackfriday.Node, entering bool) blackfriday.WalkStatus {
switch node.Type {
case blackfriday.Image:
//node.LinkData.Destination = []byte(string(node.LinkData.Destination) + "#image")
return r.fileR.RenderNode(w, node, entering)
default:
return r.defR.RenderNode(w, node, entering)
}
}
func (r *wikiRenderer) RenderHeader(w io.Writer, node *blackfriday.Node) {
r.defR.RenderHeader(w, node)
}
func (r *wikiRenderer) RenderFooter(w io.Writer, node *blackfriday.Node) {
r.defR.RenderFooter(w, node)
}
func renderMarkdown(src []byte) []byte {
r := wikiRenderer{
defR: blackfriday.NewHTMLRenderer(blackfriday.HTMLRendererParameters{
Flags: blackfriday.CommonHTMLFlags,
//AbsolutePrefix: "/view",
}),
fileR: blackfriday.NewHTMLRenderer(blackfriday.HTMLRendererParameters{
Flags: blackfriday.CommonHTMLFlags,
AbsolutePrefix: "/file",
}),
}
out := blackfriday.Run(src, blackfriday.WithExtensions(blackfriday.CommonExtensions|blackfriday.NoEmptyLineBeforeBlock), blackfriday.WithRenderer(&r))
return out
}