Class: AlEmailProtect::LinkTag
- Inherits:
-
Liquid::Tag
- Object
- Liquid::Tag
- AlEmailProtect::LinkTag
- Defined in:
- lib/al_email_protect.rb
Overview
al_email_protect_link site.data.socials.email %
Emits a click-to-copy element carrying the address in halves. Falls back to a plain mailto: link when the feature is off, so a layout can call this unconditionally and get correct markup either way.
Instance Method Summary collapse
-
#initialize(tag_name, markup, options) ⇒ LinkTag
constructor
A new instance of LinkTag.
- #render(context) ⇒ Object
Constructor Details
#initialize(tag_name, markup, options) ⇒ LinkTag
Returns a new instance of LinkTag.
123 124 125 126 |
# File 'lib/al_email_protect.rb', line 123 def initialize(tag_name, markup, ) super @markup = markup.strip end |
Instance Method Details
#render(context) ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/al_email_protect.rb', line 128 def render(context) value = context[@markup] value = @markup.gsub(/\A["']|["']\z/, "") if value.nil? return "" if value.to_s.strip.empty? parts = AlEmailProtect.split_address(value) unless AlEmailProtect.enabled?(context.registers[:site]) && parts escaped = AlEmailProtect.escape(value) return %(<a href="mailto:#{escaped}">#{escaped}</a>) end local, domain = parts [ %(<a href="#" class="al-email-protect" data-eu="#{AlEmailProtect.escape(local)}" data-ed="#{AlEmailProtect.escape(domain)}">), %(<span class="al-email-text">#{AlEmailProtect.escape(local)}</span>), %(<span class="al-email-sep"> [at] </span>), AlEmailProtect.domain_markup(domain), %(</a>), ].join end |