/
converter.go
42 lines (36 loc) · 909 Bytes
/
converter.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
package builder
import (
"bytes"
"github.com/knieriem/markdown"
"path/filepath"
"strings"
)
type webConverter struct {
webBody string
webExt string
}
func newWebConverter() *webConverter {
return &webConverter{}
}
func (wc *webConverter) toHtml(content, ext string) {
switch strings.ToLower(ext) {
case ".md":
wc.webBody = wc.markdownToHtml(content)
wc.webExt = ".html"
default:
wc.webBody = content
wc.webExt = ext
}
}
func (wc *webConverter) markdownToHtml(content string) string {
var mparser = markdown.NewParser(nil)
stringBuffer := strings.NewReader(content)
bufferReader := new(bytes.Buffer)
mparser.Markdown(stringBuffer, markdown.ToHTML(bufferReader))
return bufferReader.String()
}
func (wc *webConverter) webpath(fpath, webext string) string {
webbase := filepath.ToSlash(fpath)
webbase = webbase[0 : len(fpath)-len(filepath.Ext(fpath))]
return webbase + webext
}