Mark external links using the "rel" attribute

This will help search engines know these links point to external sites
and it'll make it possible to style these links using the
`[rel~=external]` selector. AFAIK, assistive techonologies don't use
this attribute to notify people about external links, though.
This commit is contained in:
Javi Martín
2023-10-15 18:22:15 +02:00
parent 79c1aa0755
commit 5aa56c054f
2 changed files with 9 additions and 3 deletions

View File

@@ -8,11 +8,15 @@ class Layout::FooterComponent < ApplicationComponent
private
def open_source_link
link_to(t("layouts.footer.open_source"), t("layouts.footer.open_source_url"), rel: "nofollow")
external_link_to(t("layouts.footer.open_source"), t("layouts.footer.open_source_url"))
end
def repository_link
link_to(t("layouts.footer.consul"), t("layouts.footer.consul_url"), rel: "nofollow")
external_link_to(t("layouts.footer.consul"), t("layouts.footer.consul_url"))
end
def external_link_to(text, url)
link_to(text, url, rel: "nofollow external")
end
def allowed_link_attributes

View File

@@ -6,7 +6,9 @@ describe Layout::FooterComponent do
render_inline Layout::FooterComponent.new
page.find(".info") do |info|
expect(info).to have_css "a[rel=nofollow]", count: 2
expect(info).to have_css "a", count: 2
expect(info).to have_css "a[rel~=nofollow]", count: 2
expect(info).to have_css "a[rel~=external]", count: 2
expect(info).not_to have_css "a[target]"
end
end