26 lines
688 B
Go
Executable File
26 lines
688 B
Go
Executable File
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
|
|
}
|