~erock/pico.sh

Support hidden variable for posts v1 APPLIED

jupblb: 1
 Support hidden variable for posts

 2 files changed, 7 insertions(+), 1 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~erock/pico.sh/patches/36537/mbox | git am -3
Learn more about email & git

[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