template.html (4257B)
1 <!-- SPDX-License-Identifier: AGPL-3.0-or-later
2 SPDX-FileCopyrightText: 2021-2024 JayVii <jayvii[AT]posteo[DOT]de>
3 -->
4
5 <!DOCTYPE html>
6 <html>
7 <head>
8 <meta charset="utf-8">
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
10 <title>[% feed.title %] - [% feed.description %]</title>
11 <meta name="description" content="[% feed.description %]">
12 [% IF feed.author %]
13 <meta name="author" content="[% feed.author %]">
14 [% END %]
15 <link rel="icon" type="image/png" href="assets/favicon.png">
16 <link rel="icon" type="image/png" sizes="16x16" href="assets/favicon_16.png">
17 <link rel="icon" type="image/png" sizes="32x32" href="assets/favicon_32.png">
18 <link rel="icon" type="image/png" sizes="64x64" href="assets/favicon_64.png">
19 <link rel="icon" type="image/png" sizes="128x128" href="assets/favicon_128.png">
20 <link rel="apple-touch-icon" href="assets/favicon.png">
21 <link rel="stylesheet" type="text/css" href="assets/css/simple.min.css">
22 <link rel="alternate" title="[%feed.title %]" type="application/atom+xml" href="rss.xml">
23 <link crossorigin="use-credentials" rel="manifest" href=<!--MANIFEST-->>
24 <meta name="viewport" content="width=device-width, initial-scale=1.0">
25 <style>
26 /* Always scroll smoothly */
27 * {
28 scroll-behavior: smooth;
29 }
30 /* Hide linebreaks inside articles */
31 section > br,
32 section > p > br
33 {
34 display: none;
35 }
36 /* Only show first paragraph of article content (typically the summary) */
37 .article_content > *:nth-child(n + 2) {
38 display: none;
39 }
40 .article_content {
41 margin-bottom: 1.5em;
42 }
43 /* Content should not be weighted */
44 .article_content > strong {
45 font-weight: normal;
46 }
47 /* Hide iframes and images in case they are not filtered out */
48 .article_content > iframe,
49 .article_content > img,
50 .article_content > * > img,
51 .article_content > * > iframe
52 {
53 display: none;
54 }
55 /* Rules for buttons row */
56 .button-row {
57 width: 100%;
58 display: flex;
59 }
60 .button-row > .button {
61 display: inline-flex;
62 margin-left: 5px;
63 margin-right: 5px;
64 max-height: 50px;
65 }
66 a.button > img {
67 height: 30px;
68 width: auto;
69 }
70 </style>
71 </head>
72
73 <body>
74
75 <header>
76 <nav>
77 <!-- General News -->
78 <a href="/">
79 Main
80 </a>
81 <!-- "Links" -->
82 <a href="/links.html">
83 Left
84 </a>
85 <!-- RSS Button -->
86 <a
87 href=<!--XML-->
88 >
89 RSS Feed
90 </a>
91 <!-- Privacy Policy -->
92 <a
93 href="https://www.jayvii.de/privacy/#newsjayviide"
94 >
95 Privacy
96 </a>
97 </nav>
98 <!-- Feed Title -->
99 <h1>[% feed.title | html %]</h1>
100 </header>
101
102 <main>
103
104 <!-- This is updated by find-and-replace -->
105 <!-- WORKAROUND: [% feed.modified %] is hardcoded to UTC -->
106 <p><!--UPDATED--></p>
107
108 <!-- This is updated by find-and-replace-->
109 <details>
110 <summary style="width:100%;">Feeds</summary>
111 <div style="margin-left:1em;">
112 <!--FEEDS-->
113 </div>
114 </details>
115
116 <!-- Content Entries -->
117 [% FOREACH entry IN feed.entries %]
118 <section>
119 <h2>
120 <a href="[% entry.link | url | html %]">[% entry.title | html %] ↗</a>
121 </h2>
122 <div class="article_content">
123 [% IF entry.summary.body %]
124 <p>[% entry.summary.body %]</p>
125 [% ELSE %]
126 [% entry.content.body %]
127 [% END %]
128 </div>
129
130 <div class="button-row">
131 <a class="button" href="[% entry.link | url | html %]" style="width:65px;">
132 <!--IMG src="[% entry.link | url | html %]" alt="News Source">-->
133 </a>
134 [% IF entry.issued %]
135 <stretch class="button">
136 [% entry.issued | html %]
137 </stretch>
138 [% END %]
139 </div>
140
141 </section>
142 [% END %]
143
144 </main>
145 </body>
146 </html>