aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2021-02-16 19:24:33 +0100
committerRené 'Necoro' Neumann <necoro@necoro.eu>2021-02-16 19:24:33 +0100
commitb41368462c89dbfc5230350c46629266f03ad9d5 (patch)
treea3f2e0b0918c2b68ae29f9c5b235878b4494c644
parent3a854c3bc47e75491b836c7fc12b617da5d68288 (diff)
downloadfeed2imap-go-b41368462c89dbfc5230350c46629266f03ad9d5.tar.gz
feed2imap-go-b41368462c89dbfc5230350c46629266f03ad9d5.tar.bz2
feed2imap-go-b41368462c89dbfc5230350c46629266f03ad9d5.zip
Use go-embed for templates instead of inline strings.
They should also use CRLF (cf issue #46).
-rw-r--r--.editorconfig3
-rw-r--r--.gitattributes5
-rw-r--r--internal/feed/template/html.tpl58
-rw-r--r--internal/feed/template/html.tpl.go63
-rw-r--r--internal/feed/template/template.go9
-rw-r--r--internal/feed/template/text.tpl (renamed from internal/feed/template/text.tpl.go)15
6 files changed, 79 insertions, 74 deletions
diff --git a/.editorconfig b/.editorconfig
index 03f964f..0111a8e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -9,4 +9,5 @@ indent_size = 4
[*.tpl]
indent_style = space
-indent_size = 2 \ No newline at end of file
+indent_size = 2
+end_of_line = crlf \ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..777829e
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+# Default
+* text=auto
+
+# Templates should have CRLF
+*.tpl text eol=crlf
diff --git a/internal/feed/template/html.tpl b/internal/feed/template/html.tpl
new file mode 100644
index 0000000..b320ebb
--- /dev/null
+++ b/internal/feed/template/html.tpl
@@ -0,0 +1,58 @@
+{{- /*gotype:github.com/Necoro/feed2imap-go/internal/feed.feeditem*/ -}}
+{{define "bottomLine"}}
+ {{if .content}}
+ <tr>
+ <td style="text-align: right; padding: 0">
+ <span style="color: #ababab">{{.descr}}</span>&nbsp;&nbsp;
+ </td>
+ <td style="padding: 0">
+ <span style="color: #ababab">{{.content}}</span>
+ </td>
+ </tr>
+ {{end}}
+{{end}}
+<table style="border: 2px black groove; background: #ededed; width: 100%; margin-bottom: 5px">
+ <tr>
+ <td style="text-align: right; padding: 4px"><strong>Feed</strong></td>
+ <td style="width: 100%; padding: 4px">
+ {{with .Feed.Link}}<a href="{{.}}">{{end}}
+ <strong>{{or .Feed.Title .Feed.Link "Unnammed feed"}}</strong>
+ {{if .Feed.Link}}</a>{{end}}
+ </td>
+ </tr>
+ <tr>
+ <td style="text-align: right; padding: 4px"><strong>Item</strong></td>
+ <td style="width: 100%; padding: 4px">
+ {{with .Item.Link}}<a href="{{.}}">{{end}}
+ <strong>{{or .Item.Title .Item.Link}}</strong>
+ {{if .Item.Link}}</a>{{end}}
+ </td>
+ </tr>
+</table>
+{{with .Body}}
+ {{html .}}
+{{end}}
+{{with .Item.Enclosures}}
+ <table style="border: 2px black groove; background: #ededed; width: 100%; margin-top: 5px">
+ <tr>
+ <td style="width: 100%"><strong>Files:</strong></td>
+ </tr>
+ {{range .}}
+ <tr>
+ <td>
+ &nbsp;&nbsp;&nbsp;
+ <a href={{.URL}}>{{.URL | lastUrlPart}}</a> ({{with .Length}}{{. | byteCount}}, {{end}}{{.Type}})
+ </td>
+ </tr>
+ {{end}}
+ </table>
+{{end}}
+<hr style="width: 100%"/>
+<table style="width: 100%; border-spacing: 0">
+ {{template "bottomLine" (dict "descr" "Date:" "content" .Date)}}
+ {{template "bottomLine" (dict "descr" "Author:" "content" .Creator)}}
+ {{template "bottomLine" (dict "descr" "Filed under:" "content" (join ", " .Categories))}}
+ {{with .FeedLink}}
+ {{template "bottomLine" (dict "descr" "Feed-Link:" "content" (print "<a style=\"color: #ababab;\" href=\"" . "\">" . "</a>" | html))}}
+ {{end}}
+</table> \ No newline at end of file
diff --git a/internal/feed/template/html.tpl.go b/internal/feed/template/html.tpl.go
deleted file mode 100644
index be84030..0000000
--- a/internal/feed/template/html.tpl.go
+++ /dev/null
@@ -1,63 +0,0 @@
-package template
-
-var Html = fromString("Feed", htmlTpl, true)
-
-//noinspection HtmlDeprecatedAttribute,HtmlUnknownTarget
-const htmlTpl = `{{- /*gotype:github.com/Necoro/feed2imap-go/internal/feed.feeditem*/ -}}
-{{define "bottomLine"}}
- {{if .content}}
- <tr>
- <td style="text-align: right; padding: 0">
- <span style="color: #ababab">{{.descr}}</span>&nbsp;&nbsp;
- </td>
- <td style="padding: 0">
- <span style="color: #ababab">{{.content}}</span>
- </td>
- </tr>
- {{end}}
-{{end}}
-<table style="border: 2px black groove; background: #ededed; width: 100%; margin-bottom: 5px">
- <tr>
- <td style="text-align: right; padding: 4px"><strong>Feed</strong></td>
- <td style="width: 100%; padding: 4px">
- {{with .Feed.Link}}<a href="{{.}}">{{end}}
- <strong>{{or .Feed.Title .Feed.Link "Unnammed feed"}}</strong>
- {{if .Feed.Link}}</a>{{end}}
- </td>
- </tr>
- <tr>
- <td style="text-align: right; padding: 4px"><strong>Item</strong></td>
- <td style="width: 100%; padding: 4px">
- {{with .Item.Link}}<a href="{{.}}">{{end}}
- <strong>{{or .Item.Title .Item.Link}}</strong>
- {{if .Item.Link}}</a>{{end}}
- </td>
- </tr>
-</table>
-{{with .Body}}
- {{html .}}
-{{end}}
-{{with .Item.Enclosures}}
- <table style="border: 2px black groove; background: #ededed; width: 100%; margin-top: 5px">
- <tr>
- <td style="width: 100%"><strong>Files:</strong></td>
- </tr>
- {{range .}}
- <tr>
- <td>
- &nbsp;&nbsp;&nbsp;
- <a href={{.URL}}>{{.URL | lastUrlPart}}</a> ({{with .Length}}{{. | byteCount}}, {{end}}{{.Type}})
- </td>
- </tr>
- {{end}}
- </table>
-{{end}}
-<hr style="width: 100%"/>
-<table style="width: 100%; border-spacing: 0">
- {{template "bottomLine" (dict "descr" "Date:" "content" .Date)}}
- {{template "bottomLine" (dict "descr" "Author:" "content" .Creator)}}
- {{template "bottomLine" (dict "descr" "Filed under:" "content" (join ", " .Categories))}}
- {{with .FeedLink}}
- {{template "bottomLine" (dict "descr" "Feed-Link:" "content" (print "<a style=\"color: #ababab;\" href=\"" . "\">" . "</a>" | html))}}
- {{end}}
-</table>`
diff --git a/internal/feed/template/template.go b/internal/feed/template/template.go
index d8eb850..09dacf1 100644
--- a/internal/feed/template/template.go
+++ b/internal/feed/template/template.go
@@ -15,6 +15,15 @@ type Template interface {
Execute(wr io.Writer, data interface{}) error
}
+//go:embed html.tpl
+var htmlTpl string
+
+//go:embed text.tpl
+var textTpl string
+
+var Html = fromString("Feed", htmlTpl, true)
+var Text = fromString("Feed", textTpl, false)
+
func must(t Template, err error) Template {
if err != nil {
panic(err)
diff --git a/internal/feed/template/text.tpl.go b/internal/feed/template/text.tpl
index 19aa9b2..57eef18 100644
--- a/internal/feed/template/text.tpl.go
+++ b/internal/feed/template/text.tpl
@@ -1,9 +1,4 @@
-package template
-
-var Text = fromString("Feed", textTpl, false)
-
-//noinspection HtmlDeprecatedAttribute,HtmlUnknownTarget
-const textTpl = `{{- /*gotype:github.com/Necoro/feed2imap-go/internal/feed.feeditem*/ -}}
+{{- /*gotype:github.com/Necoro/feed2imap-go/internal/feed.feeditem*/ -}}
{{- with .Item.Link -}}
<{{.}}>
@@ -17,7 +12,7 @@ Files:
{{ .URL}} ({{with .Length}}{{. | byteCount}}, {{end}}{{.Type}})
{{- end -}}
{{- end}}
---
+--
Feed: {{ with .Feed.Title -}}{{.}}{{- end }}
{{ with .Feed.Link -}}
<{{.}}>
@@ -31,12 +26,12 @@ Item: {{ with .Item.Title -}}
{{ with .Date -}}
Date: {{.}}
{{ end -}}
-{{ with .Creator -}}
+{{ with .Creator -}}
Author: {{.}}
{{ end -}}
-{{ with (join ", " .Categories) -}}
+{{ with (join ", " .Categories) -}}
Filed under: {{.}}
{{ end -}}
{{ with .FeedLink -}}
Feed-Link: {{.}}
-{{ end -}}`
+{{ end -}} \ No newline at end of file