]> git.ipfire.org Git - ipfire.org.git/blob - src/templates/base.html
docs: Rename to "Documentation"
[ipfire.org.git] / src / templates / base.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <title>{{ hostname }} - {% block title %}{{ _("No title given") }}{% end block %}</title>
5 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6 <meta name="author" content="IPFire.org - IPFire Development Team" />
7
8 <meta name="keywords" content="Linux, Firewall, IPFire, Security, IPCop, Open Source, Free, ARM, VPN, Proxy, IDS, IPS" />
9
10 <link rel="icon" sizes="192x192" href="{{ static_url("img/apple-touch-icon-192x192-precomposed.png") }}">
11 {% for res in ("72x72", "76x76", "120x120", "144x144", "152x152", "180x180") %}
12 <link rel="apple-touch-icon-precomposed" sizes="{{ res }}" href="{{ static_url("img/apple-touch-icon-%s-precomposed.png" % res )}}">
13 {% end %}
14 <link rel="apple-touch-icon-precomposed" href="{{ static_url("img/apple-touch-icon-60x60-precomposed.png") }}">
15
16 <!-- styling stuff -->
17 <link rel="stylesheet" type="text/css" href="{{ static_url("main.css") }}" />
18 <meta name="viewport" content="width=device-width, initial-scale=1.0">
19
20 {% block head %}{% end block %}
21 </head>
22
23 <body class="is-flex is-flex-direction-column">
24 <nav class="navbar" role="navigation" aria-label="main navigation">
25 <div class="container">
26 <div class="navbar-brand">
27 <a class="navbar-item is-size-4" href="/">
28 <strong>
29 {% if request.path.startswith("/projects/location") %}
30 IPFire<span class="has-text-primary">_</span>Location
31 {% elif hostname.startswith("fireinfo.") %}
32 IPFire<span class="has-text-primary">_</span>Fireinfo
33 {% elif hostname.startswith("nopaste.") %}
34 IPFire<span class="has-text-primary">_</span>Nopaste
35 {% else %}
36 IPFire<span class="has-text-primary">_</span>
37 {% end %}
38 </strong>
39 </a>
40
41 <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMainMenu">
42 <span aria-hidden="true"></span>
43 <span aria-hidden="true"></span>
44 <span aria-hidden="true"></span>
45 </a>
46 </div>
47 <div class="navbar-menu" id="navbarMainMenu">
48 {% block menu %}
49 {% if hostname.startswith("www.") or hostname.startswith("dev.") %}
50 <div class="navbar-end">
51 {# Show a search bar for blog #}
52 {% if request.path.startswith("/blog") %}
53 {# Navigation for Blog Authors #}
54 {% if current_user and current_user.is_blog_author() %}
55 <a class="navbar-item is-tab {% if request.path == "/blog/drafts" %}is-active{% end %}" href="/blog/drafts">
56 {{ _("My Drafts") }}
57 </a>
58 {% end %}
59
60 <div class="navbar-item">
61 <form action="/blog" method="GET">
62 <div class="field">
63 <div class="control has-icons-left">
64 <input class="input" type="text"
65 name="q" {% if "q" in locals() and q %}value="{{ q }}"{% end %}
66 placeholder="{{ _("Search Blog...") }}">
67 <span class="icon is-small is-left">
68 <i class="fas fa-search"></i>
69 </span>
70 </div>
71 </div>
72 </form>
73 </div>
74 {# Show a search bar for docs #}
75 {% elif request.path.startswith("/docs") %}
76 <div class="navbar-item">
77 <form action="/docs/search" method="GET">
78 <div class="field">
79 <div class="control has-icons-left">
80 <input class="input" type="text"
81 name="q" {% if "q" in locals() and q %}value="{{ q }}"{% end %}
82 placeholder="{{ _("Search Documentation...") }}">
83 <span class="icon is-small is-left">
84 <i class="fas fa-search"></i>
85 </span>
86 </div>
87 </div>
88 </form>
89 </div>
90 {% end %}
91
92 {# Location #}
93 {% if request.path.startswith("/projects/location") %}
94 <a class="navbar-item is-tab
95 {% if request.path == "/projects/location/how-to-use" %}is-active{% end %}"
96 href="/projects/location/how-to-use">
97 {{ _("How To Use") }}
98 </a>
99
100 <a class="navbar-item is-tab
101 {% if request.path.startswith("/projects/location/download") %}is-active{% end %}"
102 href="/projects/location/download">
103 {{ _("Download") }}
104 </a>
105
106 {# Main #}
107 {% else %}
108 <a class="navbar-item is-tab {% if request.path == "/about" %}is-active{% end %}" href="/about">{{ _("About") }}</a>
109
110 <a class="navbar-item is-tab {% if request.path.startswith("/docs") %}is-active{% end %}" href="/docs">{{ _("Documentation") }}</a>
111
112 <a class="navbar-item is-tab {% if request.path.startswith("/download") %}is-active{% end %}" href="/download">{{ _("Download") }}</a>
113
114 <a class="navbar-item is-tab {% if request.path.startswith("/blog") %}is-active{% end %}" href="/blog">{{ _("Blog") }}</a>
115
116 <a class="navbar-item is-tab {% if request.path == "/help" %}is-active{% end %}" href="/help">{{ _("Help") }}</a>
117 {% end %}
118
119 <div class="navbar-item">
120 <a class="button is-lwl has-text-weight-bold is-uppercase"
121 href="https://store.lightningwirelabs.com/?utm_source={{ hostname }}&utm_medium=navigation">
122 {{ _("Buy") }}
123 </a>
124 </div>
125
126 <div class="navbar-item">
127 <a class="button is-primary has-text-weight-bold is-uppercase"
128 href="/donate">
129 {{ _("Donate") }}
130 </a>
131 </div>
132
133 {% if current_user %}
134 <div class="navbar-item has-dropdown is-hoverable">
135 <a class="navbar-link is-arrowless" href="/users/{{ current_user.uid }}">
136 <figure class="image">
137 <img class="is-rounded" style="width: auto" src="{{ current_user.avatar_url(128) }}">
138 </figure>
139 </a>
140
141 <div class="navbar-dropdown">
142 <a class="navbar-item" href="/users/{{ current_user.uid }}/passwd">
143 {{ _("Change Password") }}
144 </a>
145
146 <hr class="navbar-divider">
147
148 <a class="navbar-item" href="/logout">
149 {{ _("Logout")}}
150 </a>
151 </div>
152 </div>
153 {% end %}
154 </div>
155 {% elif hostname.startswith("fireinfo.") %}
156 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
157 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
158 <span class="fas fa-bars"></span>
159 </button>
160
161 <div class="collapse navbar-collapse" id="navbar">
162 <ul class="navbar-nav ml-auto">
163 {% if current_user and current_user.is_staff() %}
164 <li class="nav-item">
165 <a class="nav-link {% if request.path.startswith("/admin") %}is-active{% end %}" href="/admin">
166 {{ _("Admin") }}
167 </a>
168 </li>
169 {% end %}
170
171 <li class="nav-item">
172 <a class="nav-link {% if request.path.startswith("/vendors") %}is-active{% end %}" href="/vendors">
173 {{ _("Vendors") }}
174 </a>
175 </li>
176 </ul>
177 </div>
178 {% elif hostname.startswith("nopaste.") %}
179 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
180 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
181 <span class="fas fa-bars"></span>
182 </button>
183
184 <div class="collapse navbar-collapse" id="navbar">
185 <ul class="navbar-nav ml-auto">
186 <li class="nav-item">
187 <a class="nav-link" href="/?mode=upload">{{ _("Upload File") }}</a>
188 </li>
189 </ul>
190 </div>
191 {% end %}
192 {% end block %}
193 </div>
194 </div>
195 </nav>
196
197 <div class="is-flex-grow-1 is-flex-shrink-0">
198 {% block container %}
199 <div class="container">
200 {% block content %}{% end block %}
201 </div>
202 {% end block %}
203 </div>
204
205 {% block footer %}
206 <footer class="footer is-flex-shrink-0">
207 <div class="container">
208 {# Encourage people to join #}
209 {% if not current_user %}
210 <div class="columns">
211 <div class="column is-one-fifth">
212 <a class="button is-primary is-medium is-fullwidth" href="/register">
213 {{ _("Join Now") }}
214 </a>
215 </div>
216
217 <div class="column is-one-quarter">
218 <div class="block">
219 <p class="title is-5">
220 {{ _("Join our community and sign up to our newsletter") }}
221 </p>
222 </div>
223 </div>
224 </div>
225
226 <div class="columns">
227 <div class="column is-one-fifth">
228 <a class="button is-primary is-medium is-outlined is-fullwidth" href="/login">
229 {{ _("Log In") }}
230 </a>
231 </div>
232 </div>
233 {% end %}
234
235 <div class="level">
236 <div class="level-left">
237 <div class="level-item">
238 {{ year }} &copy; IPFire.org
239 </div>
240
241 <div class="level-item">
242 <a href="/legal">{{ _("Legal") }}</a>
243 </div>
244
245 <div class="level-item">
246 <a href="/sitemap">{{ _("Sitemap") }}</a>
247 </div>
248 </div>
249
250 <div class="level-right">
251 <div class="level-item">
252 <a href="https://social.ipfire.org/@news" title="{{ _("Mastodon") }}">
253 <i class="fa-brands fa-mastodon px-2"></i>
254 </a>
255 </div>
256 <div class="level-item">
257 <a href="https://twitter.com/ipfire" title="{{ _("Twitter") }}">
258 <i class="fa-brands fa-twitter px-2"></i>
259 </a>
260 </div>
261 <div class="level-item">
262 <a href="https://linkedin.com/company/ipfire" title="{{ _("LinkedIn") }}">
263 <i class="fa-brands fa-linkedin-in px-2"></i>
264 </a>
265 </div>
266 </div>
267 </div>
268 </div>
269 </footer>
270 {% end block %}
271
272 <script src="{{ static_url("js/jquery-3.6.0.min.js") }}"></script>
273 <script src="{{ static_url("js/site.js") }}"></script>
274 {% block javascript %}{% end block %}
275 </body>
276 </html>