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" />
8 <meta name=
"keywords" content=
"Linux, Firewall, IPFire, Security, IPCop, Open Source, Free, ARM, VPN, Proxy, IDS, IPS" />
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 )}}">
14 <link rel=
"apple-touch-icon-precomposed" href=
"{{ static_url("img/apple-touch-icon-
60x60-precomposed.png
") }}">
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">
20 {% block head %}{% end block %}
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=
"/">
29 IPFire
<span class=
"has-text-primary">_
</span>
31 {% if hostname.startswith(
"fireinfo.") %}
33 {% elif hostname.startswith(
"nopaste.") %}
35 {% elif hostname.startswith(
"location.") %}
37 {% elif hostname.startswith(
"wiki.") %}
43 <a role=
"button" class=
"navbar-burger" aria-label=
"menu" aria-expanded=
"false" data-target=
"navbarMainMenu">
44 <span aria-hidden=
"true"></span>
45 <span aria-hidden=
"true"></span>
46 <span aria-hidden=
"true"></span>
49 <div class=
"navbar-menu" id=
"navbarMainMenu">
51 {% if hostname.startswith(
"www.") or hostname.startswith(
"dev.") %}
52 <div class=
"navbar-end">
53 {# Show a search bar for blog #}
54 {% if request.path.startswith(
"/blog") %}
55 <div class=
"navbar-item">
56 <form action=
"/blog" method=
"GET">
58 <div class=
"control has-icons-left">
59 <input class=
"input" type=
"text"
60 name=
"q" {% if
"q" in locals() and q %}
value=
"{{ q }}"{% end %}
61 placeholder=
"{{ _("Search Blog...
") }}">
62 <span class=
"icon is-small is-left">
63 <i class=
"fas fa-search"></i>
69 {# Show a search bar for docs #}
70 {% elif request.path.startswith(
"/docs") %}
71 <div class=
"navbar-item">
72 <form action=
"/docs/search" method=
"GET">
74 <div class=
"control has-icons-left">
75 <input class=
"input" type=
"text"
76 name=
"q" {% if
"q" in locals() and q %}
value=
"{{ q }}"{% end %}
77 placeholder=
"{{ _("Search Docs...
") }}">
78 <span class=
"icon is-small is-left">
79 <i class=
"fas fa-search"></i>
87 <a class=
"navbar-item {% if request.path == "/about
" %}is-active{% end %}" href=
"/about">{{ _(
"About") }}
</a>
89 <a class=
"navbar-item {% if request.path.startswith("/download
") %}is-active{% end %}" href=
"/download">{{ _(
"Download") }}
</a>
91 <a class=
"navbar-item {% if request.path.startswith("/blog
") %}is-active{% end %}" href=
"/blog">{{ _(
"Blog") }}
</a>
93 <a class=
"navbar-item {% if request.path == "/help
" %}is-active{% end %}" href=
"/help">{{ _(
"Help") }}
</a>
95 <div class=
"navbar-item">
96 <a class=
"button is-lwl has-text-weight-bold is-uppercase"
97 href=
"https://store.lightningwirelabs.com/?utm_source={{ hostname }}&utm_medium=navigation">
102 <div class=
"navbar-item">
103 <a class=
"button is-primary has-text-weight-bold is-uppercase"
104 href=
"https://www.ipfire.org/donate">
109 {% elif hostname ==
"fireinfo.ipfire.org" %}
110 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
111 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
112 <span class=
"fas fa-bars"></span>
115 <div class=
"collapse navbar-collapse" id=
"navbar">
116 <ul class=
"navbar-nav ml-auto">
117 {% if current_user and current_user.is_staff() %}
118 <li class=
"nav-item">
119 <a class=
"nav-link {% if request.path.startswith("/admin
") %}is-active{% end %}" href=
"/admin">
125 <li class=
"nav-item">
126 <a class=
"nav-link {% if request.path.startswith("/vendors
") %}is-active{% end %}" href=
"/vendors">
132 {% elif hostname ==
"location.ipfire.org" %}
133 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
134 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
135 <span class=
"fas fa-bars"></span>
138 <div class=
"collapse navbar-collapse" id=
"navbar">
139 <ul class=
"navbar-nav ml-auto">
140 <li class=
"nav-item">
141 <a class=
"nav-link {% if request.path == "/how-to-use
" %}is-active{% end %}" href=
"/how-to-use">
142 {{ _(
"How To Use") }}
146 <li class=
"nav-item">
147 <a class=
"nav-link {% if request.path == "/download
" %}is-active{% end %}" href=
"/download">
153 <a class=
"btn btn-primary ml-lg-2" href=
"https://www.ipfire.org/donate">
157 {% elif hostname ==
"nopaste.ipfire.org" %}
158 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
159 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
160 <span class=
"fas fa-bars"></span>
163 <div class=
"collapse navbar-collapse" id=
"navbar">
164 <ul class=
"navbar-nav ml-auto">
165 <li class=
"nav-item">
166 <a class=
"nav-link" href=
"/?mode=upload">{{ _(
"Upload File") }}
</a>
170 {% elif hostname ==
"wiki.ipfire.org" %}
171 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
172 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
173 <span class=
"fas fa-bars"></span>
176 <div class=
"collapse navbar-collapse" id=
"navbar">
177 <form class=
" ml-auto my-2 my-lg-0" action=
"/search" method=
"GET">
178 <input class=
"form-control form-control-sm" type=
"search" name=
"q"
179 placeholder=
"{{ _("Search...
") }}" aria-label=
"{{ _("Search
") }}" value=
"{% try %}{{ q }}{% except %}{% end %}">
182 <a class=
"btn btn-primary ml-lg-2" href=
"https://www.ipfire.org/donate">
192 {% block container %}
193 <div class=
"container">
194 {% block content %}{% end block %}
199 <footer class=
"footer">
200 <div class=
"container">
201 <div class=
"columns">
202 <div class=
"column is-two-fifths">
203 {# Show some profile information for users who are logged in #}
204 {% if current_user %}
205 <h4 class=
"title is-4 mb-0">{{ _(
"Hello, %s!") % current_user }}
</h4>
207 <div class=
"level is-mobile">
208 <div class=
"level-left">
209 <a class=
"level-item" href=
"/users/{{ current_user.uid }}">
210 {{ _(
"My Profile") }}
213 <a class=
"level-item" href=
"/logout">
219 {# Otherwise encourage people to join #}
221 <p class=
"is-size-4">
222 <span class=
"has-text-weight-bold">IPFire
</span><span class=
"has-text-primary has-text-weight-bold">_
</span>People
226 Join the community and sign up for our newsletter
229 <a class=
"button is-primary is-outlined is-medium
230 has-text-black has-text-weight-bold" href=
"/register">
244 <a href=
"https://wiki.ipfire.org">
254 <a href=
"https://wiki.ipfire.org/devel">
255 {{ _(
"Development") }}
274 <a href=
"https://community.ipfire.org/">
286 {% if current_user and current_user.is_staff() %}
298 <div class=
"column is-one-fifth">
300 <a class=
"button is-primary is-fullwidth is-medium has-text-weight-bold is-uppercase"
301 href=
"https://www.ipfire.org/donate">
307 <div class=
"level is-mobile">
308 <div class=
"level-item">
309 <a href=
"https://social.ipfire.org/@news">
310 <i class=
"fa-brands fa-mastodon"></i>
313 <div class=
"level-item">
314 <a href=
"https://twitter.com/ipfire">
315 <i class=
"fa-brands fa-twitter"></i>
318 <div class=
"level-item">
319 <a href=
"https://linkedin.com/company/ipfire">
320 <i class=
"fa-brands fa-linkedin-in"></i>
331 <script src=
"{{ static_url("js/jquery-
3.6.0.min.js
") }}"></script>
332 <script src=
"{{ static_url("js/site.js
") }}"></script>
333 {% block javascript %}{% end block %}