package notes import ( "errors" "io/ioutil" "local/notes-server/filetree" "github.com/gomarkdown/markdown" "github.com/gomarkdown/markdown/html" "github.com/gomarkdown/markdown/parser" ) func (n *Notes) File(urlPath string) (string, error) { p := filetree.NewPathFromURL(urlPath) if p.IsDir() { return "", errors.New("path is dir") } b, _ := ioutil.ReadFile(p.Local) renderer := html.NewRenderer(html.RendererOptions{ Flags: html.CommonFlags | html.TOC, }) parser := parser.NewWithExtensions(parser.CommonExtensions | parser.HeadingIDs | parser.AutoHeadingIDs | parser.Titleblock) content := markdown.ToHTML(b, parser, renderer) return string(content) + "\n", nil }