77module Jekyll
88 class TargetBlank
99 BODY_START_TAG = "<body"
10- OPENING_BODY_TAG_REGEX = %r!<body([^<>]*)>\s *!
10+ OPENING_BODY_TAG_REGEX = %r!<body([^<>]*)>\s *! . freeze
1111
1212 class << self
1313 # Public: Processes the content and updated the external links
@@ -117,13 +117,9 @@ def configure_adding_additional_css_classes
117117
118118 # Private: Handles the default rel attribute values
119119 def add_default_rel_attributes?
120- if should_not_include_noopener?
121- @should_add_noopener = false
122- end
120+ @should_add_noopener = false if should_not_include_noopener?
123121
124- if should_not_include_noreferrer?
125- @should_add_noreferrrer = false
126- end
122+ @should_add_noreferrrer = false if should_not_include_noreferrer?
127123 end
128124
129125 # Private: Sets any extra rel attribute values
@@ -142,7 +138,7 @@ def add_css_classes_if_required(link)
142138 if @should_add_css_classes
143139 existing_classes = get_existing_css_classes ( link )
144140 existing_classes = " " + existing_classes unless existing_classes . to_s . empty?
145- link [ "class" ] = @css_classes_to_add + existing_classes
141+ link [ "class" ] = @css_classes_to_add + existing_classes
146142 end
147143 end
148144
@@ -158,27 +154,30 @@ def add_target_blank_attribute(link)
158154 # link = Nokogiri node.
159155 def add_rel_attributes ( link )
160156 rel = ""
161- if @should_add_noopener
162- rel = "noopener"
163- end
157+ rel = add_noopener_to_rel ( rel )
164158
165159 if @should_add_noreferrrer
166- unless rel . empty?
167- rel += " "
168- end
160+ rel += " " unless rel . empty?
169161 rel += "noreferrer"
170162 end
171163
172164 if @should_add_extra_rel_attribute_values
173- unless rel . empty?
174- rel += " "
175- end
165+ rel += " " unless rel . empty?
176166 rel += @extra_rel_attribute_values
177167 end
178168
179- unless rel . empty?
180- link [ "rel" ] = rel
169+ link [ "rel" ] = rel unless rel . empty?
170+ end
171+
172+ # Private: Adds noopener attribute.
173+ #
174+ # rel = string
175+ def add_noopener_to_rel ( rel )
176+ if @should_add_noopener
177+ rel += " " unless rel . empty?
178+ rel += "noopener"
181179 end
180+ rel
182181 end
183182
184183 # Private: Checks if the link is a mailto url.
@@ -193,9 +192,7 @@ def not_mailto_link?(link)
193192 #
194193 # link - a url.
195194 def external? ( link )
196- if link =~ URI . regexp ( %w( http https ) )
197- URI . parse ( link ) . host != URI . parse ( @site_url ) . host
198- end
195+ URI . parse ( link ) . host != URI . parse ( @site_url ) . host if link =~ URI . regexp ( %w( http https ) )
199196 end
200197
201198 # Private: Checks if a css class name is specified in config
@@ -332,6 +329,6 @@ def class_config
332329end
333330
334331# Hooks into Jekyll's post_render event.
335- Jekyll ::Hooks . register %i[ pages documents ] , :post_render do |doc |
332+ Jekyll ::Hooks . register [ : pages, : documents] , :post_render do |doc |
336333 Jekyll ::TargetBlank . process ( doc ) if Jekyll ::TargetBlank . document_processable? ( doc )
337334end
0 commit comments