Moved away from local files to complete database driven articles

This commit is contained in:
2021-12-20 23:10:04 +01:00
parent bc3ec64b3c
commit c909339a73
20 changed files with 302 additions and 299 deletions

View File

@@ -1,13 +1,9 @@
package parse
import (
"TheAdversary/config"
"TheAdversary/schema"
"github.com/gomarkdown/markdown"
"github.com/gomarkdown/markdown/ast"
"github.com/gomarkdown/markdown/html"
"github.com/gomarkdown/markdown/parser"
"os"
)
func newParser() *parser.Parser {
@@ -16,26 +12,14 @@ func newParser() *parser.Parser {
return parser.NewWithExtensions(extensions)
}
func newHtmlRenderer(title string) *html.Renderer {
func newHtmlRenderer() *html.Renderer {
renderOpts := html.RendererOptions{
Title: title,
Flags: html.CommonFlags | html.CompletePage,
Flags: html.CommonFlags | html.LazyLoadImages,
}
return html.NewRenderer(renderOpts)
}
func Parse(path string) (ast.Node, error) {
raw, err := os.ReadFile(path)
if err != nil {
return nil, err
}
return markdown.Parse(raw, newParser()), nil
}
func ParseToHtml(article *schema.Article) ([]byte, error) {
node, err := Parse(article.FilePath(config.ArticleRoot))
if err != nil {
return nil, err
}
return markdown.Render(node, newHtmlRenderer(article.Title)), nil
func ParseToHtml(rawMarkdown []byte) []byte {
node := markdown.Parse(rawMarkdown, newParser())
return markdown.Render(node, newHtmlRenderer())
}