Received: from mail.netlandish.com (mail.netlandish.com [174.136.98.166]) by code.netlandish.com (Postfix) with ESMTP id 6FD3A381 for <~netlandish/links-dev@lists.code.netlandish.com>; Thu, 29 May 2025 17:35:48 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.219.175; helo=mail-yb1-f175.google.com; envelope-from=peter@netlandish.com; receiver=<UNKNOWN> Authentication-Results: mail.netlandish.com; dkim=pass (1024-bit key; unprotected) header.d=netlandish.com header.i=@netlandish.com header.b=KonQ/Hat Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com [209.85.219.175]) by mail.netlandish.com (Postfix) with ESMTP id 743DA1D6432 for <~netlandish/links-dev@lists.code.netlandish.com>; Thu, 29 May 2025 17:36:12 +0000 (UTC) Received: by mail-yb1-f175.google.com with SMTP id 3f1490d57ef6-e7d9de68326so962231276.2 for <~netlandish/links-dev@lists.code.netlandish.com>; Thu, 29 May 2025 10:36:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netlandish.com; s=google; t=1748540171; x=1749144971; darn=lists.code.netlandish.com; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=uE80v2UJ5Z3QeFzp01U90SuCLjC+uxuNt8+++0htYNk=; b=KonQ/HatecGj7nTu3OiiMVptlSl5QSXvts80FUD81chEjeq+33l+J9Umz6V3U5M8MT G9OlzCjYRluYTCM39PsBQQv500aw2NeskmouuV9PmVxnNnfpbQAUvN91Dz3CrDvXJ0Hf A7xhIT41KHMkdXEnwlj+Wsycax1wihPnBcXQw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748540171; x=1749144971; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uE80v2UJ5Z3QeFzp01U90SuCLjC+uxuNt8+++0htYNk=; b=oHaRUtEP0Tz8ZdCMlE+Mm6oT+Jmp90Vvj8tfRNGSEc1QdwGlyGbaaM6sYvFZVm/Q2l ugHoBs2UvACiHr3lJm01hGHr2h7uOoUZJGKkFiiSS/ERiH5Pc9LnTpzLAJvB1ppjWKj8 noZIvmYMmRNynwvAizXCJmA+BQ8T87nn7sRLXKead3tzSfujAIz1YzJg85ICRKL+N1t2 SoX7ntL/nOTC/ABF/Ca8xkdoxBBnITxqkNmdJWM9NMzYxXfSL6lep4dksIHzle551Ihn fsCIKaDinC2YV0wjcyDH3AUMSxQ0zY45NbhLekN7jn5IRCu+z2JK4jXd9sXjQBAu+a0g f3/w== X-Gm-Message-State: AOJu0YwkBt9sbKsjDI29o+LmmGRnSa9t4La/6WqVBOt5PkbPG0eG+mXJ 7Wk6X3c85K2hMES3RVquzWnzeRZM71Is1chPnAISRTS1/7is11BFeiHAvJoBEKL6gWNtxb02O7h drnK16+Yz/Q== X-Gm-Gg: ASbGncvAFvUGGMNDuOCj5EtGJFhPBhEcnFvhjfdTL/AoQ2/JZLmiMykb88W0h6LzCSW BHG5tLjVGlWxjJsv4DCQ8birRNGqW5DHQbJF0042UgdUmlq9XEukHFGCfsbVhK0acg2Tnbkct/h SI60FKviTyhcmrn+SW9TKiGMPW6vtXzaRgFoJpuV2ImBohUBQfuMnFia+6YGzVSvnM7xXI06YLZ j/UMe5/ulU4JNgJE2+ogWoBgh8yhgwjxos6T9k0QBb58xytnfsrYcas27nk8TY0bBHHPkUdG1Yr pUcI9RoUf6Ug+vreXglLXEsoNGV9QdoZVfDui1y2whFtfeUEMaM= X-Google-Smtp-Source: AGHT+IFxy0R24iaat/QHS2wndf9lA2Y5/csYGhNOUKA6nQa+7/Uw77gEJShBkwVXuLOvp7vxmcRfSQ== X-Received: by 2002:a05:6902:2101:b0:e7f:6edc:9a3f with SMTP id 3f1490d57ef6-e7f821723admr672703276.38.1748540171282; Thu, 29 May 2025 10:36:11 -0700 (PDT) Received: from localhost ([2803:2d60:1118:5ee:b5c3:4a6a:10b:caac]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e7f73500ca4sm412316276.43.2025.05.29.10.36.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 May 2025 10:36:10 -0700 (PDT) From: Peter Sanchez <peter@netlandish.com> To: ~netlandish/links-dev@lists.code.netlandish.com Cc: Peter Sanchez <peter@netlandish.com> Subject: [PATCH links] Adding rel="nofollow" to external links to avoid the SEO spammers. Date: Thu, 29 May 2025 11:36:06 -0600 Message-ID: <20250529173608.19927-1-peter@netlandish.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Changelog-changed: Links to external sites will now have rel="nofollow" to help avoid the site from becoming a spam haven. --- templates/feed.html | 2 +- templates/link_detail.html | 4 ++-- templates/link_list.html | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/feed.html b/templates/feed.html index 9c6aa7a..b3cbb19 100644 --- a/templates/feed.html +++ b/templates/feed.html @@ -52,7 +52,7 @@ <article> <div class="d-flex items-center"> <h3 class="is-marginless mr-1"> - <a class="text-dark" href="{{.URL}}" target="_blank">{{truncate .Title 60}}</a> + <a class="text-dark" href="{{.URL}}" rel="nofollow" target="_blank">{{truncate .Title 60}}</a> {{ if showCounter . }}<a href="{{ reverse "core:bookmarks" .BaseURLHash }}" class="button outline primary tag tag-popular is-small">{{if $.isPopular}}{{ .Counter }}{{ else }}{{ .BaseURLCounter }}{{ end }}</a>{{ end }} </h3> </div> diff --git a/templates/link_detail.html b/templates/link_detail.html index 08ca228..56cb1a2 100644 --- a/templates/link_detail.html +++ b/templates/link_detail.html @@ -10,7 +10,7 @@ <header class="d-flex flex-row justify-between items-center"> <div class="d-flex flex-row items-center"> <div class="ml-1"> - <h2><a class="text-dark" href="{{reverse "core:link_redirect" .link.Hash}}">{{.link.Title}}</a></h2> + <h2><a class="text-dark" href="{{reverse "core:link_redirect" .link.Hash}}" rel="nofollow" target="_blank">{{.link.Title}}</a></h2> <div class="d-flex flex-row items-center"> {{if .IsPrivate}} <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width:20px; margin-right: 7px;"> @@ -29,7 +29,7 @@ </div> </header> {{ if eq .link.Type "LINK" }} - <p><a href="{{reverse "core:link_redirect" .link.Hash}}" target="_blank">{{stripCommonProtocol .link.URL}}</a></p> + <p><a href="{{reverse "core:link_redirect" .link.Hash}}" rel="nofollow" target="_blank">{{stripCommonProtocol .link.URL}}</a></p> {{end}} <p>{{ htmlSafe (newlinebr .link.Description) }}</p> {{if .link.Tags}} diff --git a/templates/link_list.html b/templates/link_list.html index de514ae..797285a 100644 --- a/templates/link_list.html +++ b/templates/link_list.html @@ -119,7 +119,7 @@ {{end}} {{end}} <h3 class="is-marginless mr-1"> - <a class="text-dark" href="{{.URL}}" target="_blank">{{truncate .Title 60}}</a> + <a class="text-dark" href="{{.URL}}" rel="nofollow" target="_blank">{{truncate .Title 60}}</a> {{ if not $.hideSaveCount }}{{ if showCounter . }}<a href="{{ if $.isPopular }}{{ reverse "core:bookmarks" .Hash }}{{ else }}{{ reverse "core:bookmarks" .BaseURLHash }}{{ end }}" class="button outline primary tag tag-popular is-small">{{if $.isPopular}}{{ .Counter }}{{ else }}{{ .BaseURLCounter }}{{ end }}</a>{{ end }}{{ end }} </h3> {{if $.isOrgLink}} @@ -171,7 +171,7 @@ <!-- Archived --> {{if .ArchiveURL}} - <a class="icon-link tooltip-link" href="{{.ArchiveURL}}" target="_blank" data-tooltip="{{$.pd.Data.archive}}"> + <a class="icon-link tooltip-link" href="{{.ArchiveURL}}" rel="nofollow" target="_blank" data-tooltip="{{$.pd.Data.archive}}"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6" style="width:20px;"> <path stroke-linecap="round" stroke-linejoin="round" d="m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z" /> </svg> -- 2.47.2