lib/middleman-protect-emails/extension.rb in middleman-protect-emails-0.2.0 vs lib/middleman-protect-emails/extension.rb in middleman-protect-emails-0.3.0
- old
+ new
@@ -39,10 +39,14 @@
# Keeps track of email replaces
replaced_email = false
# Replaces mailto links with ROT13 equivalent
# TODO: Don't replace plaintext mailto links
- new_content = body.gsub /mailto:([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}(\?[A-Z0-9_\-&=%# ]*)?)/i do
+ invalid_character = '\s"\'>'
+ email_username = "[^@#{invalid_character}]+"
+ email_domain = "[^?#{invalid_character}]+"
+ email_param = "[^&#{invalid_character}]+"
+ new_content = body.gsub /mailto:(#{email_username}@#{email_domain}(\?#{email_param}(\&#{email_param})*)?)/is do
replaced_email = true
email = $1.tr 'A-Za-z','N-ZA-Mn-za-m'
"#email-protection-#{email}"
end