aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/aerc-templates.7.scd10
-rw-r--r--lib/templates/functions.go15
2 files changed, 25 insertions, 0 deletions
diff --git a/doc/aerc-templates.7.scd b/doc/aerc-templates.7.scd
index bfba05c4..f5998b23 100644
--- a/doc/aerc-templates.7.scd
+++ b/doc/aerc-templates.7.scd
@@ -196,6 +196,16 @@ aerc provides the following additional functions:
{{index (.To | names) 0}}
```
+*initials*
+ Extracts the initials from the names part from a mail.Address list. If
+ there is no name available, the first letter of the email address is
+ returned instead.
+
+ ```
+ {{.To | initials | join ", "}}
+ {{index (.To | initials) 0}}
+ ```
+
*emails*
Extracts the addresses part from a mail.Address list.
diff --git a/lib/templates/functions.go b/lib/templates/functions.go
index f6cb0df4..630db264 100644
--- a/lib/templates/functions.go
+++ b/lib/templates/functions.go
@@ -120,6 +120,20 @@ func names(addresses []*mail.Address) []string {
return n
}
+func initials(addresses []*mail.Address) []string {
+ n := names(addresses)
+ ret := make([]string, len(addresses))
+ for i, name := range n {
+ split := strings.Split(name, " ")
+ initial := ""
+ for _, s := range split {
+ initial += string([]rune(s)[0:1])
+ }
+ ret[i] = initial
+ }
+ return ret
+}
+
func emails(addresses []*mail.Address) []string {
e := make([]string, len(addresses))
for i, addr := range addresses {
@@ -208,6 +222,7 @@ var templateFuncs = template.FuncMap{
"exec": cmd,
"version": func() string { return version },
"names": names,
+ "initials": initials,
"emails": emails,
"mboxes": mboxes,
"persons": persons,