aboutsummaryrefslogtreecommitdiffhomepage
path: root/reader/rewrite/rewrite_functions.go
diff options
context:
space:
mode:
Diffstat (limited to 'reader/rewrite/rewrite_functions.go')
-rw-r--r--reader/rewrite/rewrite_functions.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/reader/rewrite/rewrite_functions.go b/reader/rewrite/rewrite_functions.go
index 667f359..8988cc5 100644
--- a/reader/rewrite/rewrite_functions.go
+++ b/reader/rewrite/rewrite_functions.go
@@ -7,6 +7,7 @@ package rewrite // import "miniflux.app/reader/rewrite"
import (
"fmt"
"html"
+ "net/url"
"regexp"
"strings"
@@ -43,6 +44,38 @@ func addImageTitle(entryURL, entryContent string) string {
return entryContent
}
+func addMailtoSubject(entryURL, entryContent string) string {
+ doc, err := goquery.NewDocumentFromReader(strings.NewReader(entryContent))
+ if err != nil {
+ return entryContent
+ }
+
+ matches := doc.Find(`a[href^="mailto:"]`)
+
+ if matches.Length() > 0 {
+ matches.Each(func(i int, a *goquery.Selection) {
+ hrefAttr, _ := a.Attr("href")
+
+ mailto, err := url.Parse(hrefAttr)
+ if err != nil {
+ return
+ }
+
+ subject := mailto.Query().Get("subject")
+ if subject == "" {
+ return
+ }
+
+ a.AppendHtml(" [" + html.EscapeString(subject) + "]")
+ })
+
+ output, _ := doc.Find("body").First().Html()
+ return output
+ }
+
+ return entryContent
+}
+
func addDynamicImage(entryURL, entryContent string) string {
doc, err := goquery.NewDocumentFromReader(strings.NewReader(entryContent))
if err != nil {