mirror of
https://github.com/miniflux/v2.git
synced 2025-08-01 17:38:37 +00:00
Rationale: Opening links in the current tab is the default browser behavior. Using `target="_blank"` on external links can lead to accessibility issues and override user preferences. It may also interfere with assistive technologies and expected browser behavior. To maintain backward compatibility, this option is enabled by default (`true`), which adds `target="_blank"` to links.
92 lines
5.2 KiB
HTML
92 lines
5.2 KiB
HTML
{{ define "item_meta" }}
|
|
<div class="item-meta">
|
|
<ul class="item-meta-info">
|
|
<li class="item-meta-info-title">
|
|
<a href="{{ route "feedEntries" "feedID" .entry.Feed.ID }}" title="{{ .entry.Feed.SiteURL }}" data-feed-link="true">{{ truncate .entry.Feed.Title 35 }}</a>
|
|
</li>
|
|
<li class="item-meta-info-timestamp">
|
|
<time datetime="{{ isodate .entry.Date }}" title="{{ isodate .entry.Date }}">{{ elapsed .user.Timezone .entry.Date }}</time>
|
|
</li>
|
|
{{ if and .user.ShowReadingTime (gt .entry.ReadingTime 0) }}
|
|
<li class="item-meta-info-reading-time">
|
|
<span>
|
|
{{ plural "entry.estimated_reading_time" .entry.ReadingTime .entry.ReadingTime }}
|
|
</span>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
<ul class="item-meta-icons">
|
|
<li class="item-meta-icons-read">
|
|
<button
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
title="{{ t "entry.status.title" }}"
|
|
data-toggle-status="true"
|
|
data-label-loading="{{ t "entry.state.saving" }}"
|
|
data-label-read="{{ t "entry.status.mark_as_read" }}"
|
|
data-label-unread="{{ t "entry.status.mark_as_unread" }}"
|
|
data-value="{{ if eq .entry.Status "read" }}read{{ else }}unread{{ end }}"
|
|
>{{ if eq .entry.Status "read" }}{{ icon "unread" }}{{ else }}{{ icon "read" }}{{ end }}<span class="icon-label">{{ if eq .entry.Status "read" }}{{ t "entry.status.mark_as_unread" }}{{ else }}{{ t "entry.status.mark_as_read" }}{{ end }}</span></button>
|
|
</li>
|
|
<li class="item-meta-icons-star">
|
|
<button
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
data-toggle-bookmark="true"
|
|
data-bookmark-url="{{ route "toggleBookmark" "entryID" .entry.ID }}"
|
|
data-label-loading="{{ t "entry.state.saving" }}"
|
|
data-label-star="{{ t "entry.bookmark.toggle.on" }}"
|
|
data-label-unstar="{{ t "entry.bookmark.toggle.off" }}"
|
|
data-value="{{ if .entry.Starred }}star{{ else }}unstar{{ end }}"
|
|
>{{ if .entry.Starred }}{{ icon "unstar" }}{{ else }}{{ icon "star" }}{{ end }}<span class="icon-label">{{ if .entry.Starred }}{{ t "entry.bookmark.toggle.off" }}{{ else }}{{ t "entry.bookmark.toggle.on" }}{{ end }}</span></button>
|
|
</li>
|
|
{{ if .entry.ShareCode }}
|
|
<li class="item-meta-icons-share">
|
|
<a href="{{ route "sharedEntry" "shareCode" .entry.ShareCode }}"
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
title="{{ t "entry.shared_entry.title" }}"
|
|
{{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}>{{ icon "share" }}<span class="icon-label">{{ t "entry.shared_entry.label" }}</span></a>
|
|
</li>
|
|
<li class="item-meta-icons-delete">
|
|
<button
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
data-confirm="true"
|
|
data-url="{{ route "unshareEntry" "entryID" .entry.ID }}"
|
|
data-label-question="{{ t "confirm.question" }}"
|
|
data-label-yes="{{ t "confirm.yes" }}"
|
|
data-label-no="{{ t "confirm.no" }}"
|
|
data-label-loading="{{ t "confirm.loading" }}">{{ icon "delete" }}<span class="icon-label">{{ t "entry.unshare.label" }}</span></button>
|
|
</li>
|
|
{{ end }}
|
|
{{ if .hasSaveEntry }}
|
|
<li>
|
|
<button
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
title="{{ t "entry.save.title" }}"
|
|
data-save-entry="true"
|
|
data-save-url="{{ route "saveEntry" "entryID" .entry.ID }}"
|
|
data-label-loading="{{ t "entry.state.saving" }}"
|
|
data-label-done="{{ t "entry.save.completed" }}"
|
|
>{{ icon "save" }}<span class="icon-label">{{ t "entry.save.label" }}</span></button>
|
|
</li>
|
|
{{ end }}
|
|
<li class="item-meta-icons-external-url">
|
|
<a href="{{ .entry.URL | safeURL }}"
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
{{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}
|
|
rel="noopener noreferrer"
|
|
referrerpolicy="no-referrer"
|
|
data-original-link="{{ .user.MarkReadOnView }}">{{ icon "external-link" }}<span class="icon-label">{{ t "entry.external_link.label" }}</span></a>
|
|
</li>
|
|
{{ if .entry.CommentsURL }}
|
|
<li class="item-meta-icons-comments">
|
|
<a href="{{ .entry.CommentsURL | safeURL }}"
|
|
aria-describedby="entry-title-{{ .entry.ID }}"
|
|
title="{{ t "entry.comments.title" }}"
|
|
{{ if $.user.OpenExternalLinksInNewTab }}target="_blank"{{ end }}
|
|
rel="noopener noreferrer"
|
|
referrerpolicy="no-referrer"
|
|
data-comments-link="true">{{ icon "comment" }}<span class="icon-label">{{ t "entry.comments.label" }}</span></a>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
</div>
|
|
{{ end }}
|