Module: Middleman::Newsletter
- Defined in:
- lib/middleman-newsletter/newsletter.rb
Class Method Summary collapse
Instance Method Summary collapse
- #newsletter_options ⇒ Object
- #render(opts = {}, locs = {}, &block) ⇒ Object
- #with_email_renderer ⇒ Object
Class Method Details
.extended(base) ⇒ Object
3 4 5 6 |
# File 'lib/middleman-newsletter/newsletter.rb', line 3 def self.extended(base) base.class.send(:attr_accessor, :newsletter_controller) base.class.send(:attr_accessor, :source_resource) end |
Instance Method Details
#newsletter_options ⇒ Object
8 9 10 |
# File 'lib/middleman-newsletter/newsletter.rb', line 8 def . end |
#render(opts = {}, locs = {}, &block) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/middleman-newsletter/newsletter.rb', line 12 def render(opts = {}, locs = {}, &block) unless opts.key?(:layout) opts[:layout] = [:options][:newsletter_layout] opts[:layout] = .layout if opts[:layout].nil? || opts[:layout] == :_auto_layout # Convert to a string unless it's a boolean opts[:layout] = opts[:layout].to_s if opts[:layout].is_a? Symbol end unless locs.key?(:preview_text) locs[:preview_text] = .preview_text.call(self) end content = with_email_renderer { super(opts, locs, &block) } content = .content_modifier.call(self, content) Premailer.new(content, with_html_string: true, output_encoding: 'UTF-8', input_encoding: 'UTF-8').to_inline_css end |
#with_email_renderer ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/middleman-newsletter/newsletter.rb', line 31 def with_email_renderer # Ensure we render using our custom email renderer ::Tilt.register(source_file.downcase, ::Middleman::Renderers::KramdownEmailTemplate) yield ensure # Don't pollute the tilt mappings, will slow things down ::Tilt.default_mapping.unregister(source_file.downcase) end |