Просмотр исходного кода

refactor(template): remove some useless attributes

When `target="_blank"` is used, it has the same effect than rel="noopener",
so we can remove the latter. Moreover, since we're already setting `<meta
name="referrer" content="no-referrer" />` in the `<head>`, there is no need to
set it on every single link in the HTML, as we're rendering everything in the
same origin.

Note that we need to keep adding those in the sanitizer, the entry content HTML
can be consumed by third-party clients via the Miniflux/GoogleReader/Fever API.

See https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/noopener
and https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Referrer-Policy#integration_with_html
jvoisin 10 месяцев назад
Родитель
Сommit
dd8011a4aa

+ 1 - 1
internal/template/templates/common/feed_list.html

@@ -35,7 +35,7 @@
             <div class="item-meta">
             <div class="item-meta">
                 <ul class="item-meta-info">
                 <ul class="item-meta-info">
                     <li class="item-meta-info-site-url" dir="auto">
                     <li class="item-meta-info-site-url" dir="auto">
-                        <a href="{{ .SiteURL | safeURL }}" title="{{ .SiteURL }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }} rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="{{ $.user.MarkReadOnView }}">
+                        <a href="{{ .SiteURL | safeURL }}" title="{{ .SiteURL }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }} data-original-link="{{ $.user.MarkReadOnView }}">
                             {{ domain .SiteURL }}
                             {{ domain .SiteURL }}
                         </a>
                         </a>
                     </li>
                     </li>

+ 2 - 6
internal/template/templates/common/item_meta.html

@@ -69,9 +69,7 @@
         <li class="item-meta-icons-external-url">
         <li class="item-meta-icons-external-url">
             <a href="{{ .entry.URL | safeURL  }}"
             <a href="{{ .entry.URL | safeURL  }}"
                 aria-describedby="entry-title-{{ .entry.ID }}"
                 aria-describedby="entry-title-{{ .entry.ID }}"
-                {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}
-                rel="noopener noreferrer"
-                referrerpolicy="no-referrer"
+                {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}
                 data-original-link="{{ .user.MarkReadOnView }}">{{ icon "external-link" }}<span class="icon-label">{{ t "entry.external_link.label" }}</span></a>
                 data-original-link="{{ .user.MarkReadOnView }}">{{ icon "external-link" }}<span class="icon-label">{{ t "entry.external_link.label" }}</span></a>
         </li>
         </li>
         {{ if .entry.CommentsURL }}
         {{ if .entry.CommentsURL }}
@@ -79,9 +77,7 @@
                 <a href="{{ .entry.CommentsURL | safeURL  }}"
                 <a href="{{ .entry.CommentsURL | safeURL  }}"
                     aria-describedby="entry-title-{{ .entry.ID }}"
                     aria-describedby="entry-title-{{ .entry.ID }}"
                     title="{{ t "entry.comments.title" }}"
                     title="{{ t "entry.comments.title" }}"
-                    {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}
-                    rel="noopener noreferrer"
-                    referrerpolicy="no-referrer"
+                    {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}
                     data-comments-link="true">{{ icon "comment" }}<span class="icon-label">{{ t "entry.comments.label" }}</span></a>
                     data-comments-link="true">{{ icon "comment" }}<span class="icon-label">{{ t "entry.comments.label" }}</span></a>
             </li>
             </li>
         {{ end -}}
         {{ end -}}

+ 1 - 1
internal/template/templates/views/choose_subscription.html

@@ -41,7 +41,7 @@
     {{ range .subscriptions }}
     {{ range .subscriptions }}
         <div class="radio-group">
         <div class="radio-group">
             <label title="{{ .URL | safeURL  }}"><input type="radio" name="url" value="{{ .URL | safeURL  }}"> {{ .Title }}</label> ({{ .Type }})
             <label title="{{ .URL | safeURL  }}"><input type="radio" name="url" value="{{ .URL | safeURL  }}"> {{ .Title }}</label> ({{ .Type }})
-            <small title="Type = {{ .Type }}"><a href="{{ .URL | safeURL  }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }} rel="noopener noreferrer" referrerpolicy="no-referrer">{{ .URL | safeURL  }}</a></small>
+            <small title="Type = {{ .Type }}"><a href="{{ .URL | safeURL  }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}>{{ .URL | safeURL  }}</a></small>
         </div>
         </div>
     {{ end }}
     {{ end }}
 
 

+ 4 - 8
internal/template/templates/views/entry.html

@@ -43,7 +43,7 @@
 <section class="entry" data-id="{{ .entry.ID }}" aria-labelledby="page-header-title">
 <section class="entry" data-id="{{ .entry.ID }}" aria-labelledby="page-header-title">
     <header class="entry-header">
     <header class="entry-header">
         <h1 id="page-header-title" dir="auto">
         <h1 id="page-header-title" dir="auto">
-            <a href="{{ .entry.URL | safeURL }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }} rel="noopener noreferrer" referrerpolicy="no-referrer">{{ .entry.Title }}</a>
+            <a href="{{ .entry.URL | safeURL }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}>{{ .entry.Title }}</a>
         </h1>
         </h1>
         {{ if .user }}
         {{ if .user }}
         <div class="entry-actions">
         <div class="entry-actions">
@@ -128,9 +128,7 @@
                     <a href="{{ .entry.CommentsURL | safeURL }}"
                     <a href="{{ .entry.CommentsURL | safeURL }}"
                         class="page-link"
                         class="page-link"
                         title="{{ t "entry.comments.title" }}"
                         title="{{ t "entry.comments.title" }}"
-                        {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}
-                        rel="noopener noreferrer"
-                        referrerpolicy="no-referrer"
+                        {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}
                         data-comments-link="true"
                         data-comments-link="true"
                         >{{ icon "comment" }}<span class="icon-label">{{ t "entry.comments.label" }}</span></a>
                         >{{ icon "comment" }}<span class="icon-label">{{ t "entry.comments.label" }}</span></a>
                 </li>
                 </li>
@@ -207,9 +205,7 @@
         <div class="entry-external-link">
         <div class="entry-external-link">
             <a
             <a
                 href="{{ .entry.URL | safeURL  }}"
                 href="{{ .entry.URL | safeURL  }}"
-                {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}
-                rel="noopener noreferrer"
-                referrerpolicy="no-referrer"
+                {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}
                 data-original-link="{{ $.user.MarkReadOnView }}">{{ .entry.URL }}</span></a>
                 data-original-link="{{ $.user.MarkReadOnView }}">{{ .entry.URL }}</span></a>
         </div>
         </div>
         <div class="entry-date">
         <div class="entry-date">
@@ -306,7 +302,7 @@
         {{ end }}
         {{ end }}
 
 
         <div class="entry-enclosure-download">
         <div class="entry-enclosure-download">
-            <a href="{{ .URL | safeURL }}" title="{{ t "action.download" }}{{ if gt .Size 0 }} - {{ formatFileSize .Size }}{{ end }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }} rel="noopener noreferrer" referrerpolicy="no-referrer">{{ .URL | safeURL  }}</a>
+            <a href="{{ .URL | safeURL }}" title="{{ t "action.download" }}{{ if gt .Size 0 }} - {{ formatFileSize .Size }}{{ end }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }}>{{ .URL | safeURL  }}</a>
             <small>{{ if gt .Size 0 }} - <strong>{{ formatFileSize .Size }}</strong>{{ end }}</small>
             <small>{{ if gt .Size 0 }} - <strong>{{ formatFileSize .Size }}</strong>{{ end }}</small>
         </div>
         </div>
     </div>
     </div>

+ 1 - 1
internal/template/templates/views/feed_entries.html

@@ -3,7 +3,7 @@
 {{ define "page_header"}}
 {{ define "page_header"}}
 <section class="page-header" aria-labelledby="page-header-title">
 <section class="page-header" aria-labelledby="page-header-title">
     <h1 id="page-header-title" dir="auto">
     <h1 id="page-header-title" dir="auto">
-        <a href="{{ .feed.SiteURL | safeURL  }}" title="{{ .feed.SiteURL }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }} rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="{{ .user.MarkReadOnView }}">{{ .feed.Title }}</a>
+        <a href="{{ .feed.SiteURL | safeURL  }}" title="{{ .feed.SiteURL }}" {{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ else }}rel="noopener"{{ end }} data-original-link="{{ .user.MarkReadOnView }}">{{ .feed.Title }}</a>
         <span aria-hidden="true">({{ .total }})</span>
         <span aria-hidden="true">({{ .total }})</span>
     </h1>
     </h1>
     <span class="sr-only">
     <span class="sr-only">