From 27e2a1a02c23350a4f0f4fd3a0f438486cfe564d Mon Sep 17 00:00:00 2001 From: Frido Koch Date: Sun, 14 May 2017 11:52:11 +0200 Subject: [PATCH] Use fixed placeholder rather then printf --- CONTRIBUTING.md | 6 +++--- README.md | 14 ++++++++++++++ default.go | 2 +- hermes.go | 4 ++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 81e1d47..66b66e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -276,15 +276,15 @@ The following will inject the action link (or button) into the e-mail: {{ end }} ``` -A good practice is to describe action in footer in case of problem when displaying button and CSS +A good practice is to describe action in footer in case of problem when displaying button and CSS. The text for the description is provided through the `TroubleText` field of the `Product` struct. The text may contain a placeholder `{ACTION}` which is expected to be replaced with the text of the button. The default value of `TroubleText` is `If you’re having trouble with the button '{ACTION}', copy and paste the URL below into your web browser.` ```html -{{ with .Email.Body.Actions }} +{{ with .Email.Body.Actions }} {{ range $action := . }} {{ end }} diff --git a/README.md b/README.md index 5742bba..003cc15 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,20 @@ h := hermes.Hermes{ } ``` +To use a custom fallback text at the end of the email, change the `TroubleText` field of the `hermes.Product` struct. The default value is `If you’re having trouble with the button '{ACTION}', copy and paste the URL below into your web browser.`. The `{ACTION}` placeholder will be replaced with the corresponding text of the supplied action button: + +```go +// Configure hermes by setting a theme and your product info +h := hermes.Hermes{ + // Optional Theme + // Theme: new(Default) + Product: hermes.Product{ + // Custom trouble text + Copyright: "If the {ACTION}-button is not working for you, just copy and paste the URL below into your web browser." + }, +} +``` + ## Elements Hermes supports injecting custom elements such as dictionaries, tables and action buttons into e-mails. diff --git a/default.go b/default.go index bf0d5c9..c632288 100644 --- a/default.go +++ b/default.go @@ -346,7 +346,7 @@ func (dt *Default) HTMLTemplate() string { {{ range $action := . }} diff --git a/hermes.go b/hermes.go index d17da81..d76d5f2 100644 --- a/hermes.go +++ b/hermes.go @@ -37,7 +37,7 @@ type Product struct { Link string // e.g. https://matcornic.github.io Logo string // e.g. https://matcornic.github.io/img/logo.png Copyright string // Copyright © 2017 Hermes. All rights reserved. - TroubleText string // TroubleText is the sentence at the end of the email for users having trouble with the button (default to `If you’re having trouble with the button %s, copy and paste the URL below into your web browser.`) + TroubleText string // TroubleText is the sentence at the end of the email for users having trouble with the button (default to `If you’re having trouble with the button '{ACTION}', copy and paste the URL below into your web browser.`) } // Email is the email containing a body @@ -123,7 +123,7 @@ func setDefaultHermesValues(h *Hermes) error { Product: Product{ Name: "Hermes", Copyright: "Copyright © 2017 Hermes. All rights reserved.", - TroubleText: "If you’re having trouble with the button '%s', copy and paste the URL below into your web browser.", + TroubleText: "If you’re having trouble with the button '{ACTION}', copy and paste the URL below into your web browser.", }, } // Merge the given hermes engine configuration with default one
-

If you’re having trouble with the button '{{ $action.Button.Text }}', copy and paste the URL below into your web browser.

+

{{$.Hermes.Product.TroubleText | replace "{ACTION}" $action.Button.Text}}

{{ $action.Button.Link }}

-

{{printf $.Hermes.Product.TroubleText $action.Button.Text}}

+

{{$.Hermes.Product.TroubleText | replace "{ACTION}" $action.Button.Text}}

{{ $action.Button.Link }}