middleman-newsletter 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/middleman-newsletter/extension.rb +11 -4
- data/lib/middleman-newsletter/newsletter.rb +5 -0
- data/middleman-newsletter.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 070a18bec40575c8a6e26194774278f001903d770ee766ae4ffc039e48f10d26
|
4
|
+
data.tar.gz: 329055d715305ec4216c6e1e22ae9392d73582604104949369f5f0e268d73f2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 836e7182cff031146bf46736020076b2dde294458d16ee04637ce6efd65edbf9ea85f9138dc9c400c8e4de447b64f6ab3110b7676db9eca4288966c15680b5fc
|
7
|
+
data.tar.gz: 277e191ca3058c3e6fad468b788122e58cf8c0aa58945cba0ce78d33dc6affbd17539095a6a1373860b8302e9cc35a4187bcd56c1cc3f3a4d2edece00cacaf7a
|
@@ -15,6 +15,9 @@ module Middleman
|
|
15
15
|
option :layout, 'layout', 'Newsletter specific layout'
|
16
16
|
option :sendgrid_api_key, nil, 'API Key for SendGrid -- must have marketing access.'
|
17
17
|
option :sendgrid_category, 'newsletters', 'Category assigned to all managed single sends in SendGrid.'
|
18
|
+
option :subject_line, proc { |newsletter| newsletter.source_resource.title }, 'A proc that takes the newsletter resource and returns the subject line for the email. Defaults to the source blog post title.'
|
19
|
+
option :preview_text, proc { |newsletter| newsletter.source_resource.description }, 'A proc that takes the newsletter resource and returns preview text for the email. Defaults to the source blog post description.'
|
20
|
+
option :content_modifier, proc { |_newsletter, content| content }, 'A proc that takes the newsletter resource and rendered HTML for the newsletter and can return modified content.'
|
18
21
|
|
19
22
|
def initialize(app, options_hash={}, &block)
|
20
23
|
# Call super to build options from the options_hash
|
@@ -83,6 +86,10 @@ module Middleman
|
|
83
86
|
|
84
87
|
private
|
85
88
|
|
89
|
+
def render_newsletter(newsletter)
|
90
|
+
newsletter.render({}, {})
|
91
|
+
end
|
92
|
+
|
86
93
|
def sendgrid_client
|
87
94
|
@sendgrid_client ||= SendGrid::API.new(api_key: options.sendgrid_api_key).client
|
88
95
|
end
|
@@ -96,8 +103,8 @@ module Middleman
|
|
96
103
|
name: name,
|
97
104
|
categories: [options.sendgrid_category],
|
98
105
|
email_config: {
|
99
|
-
subject:
|
100
|
-
html_content: newsletter
|
106
|
+
subject: options.subject_line.call(newsletter),
|
107
|
+
html_content: render_newsletter(newsletter)
|
101
108
|
}
|
102
109
|
}
|
103
110
|
)
|
@@ -110,8 +117,8 @@ module Middleman
|
|
110
117
|
sendgrid_client.marketing.singlesends._(singlesend_id).patch(
|
111
118
|
request_body: {
|
112
119
|
email_config: {
|
113
|
-
subject:
|
114
|
-
html_content: newsletter
|
120
|
+
subject: options.subject_line.call(newsletter),
|
121
|
+
html_content: render_newsletter(newsletter)
|
115
122
|
}
|
116
123
|
}
|
117
124
|
)
|
@@ -18,7 +18,12 @@ module Middleman
|
|
18
18
|
opts[:layout] = opts[:layout].to_s if opts[:layout].is_a? Symbol
|
19
19
|
end
|
20
20
|
|
21
|
+
unless locs.key?(:preview_text)
|
22
|
+
locs[:preview_text] = newsletter_options.preview_text.call(self)
|
23
|
+
end
|
24
|
+
|
21
25
|
content = with_email_renderer { super(opts, locs, &block) }
|
26
|
+
content = newsletter_options.content_modifier.call(self, content)
|
22
27
|
|
23
28
|
Premailer.new(content, with_html_string: true, output_encoding: 'UTF-8', input_encoding: 'UTF-8').to_inline_css
|
24
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-newsletter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Scarborough
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|