middleman-newsletter 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84dc8abc029fa94e3dfec0719cf97d264717d80d5b7d9d89188b3efab8eb18ce
4
- data.tar.gz: 731da1a25ea911c9b1e30bc24629bbea4e3b496594b9414a9e5603ca77092c11
3
+ metadata.gz: b2cec0f02f8412f5b919fbd7b27902ad28d94d102eb098aaa311152a295a3654
4
+ data.tar.gz: 874cb8afa280169aa555b6a4032ac722a85b1256ead4da34a4ea9ef7b76e324b
5
5
  SHA512:
6
- metadata.gz: 5b495d654771c754c09682342a2f081198ad2af5161aa82247cc39295cb49720ca49288b973852717ad447d58afe0314b11f2393412ddde53eeb92533b0dd8ed
7
- data.tar.gz: 8454843c4b4ef0f28613462cf583bbf6cf4cebe47c3e62058fb377a7c641b1f4e2f847143431e6ca4bf0ca7273d799495abaf500e44082fbc9edb2416fac81e6
6
+ metadata.gz: 0b68fd205815855a3ea71a03c14d4eab49813cd68a2505f2fd3e25737225a8bb3aa494298c89369acf82df7e19f44882ae4fb0eb825c62cb22b60ce4baef720c
7
+ data.tar.gz: 53c8b682e4096081a0c887e35e9ebee642586d82f4d05f14fb2f43374faaeffc78d1f859f3018a9e864b0e8edf20e3ebf3ea4da30db39b73c3b17079ee186feb
@@ -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.data.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: name,
100
- html_content: newsletter.render({}, {})
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: name,
114
- html_content: newsletter.render({}, {})
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
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "middleman-newsletter"
6
- s.version = "0.0.2"
6
+ s.version = "0.0.4"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Alex Scarborough"]
9
9
  # s.email = ["email@example.com"]
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.2
4
+ version: 0.0.4
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-06 00:00:00.000000000 Z
11
+ date: 2024-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core