]> git.ipfire.org Git - ipfire.org.git/blob - src/templates/base.html
Make the navbar static and dark all the time
[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 <meta name="description" content="{{ _("IPFire is a free firewall distribution based on Linux.") }}" />
10
11 <!-- styling stuff -->
12 <link rel="stylesheet" type="text/css" href="{{ static_url("main.css") }}" />
13 <meta name="viewport" content="width=device-width, initial-scale=1.0">
14
15 {% block head %}{% end block %}
16 </head>
17
18 <body id="page-top">
19 <nav class="navbar navbar-dark navbar-expand-lg">
20 <div class="container">
21 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
22 aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
23 <svg class="icon i_hamburger"><use xlink:href="#hamburger"/></svg>
24 </button>
25
26 <a class="navbar-brand mx-auto" href="/">
27 <strong>IPFire</strong> {% block subtitle %}{% end block %}
28 </a>
29
30 <div class="collapse navbar-collapse" id="navbar">
31 {% block menu %}
32 {% module Menu() %}
33 {% end block %}
34 </div>
35
36 <a class="btn btn-primary btn-donate ml-2 d-none d-sm-block" href="/donate">
37 <svg class="icon i_heart"><use xlink:href="#heart"/></svg>
38 {{ _("Donate") }}
39 </a>
40 </div>
41 </nav>
42
43 {% block container %}
44 <div class="container">
45 {% block body %}{% end block %}
46 {% block content %}{% end block %}
47 </div>
48 {% end block %}
49
50 {% block footer %}
51 <footer class="footer">
52 <div class="container pb-3">
53 <div class="row mb-6">
54 <div class="col-6 col-sm-5 offset-sm-2 col-md-3 offset-md-0 col-lg-2 mb-5">
55 <h4>{{ _("About") }}</h4>
56
57 <ul class="list-unstyled">
58 <li>
59 <a href="https://www.ipfire.org/about">{{ _("About IPFire") }}</a>
60 </li>
61 <li>
62 <a href="https://downloads.ipfire.org">{{ _("Download") }}</a>
63 </li>
64 <li>
65 <a href="https://blog.ipfire.org">{{ _("Blog") }}</a>
66 </li>
67 <li>
68 <a href="https://www.ipfire.org/legal">{{ _("Legal") }}</a>
69 </li>
70 </ul>
71 </div>
72
73 <div class="col-6 col-sm-5 col-md-3 col-lg-2 mb-5">
74 <h4>{{ _("Support") }}</h4>
75
76 <ul class="list-unstyled">
77 <li>
78 <a href="https://www.ipfire.org/get-support#professional">{{ _("Professional Support") }}</a>
79 </li>
80 <li>
81 <a href="https://wiki.ipfire.org">{{ _("Documentation") }}</a>
82 </li>
83 </ul>
84 </div>
85
86 <div class="col-6 col-sm-5 offset-sm-2 col-md-3 offset-md-0 col-lg-2 mb-5">
87 <h4>{{ _("Community") }}</h4>
88
89 <ul class="list-unstyled">
90 <li>
91 <a href="https://forum.ipfire.org">{{ _("Forum") }}</a>
92 </li>
93 </ul>
94 </div>
95
96 <div class="col-6 col-sm-5 col-md-3 col-lg-2 mb-6">
97 <h4>{{ _("Development") }}</h4>
98
99 <ul class="list-unstyled">
100 <li>
101 <a href="https://wiki.ipfire.org/devel/start">{{ _("Development") }}</a>
102 </li>
103 </ul>
104 </div>
105
106 <div class="col-sm-8 offset-sm-2 col-md-12 offset-md-0 col-lg-4 pt-md-6 pt-lg-1 text-center">
107 <a class="btn btn-primary btn-lg" href="//www.ipfire.org/donate">
108 <svg class="icon i_heart"><use xlink:href="#heart"/></svg>
109 {{ _("Donate") }}
110 </a>
111
112 <div class="btn-toolbar justify-content-around col-md-6 offset-md-3">
113 <a class="btn btn-sm" href="https://blog.ipfire.org/feed.xml">
114 <svg class="icon i_rss"><use xlink:href="#rss"/></svg>
115 </a>
116 <a class="btn btn-sm" href="https://twitter.com/ipfire">
117 <svg class="icon i_twitter"><use xlink:href="#twitter"/></svg>
118 </a>
119 <a class="btn btn-sm" href="https://www.facebook.com/IPFire.org">
120 <svg class="icon i_facebook"><use xlink:href="#facebook"/></svg>
121 </a>
122 <a class="btn btn-sm" href="https://youtube.com/user/ipfireproject">
123 <svg class="icon i_youtube"><use xlink:href="#youtube"/></svg>
124 </a>
125 </div>
126 </div>
127 </div>
128 </div>
129
130 <div class="copyright">
131 <div class="container d-flex justify-content-between">
132 &copy; {{ year }} - {{ _("IPFire is free software written by the IPFire Project") }}
133
134 {% if not current_user and hostname in ("blog.ipfire.org") %}
135 <a href="/login">{{ _("Login") }}</a>
136 {% elif current_user %}
137 <span>
138 {{ _("You are currently logged in as %s") % current_user.name }}
139 <a href="/logout">{{ _("Logout") }}</a>
140 </span>
141 {% end %}
142 </div>
143 </div>
144 </footer>
145 <div id="mask"></div>
146 {% end block %}
147
148 <!-- Hidden icon data -->
149 <svg aria-hidden="true" style="display:none">
150 <symbol id="heart" viewBox="0 0 24 24">
151 <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/>
152 </symbol>
153
154 <symbol id="arrow_down" viewBox="0 0 24 24">
155 <path d="M7.41 9.02L12 13.694l4.59-4.674L18 10.46l-6 6.122-6-6.123z"/>
156 </symbol>
157
158 <symbol id="download" viewBox="0 0 24 24">
159 <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/>
160 </symbol>
161
162 <symbol id="facebook" viewBox="0 0 24 24">
163 <path d="M17 3.207V6h-1.777c-.667 0-1.112.103-1.334.414-.222.207-.333.62-.333 1.138v2.07h3.333l-.444 3.206h-2.89V21H10v-8.172H7V9.62h3v-2.38c0-1.344.444-2.379 1.222-3.103C12 3.414 13.112 3 14.444 3c1.112 0 2 .104 2.556.207" />
164 </symbol>
165
166 <symbol id="hamburger" viewBox="0 0 24 24">
167 <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
168 </symbol>
169
170 <symbol id="rss" viewBox="0 0 24 24">
171 <path d="M6.18 15.2a2.18 2.18 0 0 1 2.18 2.18c0 1.18-.98 2.18-2.18 2.18-1.18 0-2.18-1-2.18-2.18a2.18 2.18 0 0 1 2.18-2.18zM4 4c8.594 0 15.56 6.966 15.56 15.56h-2.83c0-7.03-5.7-12.73-12.73-12.73V4zm0 5.66c5.468 0 9.9 4.432 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.49V9.66z"/>
172 </symbol>
173
174 <symbol id="security" viewBox="0 0 24 24">
175 <path d="M13 18h1a1 1 0 0 1 1 1h7v2h-7a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1H2v-2h7a1 1 0 0 1 1-1h1v-1.66C8.07 15.13 6 12 6 8.67v-4L12 2l6 2.67v4c0 3.33-2.07 6.46-5 7.67V18zM12 4L8 5.69V9h4V4zm0 5v6c1.91-.47 4-2.94 4-5V9h-4z"/>
176 </symbol>
177
178 <symbol id="shield" viewBox="0 0 24 24">
179 <path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/>
180 </symbol>
181
182 <symbol id="github" viewBox="0 0 24 24">
183 <path d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33.85 0 1.71.11 2.5.33 1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2z"/>
184 </symbol>
185
186 <symbol id="speed" viewBox="0 0 24 24">
187 <path d="M12 16a3 3 0 0 1-3-3c0-1.12.61-2.1 1.5-2.61l9.71-5.62-5.53 9.58c-.5.98-1.51 1.65-2.68 1.65zm0-13c1.81 0 3.5.5 4.97 1.32l-2.1 1.21C14 5.19 13 5 12 5a8 8 0 0 0-8 8c0 2.21.89 4.21 2.34 5.65h.01c.39.39.39 1.02 0 1.41-.39.39-1.03.39-1.42.01A9.969 9.969 0 0 1 2 13C2 7.477 6.477 3 12 3zm10 10c0 2.76-1.12 5.26-2.93 7.07-.39.38-1.02.38-1.41-.01a.996.996 0 0 1 0-1.41A7.95 7.95 0 0 0 20 13c0-1-.19-2-.54-2.9L20.67 8C21.5 9.5 22 11.18 22 13z"/>
188 </symbol>
189
190 <symbol id="twitter" viewBox="0 0 24 24">
191 <path d="M22 6.792c-.58.835-1.159 1.552-1.97 2.15v.476c0 1.194-.116 2.27-.464 3.344a8.244 8.244 0 0 1-1.39 3.104 11.87 11.87 0 0 1-2.2 2.627c-.812.716-1.854 1.313-3.128 1.79-1.16.479-2.55.717-3.94.717-2.085 0-4.17-.596-5.908-1.79h.927c1.737 0 3.36-.478 4.866-1.672-.927 0-1.622-.24-2.318-.836-.695-.478-1.158-1.194-1.39-1.91h.811c.348 0 .696 0 .927-.12-.811-.24-1.622-.716-2.201-1.433-.58-.716-.927-1.552-.927-2.507.58.238 1.159.478 1.854.478-.58-.359-1.043-.836-1.275-1.433a4.331 4.331 0 0 1-.463-2.03c0-.717.116-1.433.463-2.03 1.043 1.194 2.201 2.15 3.592 2.985 1.39.716 2.896 1.194 4.518 1.313-.116-.358-.116-.716-.116-1.074 0-1.075.348-2.03 1.159-2.866C14.122 5.359 15.049 5 16.09 5c1.159 0 2.085.359 2.896 1.194.927-.119 1.738-.477 2.433-.955-.231.955-.81 1.672-1.621 2.27A7.918 7.918 0 0 0 22 6.791"/>
192 </symbol>
193
194 <symbol id="youtube" viewBox="0 0 26 26">
195 <path d="M16.412 12.716c.235-.238.353-.358.353-.716s-.118-.597-.353-.716l-6.353-3.94c-.236-.12-.47-.24-.823 0-.236.12-.354.358-.354.716v7.88c0 .358.118.597.354.717.235.119.352.119.47.119.117 0 .235 0 .353-.12l6.353-3.94zM23 10.09v3.82c0 .358 0 .955-.118 1.672 0 .716-.118 1.313-.235 1.79-.118.597-.47 1.075-.824 1.553-.47.358-.94.597-1.53.716-1.881.24-4.587.359-8.234.359-3.647 0-6.47-.12-8.235-.359-.588-.119-1.059-.358-1.53-.716-.47-.358-.705-.956-.823-1.552a23.942 23.942 0 0 1-.353-1.791c0-.717 0-1.314-.118-1.672v-3.82c.118-.358.118-.955.118-1.672.117-.716.235-1.314.353-1.79.118-.597.353-1.195.823-1.553.471-.478.942-.716 1.53-.716C5.588 4.12 8.412 4 12.06 4c3.647 0 6.353.12 8.235.359.588 0 1.059.238 1.529.716.353.358.706.956.824 1.552a7.38 7.38 0 0 1 .235 1.791C23 9.135 23 9.732 23 10.09z"/>
196 </symbol>
197
198 <symbol id="couch" viewBox="0 0 24 24">
199 <defs><path id="a" d="M0 0h24v24H0z"/></defs><g><mask id="b"><use xlink:href="#a"/></mask><path d="M21 10c-1.1 0-2 .9-2 2v3H5v-3c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2 1.51 2 2.82V14h12v-2.03c0-1.3.84-2.4 2-2.82V7c0-1.1-.9-2-2-2z" mask="url(#b)"/></g>
200 </symbol>
201 </svg>
202
203 <script src="{{ static_url("js/jquery-3.3.1.min.js") }}"></script>
204 <script src="{{ static_url("js/popper.min.js") }}"></script>
205 <script src="{{ static_url("js/bootstrap.min.js") }}"></script>
206 <script src="{{ static_url("js/site.js") }}"></script>
207 {% block javascript %}{% end block %}
208 </body>
209 </html>