exporterer

master
Bel LaPointe 2020-09-28 10:06:17 -06:00
parent a26d34c2b3
commit f9c28b3c45
2 changed files with 37 additions and 31 deletions

View File

@ -8,15 +8,14 @@ import (
"io"
"io/ioutil"
"local/notes-server/filetree"
"local/notes-server/notes/md"
"path"
"regexp"
"strings"
"github.com/fairlyblank/md2min"
"github.com/gomarkdown/markdown"
"github.com/gomarkdown/markdown/ast"
"github.com/gomarkdown/markdown/html"
"github.com/gomarkdown/markdown/parser"
"github.com/yuin/goldmark"
blackfriday "gopkg.in/russross/blackfriday.v2"
)
@ -57,35 +56,7 @@ func (n *Notes) md2min(urlPath string, b []byte) (string, error) {
}
func (n *Notes) gomarkdown(urlPath string, b []byte) (string, error) {
return Gomarkdown(b, n.commentFormer(urlPath, b))
}
func Gomarkdown(b []byte, renderHook html.RenderNodeFunc) (string, error) {
renderer := html.NewRenderer(html.RendererOptions{
Flags: html.CommonFlags | html.TOC,
RenderNodeHook: renderHook,
})
ext := parser.NoExtensions
for _, extension := range []parser.Extensions{
parser.NoIntraEmphasis,
parser.Tables,
parser.FencedCode,
parser.Autolink,
parser.Strikethrough,
parser.SpaceHeadings,
parser.HeadingIDs,
parser.BackslashLineBreak,
parser.DefinitionLists,
parser.MathJax,
parser.Titleblock,
parser.AutoHeadingIDs,
parser.Includes,
} {
ext |= extension
}
parser := parser.NewWithExtensions(ext)
content := markdown.ToHTML(b, parser, renderer)
return string(content) + "\n", nil
return md.Gomarkdown(b, n.commentFormer(urlPath, b))
}
func (n *Notes) commentFormer(urlPath string, md []byte) html.RenderNodeFunc {

35
notes/md/file.go Executable file
View File

@ -0,0 +1,35 @@
package md
import (
"github.com/gomarkdown/markdown"
"github.com/gomarkdown/markdown/html"
"github.com/gomarkdown/markdown/parser"
)
func Gomarkdown(b []byte, renderHook html.RenderNodeFunc) (string, error) {
renderer := html.NewRenderer(html.RendererOptions{
Flags: html.CommonFlags | html.TOC,
RenderNodeHook: renderHook,
})
ext := parser.NoExtensions
for _, extension := range []parser.Extensions{
parser.NoIntraEmphasis,
parser.Tables,
parser.FencedCode,
parser.Autolink,
parser.Strikethrough,
parser.SpaceHeadings,
parser.HeadingIDs,
parser.BackslashLineBreak,
parser.DefinitionLists,
parser.MathJax,
parser.Titleblock,
parser.AutoHeadingIDs,
parser.Includes,
} {
ext |= extension
}
parser := parser.NewWithExtensions(ext)
content := markdown.ToHTML(b, parser, renderer)
return string(content) + "\n", nil
}