[PATCH v1] Support hidden variable for posts
Export this patch
When hidden is set to true the post is no longer listed on a blog
website. It is still reachable via direct URL.
---
prose/scp_hooks.go | 2 +-
shared/mdparser.go | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/prose/scp_hooks.go b/prose/scp_hooks.go
index 9fda9d6..163400d 100644
--- a/prose/scp_hooks.go
+++ b/prose/scp_hooks.go
@@ -66,7 +66,7 @@ func (p *MarkdownHooks) FileMeta(data *filehandlers.PostMetaData) error {
data.PublishAt = parsedText.MetaData.PublishAt
}
- data.Hidden = slices.Contains(p.Cfg.HiddenPosts, data.Filename)
+ data.Hidden = parsedText.MetaData.Hidden || slices.Contains(p.Cfg.HiddenPosts, data.Filename)
return nil
}
diff --git a/shared/mdparser.go b/shared/mdparser.go
index e87559a..1a93e69 100644
--- a/shared/mdparser.go
+++ b/shared/mdparser.go
@@ -34,6 +34,7 @@ type MetaData struct {
Layout string
Image string
ImageCard string
+ Hidden bool
}
type ParsedText struct {
@@ -56,6 +57,10 @@ func toString(obj interface{}) string {
return obj.(string)
}
+func toBool(obj interface{}) bool {
+ return strings.EqualFold(toString(obj), "true")
+}
+
func toLinks(obj interface{}) ([]Link, error) {
links := []Link{}
if obj == nil {
@@ -224,6 +229,7 @@ func ParseText(text string, linkify Linkify) (*ParsedText, error) {
parsed.Image = linkify.Create(parsed.Image[1:])
}
parsed.MetaData.ImageCard = toString(metaData["card"])
+ parsed.MetaData.Hidden = toBool(metaData["hidden"])
var publishAt *time.Time = nil
var err error
--
2.38.1.273.g43a17bfeac-goog