diff --git a/Gemfile b/Gemfile index 7b1e783259485553ffaf6d49f1af12f75f29c429..0acaa105b3de27b6eb551d661d45fabf673df3fc 100644 --- a/Gemfile +++ b/Gemfile @@ -25,6 +25,7 @@ gem 'jekyll-theme-lcsb-default', '~> 0.2.18', :git => "https://git-r3lab.uni.lu/ group :jekyll_plugins do gem "jekyll-paginate-v2", "~> 1.7" gem "jekyll-feed", "~> 0.6" + gem "jekyll-email-protect" end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem diff --git a/_plugins/hook_mailto_email_protector.rb b/_plugins/hook_mailto_email_protector.rb new file mode 100644 index 0000000000000000000000000000000000000000..8b8af8e875b861cf110f3c1de8e206bd4cb5b6eb --- /dev/null +++ b/_plugins/hook_mailto_email_protector.rb @@ -0,0 +1,16 @@ +Jekyll::Hooks.register([:pages, :posts, :documents], :pre_render) do |post| + # This will run every time the website is built + + # Include a plugin (needs to be in gemfile) + include Jekyll::EmailProtect::EmailProtectionFilter + + # Using a simpler version of email regexp + email_regexp = /mailto\:(?:[\'\"]*)(?:[\w+\-]\.?)+@[a-z\d\-]+(?:\.[a-z]+)*\.[a-z]+(?:[\'\"]*)/i + + # Take post's content, and transform every occurence of the following regexp (an email) + post.content = post.content.gsub(email_regexp) { + # For every occurence, apply protection function: + |param| "mailto:" + Jekyll::EmailProtect::EmailProtectionFilter::encode_email(param[7..-1].delete("'").delete('"')) + } +end +