37 lines
818 B
Ruby
37 lines
818 B
Ruby
|
#!/usr/local/bin/ruby
|
||
|
#
|
||
|
# HTMLProofer checks for the gVisor website.
|
||
|
#
|
||
|
require 'html-proofer'
|
||
|
|
||
|
# NoOpenerCheck checks to make sure links with target=_blank include the
|
||
|
# rel=noopener attribute.
|
||
|
class NoOpenerCheck < ::HTMLProofer::Check
|
||
|
def run
|
||
|
@html.css('a').each do |node|
|
||
|
link = create_element(node)
|
||
|
line = node.line
|
||
|
|
||
|
rel = link.respond_to?(:rel) ? link.rel.split(' ') : []
|
||
|
|
||
|
if link.respond_to?(:target) && link.target == "_blank" && !rel.include?("noopener")
|
||
|
return add_issue("You should set rel=noopener for links with target=_blank", line: line)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def main()
|
||
|
options = {
|
||
|
:check_html => true,
|
||
|
:check_favicon => true,
|
||
|
:disable_external => true,
|
||
|
}
|
||
|
|
||
|
HTMLProofer.check_directories(ARGV, options).run
|
||
|
end
|
||
|
|
||
|
if __FILE__ == $0
|
||
|
main
|
||
|
end
|