diff --git a/_config.yml b/_config.yml
index 92c0b50..e3a1eb4 100644
--- a/_config.yml
+++ b/_config.yml
@@ -63,6 +63,10 @@ autopages:
collections:
enabled: false
+extlinks:
+ attributes: {rel: "noreferrer noopener", target: _blank}
+ rel_exclude: ['angular.de', 'vuejs.de', 'reactjs.de', 'workshops.de', 'webdave.de', 'ng-de.org', 'conf.vuejs.de']
+
# Build settings
markdown: kramdown
sass:
diff --git a/_layouts/post.html b/_layouts/post.html
index 525da22..97b9cfe 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -50,7 +50,7 @@
- {{ content }}
+ {{ content | extlinks }}
diff --git a/_plugins/jekyll-extlinks.rb b/_plugins/jekyll-extlinks.rb
new file mode 100644
index 0000000..481fd36
--- /dev/null
+++ b/_plugins/jekyll-extlinks.rb
@@ -0,0 +1,76 @@
+# Jekyll ExtLinks Plugin
+# Adds custom attributes to external links (rel="nofollow", target="_blank", etc.)
+#
+# Configuration example in _config.yml (notice the indentation matters):
+#
+# extlinks:
+# attributes: {rel: nofollow, target: _blank}
+# rel_exclude: ['host1.com', 'host2.net']
+#
+# (attributes are required - at least one of them, rel_exclude is optional)
+# Relative links will not be processed.
+# Links to hosts listed in rel_exclude will not have the 'rel' attribute set.
+# Links which have the 'rel' attribute already will keep it unchanged, like
+# this one in Markdown:
+# [Link text](http://someurl.com){:rel="dofollow"}
+#
+# Using in layouts: {{ content | extlinks }}
+#
+# Developed by Dmitry Ogarkov - http://ogarkov.com/jekyll/plugins/extlinks/
+# Based on http://dev.mensfeld.pl/2014/12/rackrails-middleware-that-will-ensure-relnofollow-for-all-your-links/
+
+require 'jekyll'
+require 'nokogiri'
+
+module Jekyll
+ module ExtLinks
+ # Access plugin config in _config.yml
+ def config
+ @context.registers[:site].config['extlinks']
+ end
+
+ # Checks if str contains any fragment of the fragments array
+ def contains_any(str, fragments)
+ return false unless Regexp.union(fragments) =~ str
+ true
+ end
+
+ def extlinks(content)
+ # Process configured link attributes and whitelisted hosts
+ if config
+ if config['attributes']
+ attributes = Array(config['attributes'])
+ end
+ if config['rel_exclude']
+ rel_exclude = Array(config['rel_exclude'])
+ end
+ end
+ # Stop if no attributes were specified
+ return content unless attributes
+
+ doc = Nokogiri::HTML.fragment(content)
+ # Stop if we could't parse with HTML
+ return content unless doc
+
+ doc.css('a').each do |a|
+ # If this is a local link don't change it
+ next unless a.get_attribute('href') =~ /\Ahttp/i
+
+ attributes.each do |attr, value|
+ if attr.downcase == 'rel'
+ # If there's a rel already don't change it
+ next unless !a.get_attribute('rel') || a.get_attribute('rel').empty?
+ # Skip whitelisted hosts for the 'rel' attribute
+ next if rel_exclude && contains_any(a.get_attribute('href'), rel_exclude)
+ end
+ a.set_attribute(attr, value)
+ end
+ end
+
+ doc.to_s
+ end
+
+ end
+end
+
+Liquid::Template.register_filter(Jekyll::ExtLinks)
\ No newline at end of file
diff --git a/shared b/shared
index 2b90e78..d211830 160000
--- a/shared
+++ b/shared
@@ -1 +1 @@
-Subproject commit 2b90e78ffeca924311bfcf484409d6cd828fa6e8
+Subproject commit d2118301a593045195424a189f1fbc90e4c2bca8