aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/parser.go21
-rw-r--r--backend/templates/components.html2
-rw-r--r--backend/templates/data.html2
3 files changed, 17 insertions, 8 deletions
diff --git a/backend/parser.go b/backend/parser.go
index f2537d5..8dba673 100644
--- a/backend/parser.go
+++ b/backend/parser.go
@@ -3,6 +3,7 @@ package backend
import (
"errors"
"fmt"
+ "html"
"html/template"
"log/slog"
"strings"
@@ -14,7 +15,7 @@ import (
type EntryInfo struct {
Title string `toml:"title"`
- Description string `toml:"description"`
+ Description template.HTML `toml:"description"`
Img image `toml:"image"`
PubLocalDate toml.LocalDate `toml:"publication_date"`
}
@@ -38,29 +39,37 @@ func renderLink(content, href, url string) template.HTML {
}
func parse(b []byte, info *EntryInfo, d *data) (template.HTML, bool) {
+ opt := defaultMarkdownOption
+ opt.RenderLink = renderLinkFunc(d.URL)
+
var dd string
+ var err error
splits := strings.SplitN(string(b), "---", 2)
if len(splits) == 2 && info != nil {
- err := toml.Unmarshal([]byte(splits[0]), info)
+ err = toml.Unmarshal([]byte(splits[0]), info)
if err != nil {
slog.Warn("parsing entry info", "error", err)
} else {
+ info.Description, err = markdown.Parse(string(info.Description), &opt)
dd = splits[1]
}
} else {
dd = string(b)
}
- opt := defaultMarkdownOption
- opt.RenderLink = renderLinkFunc(d.URL)
- content, err := markdown.Parse(dd, &opt)
+
var errMd *markdown.ParseError
errors.As(err, &errMd)
+ var content template.HTML
+ if errMd == nil {
+ content, err = markdown.Parse(dd, &opt)
+ errors.As(err, &errMd)
+ }
if errMd != nil {
slog.Error("parsing markdown")
fmt.Println(errMd.Pretty())
return "", false
}
- d.PageDescription = info.Description
+ d.PageDescription = html.UnescapeString(string(info.Description))
d.title = info.Title
d.Image = info.Img.Src
return content, true
diff --git a/backend/templates/components.html b/backend/templates/components.html
index b4ffbe6..d9a653f 100644
--- a/backend/templates/components.html
+++ b/backend/templates/components.html
@@ -7,7 +7,7 @@
<a href="/{{ $uri }}/{{ .Slug }}"><img src="{{ static .Img.Src }}" alt="{{ .Img.Alt }}" /></a>
<figcaption>{{ .Img.Legend }}</figcaption>
</figure>
- <p>{{ .Description }}</p>
+ {{ .Description }}
</article>
{{ end }}
<div class="pagination">
diff --git a/backend/templates/data.html b/backend/templates/data.html
index a384459..6fe15c4 100644
--- a/backend/templates/data.html
+++ b/backend/templates/data.html
@@ -1,7 +1,7 @@
{{define "body"}}
<article id="content">
<h1>{{ .DataTitle }}</h1>
- <p>{{ .Description }}</p>
+ {{ .Description }}
<figure>
<img src="{{ static .Img.Src }}" alt="{{ .Img.Alt }}" class="large" />
<figcaption>{{ .Img.Legend }}</figcaption>