|
|
@@ -97,6 +97,94 @@ var templateCommonMap = map[string]string{
|
|
|
<a href="{{ route "refreshAllFeeds" }}">{{ t "menu.refresh_all_feeds" }}</a>
|
|
|
</li>
|
|
|
</ul>
|
|
|
+{{ end }}`,
|
|
|
+ "icons": `<!--
|
|
|
+
|
|
|
+MIT License
|
|
|
+
|
|
|
+Copyright (c) 2020 Paweł Kuna
|
|
|
+
|
|
|
+Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
+of this software and associated documentation files (the "Software"), to deal
|
|
|
+in the Software without restriction, including without limitation the rights
|
|
|
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
+copies of the Software, and to permit persons to whom the Software is
|
|
|
+furnished to do so, subject to the following conditions:
|
|
|
+
|
|
|
+The above copyright notice and this permission notice shall be included in all
|
|
|
+copies or substantial portions of the Software.
|
|
|
+
|
|
|
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
+SOFTWARE.
|
|
|
+
|
|
|
+-->
|
|
|
+{{ define "icon_read" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-circle-check" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <circle cx="12" cy="12" r="9" />
|
|
|
+ <path d="M9 12l2 2l4 -4" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_unread" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-circle-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <circle cx="12" cy="12" r="9" />
|
|
|
+ <path d="M10 10l4 4m0 -4l-4 4" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_star" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-star" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <path d="M12 17.75l-6.172 3.245 1.179-6.873-4.993-4.867 6.9-1.002L12 2l3.086 6.253 6.9 1.002-4.993 4.867 1.179 6.873z" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_save" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-download" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2" />
|
|
|
+ <polyline points="7 11 12 16 17 11" />
|
|
|
+ <line x1="12" y1="4" x2="12" y2="16" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_scraper" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-cloud-download" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <path d="M19 18a3.5 3.5 0 0 0 0 -7h-1a5 4.5 0 0 0 -11 -2a4.6 4.4 0 0 0 -2.1 8.4" />
|
|
|
+ <line x1="12" y1="13" x2="12" y2="22" />
|
|
|
+ <polyline points="9 19 12 22 15 19" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_share" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-share" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <circle cx="6" cy="12" r="3" />
|
|
|
+ <circle cx="18" cy="6" r="3" />
|
|
|
+ <circle cx="18" cy="18" r="3" />
|
|
|
+ <line x1="8.7" y1="10.7" x2="15.3" y2="7.3" />
|
|
|
+ <line x1="8.7" y1="13.3" x2="15.3" y2="16.7" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_comment" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-message-circle" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <path d="M3 20l1.3 -3.9a9 8 0 1 1 3.4 2.9l-4.7 1" />
|
|
|
+ <line x1="12" y1="12" x2="12" y2="12.01" />
|
|
|
+ <line x1="8" y1="12" x2="8" y2="12.01" />
|
|
|
+ <line x1="16" y1="12" x2="16" y2="12.01" />
|
|
|
+</svg>
|
|
|
+{{ end }}
|
|
|
+{{ define "icon_original" }}
|
|
|
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-external-link" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
|
+ <path stroke="none" d="M0 0h24v24H0z"/>
|
|
|
+ <path d="M11 7h-5a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-5" />
|
|
|
+ <line x1="10" y1="14" x2="20" y2="4" />
|
|
|
+ <polyline points="15 4 20 4 20 9" />
|
|
|
+</svg>
|
|
|
{{ end }}`,
|
|
|
"item_meta": `{{ define "item_meta" }}
|
|
|
<div class="item-meta">
|
|
|
@@ -108,7 +196,7 @@ var templateCommonMap = map[string]string{
|
|
|
<time datetime="{{ isodate .entry.Date }}" title="{{ isodate .entry.Date }}">{{ elapsed .user.Timezone .entry.Date }}</time>
|
|
|
</li>
|
|
|
</ul>
|
|
|
- <ul>
|
|
|
+ <ul class="item-meta-icons">
|
|
|
{{ if .hasSaveEntry }}
|
|
|
<li>
|
|
|
<a href="#"
|
|
|
@@ -117,15 +205,24 @@ var templateCommonMap = map[string]string{
|
|
|
data-save-url="{{ route "saveEntry" "entryID" .entry.ID }}"
|
|
|
data-label-loading="{{ t "entry.state.saving" }}"
|
|
|
data-label-done="{{ t "entry.save.completed" }}"
|
|
|
- >{{ t "entry.save.label" }}</a>
|
|
|
+ >{{ template "icon_save" }}<span class="icon-label">{{ t "entry.save.label" }}</span></a>
|
|
|
</li>
|
|
|
{{ end }}
|
|
|
<li>
|
|
|
- <a href="{{ .entry.URL | safeURL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "entry.original.label" }}</a>
|
|
|
+ <a href="{{ .entry.URL | safeURL }}"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ referrerpolicy="no-referrer"
|
|
|
+ data-original-link="true">{{ template "icon_original" }}<span class="icon-label">{{ t "entry.original.label" }}</span></a>
|
|
|
</li>
|
|
|
{{ if .entry.CommentsURL }}
|
|
|
<li>
|
|
|
- <a href="{{ .entry.CommentsURL | safeURL }}" title="{{ t "entry.comments.title" }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-comments-link="true">{{ t "entry.comments.label" }}</a>
|
|
|
+ <a href="{{ .entry.CommentsURL | safeURL }}"
|
|
|
+ title="{{ t "entry.comments.title" }}"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ referrerpolicy="no-referrer"
|
|
|
+ data-comments-link="true">{{ template "icon_comment" }}<span class="icon-label">{{ t "entry.comments.label" }}</span></a>
|
|
|
</li>
|
|
|
{{ end }}
|
|
|
<li>
|
|
|
@@ -136,16 +233,16 @@ var templateCommonMap = map[string]string{
|
|
|
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 }}★ {{ t "entry.bookmark.toggle.off" }}{{ else }}☆ {{ t "entry.bookmark.toggle.on" }}{{ end }}</a>
|
|
|
+ ><span class="icon-label">{{ if .entry.Starred }}★ {{ t "entry.bookmark.toggle.off" }}{{ else }}☆ {{ t "entry.bookmark.toggle.on" }}{{ end }}</span></a>
|
|
|
</li>
|
|
|
<li>
|
|
|
<a href="#"
|
|
|
title="{{ t "entry.status.title" }}"
|
|
|
data-toggle-status="true"
|
|
|
- data-label-read="✔︎ {{ t "entry.status.read" }}"
|
|
|
+ data-label-read="✔ {{ t "entry.status.read" }}"
|
|
|
data-label-unread="✘ {{ t "entry.status.unread" }}"
|
|
|
data-value="{{ if eq .entry.Status "read" }}read{{ else }}unread{{ end }}"
|
|
|
- >{{ if eq .entry.Status "read" }}✘ {{ t "entry.status.unread" }}{{ else }}✔︎ {{ t "entry.status.read" }}{{ end }}</a>
|
|
|
+ ><span class="icon-label">{{ if eq .entry.Status "read" }}✘ {{ t "entry.status.unread" }}{{ else }}✔ {{ t "entry.status.read" }}{{ end }}</span></a>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
@@ -358,7 +455,8 @@ var templateCommonMapChecksums = map[string]string{
|
|
|
"entry_pagination": "cdca9cf12586e41e5355190b06d9168f57f77b85924d1e63b13524bc15abcbf6",
|
|
|
"feed_list": "db406e7cb81292ce1d974d63f63270384a286848b2e74fe36bf711b4eb5717dd",
|
|
|
"feed_menu": "318d8662dda5ca9dfc75b909c8461e79c86fb5082df1428f67aaf856f19f4b50",
|
|
|
- "item_meta": "d046305e8935ecd8643a94d28af384df29e40fc7ce334123cd057a6522bac23f",
|
|
|
+ "icons": "d9b4105a89364d913ad975b569286e6bd79f270da995856d21a10537e42b93f4",
|
|
|
+ "item_meta": "d7aac9a904f07c57e35c9756c3fafb03e6b65c7e72a301e81cb62d99be2bd866",
|
|
|
"layout": "a1f67b8908745ee4f9cee6f7bbbb0b242d4dcc101207ad4a9d67242b45683299",
|
|
|
"pagination": "7b61288e86283c4cf0dc83bcbf8bf1c00c7cb29e60201c8c0b633b2450d2911f",
|
|
|
"settings_menu": "e2b777630c0efdbc529800303c01d6744ed3af80ec505ac5a5b3f99c9b989156",
|