ref: d2bf484a155db574da425c4b2522cc4589f4b087
parent: 5364fb89ba736967fff5545cb0fa844e63b1600b
author: penny <penny@limitedideas.org>
date: Mon Oct 6 13:33:59 EDT 2025
macro templates
--- a/main.go
+++ b/main.go
@@ -260,7 +260,7 @@
if index == "" {index = lastindex
}
- line, _ := templater.render(fmt.Sprintf("%s> $username $content $media_descriptions\n$detail_line", index))+ line, _ := templater.render(fmt.Sprintf("%s> $standard_status$detail_line", index))fmt.Print(line)
return
case "like":
@@ -268,7 +268,7 @@
if err != nil {printMastodonErr(err)
} else {- line, _ := templater.render(fmt.Sprintf("Favourited: %s> $username $content $media_descriptions\n", index))+ line, _ := templater.render(fmt.Sprintf("Favourited: %s> $standard_status", index))fmt.Print(line)
}
return
--- a/renderer.go
+++ b/renderer.go
@@ -78,7 +78,6 @@
sb.WriteString(" ")}
}
- sb.WriteString("\n")return sb.String()
}
--- a/templater.go
+++ b/templater.go
@@ -16,7 +16,7 @@
// returns a new template renderer loaded with standard format keys
func newStatusTemplateRenderer(sf *StatusFormatter) *templateRenderer {- return &templateRenderer{+ template := &templateRenderer{ tempdefs: []*templateDefs{ {key: "content", stringer: &statusContent{sf}}, {key: "media_descriptions", stringer: &mediaDescriptions{sf}},@@ -27,9 +27,23 @@
{key: "boosted_media_descriptions", stringer: &boostMediaDescriptions{sf}},},
}
+ // macro templates
+ template.tempdefs = append(template.tempdefs, []*templateDefs{+ {key: "standard_status", stringer: &standardStatus{template}},+ }...)
+ return template
}
func (tr *templateRenderer) render(template string) (string, error) {+ template, _ := tr.renderRaw(template)
+ template, long := hyphenate(template)
+ if long {+ return template + "\n\n", nil
+ }
+ return template + "\n", nil
+}
+
+func (tr *templateRenderer) renderRaw(template string) (string, error) { expandMap := func(key string) string { for item := range tr.tempdefs { if key == tr.tempdefs[item].key {@@ -38,9 +52,15 @@
}
return fmt.Sprintf("[%%KEY_NOT_FOUND:%s]", key)}
- template, long := hyphenate(os.Expand(template, expandMap))
- if long {- return template + "\n\n", nil
- }
- return template + "\n", nil
+ return template, nil
+}
+
+// Renders a status line with username + content + media descriptions
+type standardStatus struct {+ *templateRenderer
+}
+
+func (ss *standardStatus) String() string {+ line, _ := ss.renderRaw("$username $content $media_descriptions")+ return line
}
--
⑨