diff --git a/app.go b/app.go index 90a407a..fc48fa2 100644 --- a/app.go +++ b/app.go @@ -249,16 +249,7 @@ func (app *app) blogEN() blogo.Blogo { blog.Use(gitea) blog.Use(&listRenderer{app.templates, "en-US"}) - - rf := plugins.NewFoldingRenderer(plugins.FoldingRendererOpts{ - Assertions: app.assert, - Logger: app.log.WithGroup("folding-renderer"), - }) - - rf.Use(markdown.New()) - rf.Use(&blogPostRenderer{app.templates, "en"}) - - blog.Use(rf) + blog.Use(NewBlogPostRenderer(app.templates, "en-US")) blog.Use(plugins.NewPlainText()) return blog @@ -275,17 +266,8 @@ func (app *app) blogPT() blogo.Blogo { }) blog.Use(gitea) - blog.Use(&listRenderer{app.templates, "pt"}) - - rf := plugins.NewFoldingRenderer(plugins.FoldingRendererOpts{ - Assertions: app.assert, - Logger: app.log.WithGroup("folding-renderer"), - }) - - rf.Use(markdown.New()) - rf.Use(&blogPostRenderer{app.templates, "pt"}) - - blog.Use(rf) + blog.Use(&listRenderer{app.templates, "pt-BR"}) + blog.Use(NewBlogPostRenderer(app.templates, "pt-BR")) blog.Use(plugins.NewPlainText()) return blog @@ -302,10 +284,22 @@ func (app *app) ServeHTTP(w http.ResponseWriter, r *http.Request) { type blogPostRenderer struct { templates templates.ITemplate lang string + + parser parser.Parser + renderer renderer.Renderer } var _ plugin.Renderer = (*blogPostRenderer)(nil) +func NewBlogPostRenderer(templates templates.ITemplate, lang string) *blogPostRenderer { + return &blogPostRenderer{ + templates: templates, + lang: lang, + parser: md.Parser(), + renderer: md.Renderer(), + } +} + func (r *blogPostRenderer) Name() string { return "capytal-blogpostrenderer-renderer" } @@ -318,18 +312,44 @@ func (r *blogPostRenderer) Render(src fs.File, w io.Writer) error { return err } - m := re.FindStringSubmatch(string(c)) + doc := r.parser.Parse(text.NewReader(c)) + meta := doc.OwnerDocument().Meta() title := "Blog" - if len(m) > 1 { - t := strings.TrimSuffix(strings.TrimPrefix(m[0], "