summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xprocess-static2
-rw-r--r--process-templates.py26
-rw-r--r--static/404.html31
-rw-r--r--static/articles/attestation-compatibility-guide.html31
-rw-r--r--static/articles/grapheneos-servers.html31
-rw-r--r--static/articles/index.html33
-rw-r--r--static/articles/server-traffic-shaping.html31
-rw-r--r--static/articles/sitewide-advertising-industry-opt-out.html31
-rw-r--r--static/build.html33
-rw-r--r--static/camera-privacy-policy.html31
-rw-r--r--static/contact.html33
-rw-r--r--static/donate.html33
-rw-r--r--static/faq.html33
-rw-r--r--static/features.html33
-rw-r--r--static/history/copperheados.html31
-rw-r--r--static/history/index.html33
-rw-r--r--static/history/legacy-changelog.html31
-rw-r--r--static/index.html33
-rw-r--r--static/install/cli.html31
-rw-r--r--static/install/index.html33
-rw-r--r--static/install/web.html31
-rw-r--r--static/pdfviewer-privacy-policy.html31
-rw-r--r--static/releases.html33
-rw-r--r--static/source.html33
-rw-r--r--static/usage.html33
-rw-r--r--templates/footer.html11
-rw-r--r--templates/header.html18
27 files changed, 127 insertions, 667 deletions
diff --git a/process-static b/process-static
index c3176328..7979c854 100755
--- a/process-static
+++ b/process-static
@@ -31,6 +31,8 @@ cp -a nginx nginx-tmp
rm -rf static-tmp
cp -a static static-tmp
+python3 process-templates.py static-tmp
+
for file in static-tmp/**/*.@(json|webmanifest); do
json_verify < "$file" >/dev/null
json_reformat -m < "$file" | sponge "$file"
diff --git a/process-templates.py b/process-templates.py
new file mode 100644
index 00000000..703acc74
--- /dev/null
+++ b/process-templates.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+
+from jinja2 import FileSystemLoader, Environment
+import os
+import sys
+
+ROOT_DIR = sys.argv[1]
+TEMPLATE_PATH_LIST = [ROOT_DIR, "templates/"]
+
+loader = FileSystemLoader(searchpath=TEMPLATE_PATH_LIST)
+environment = Environment(loader=loader, autoescape=True)
+
+template_file_list = []
+for dirpath, dirnames, filenames in os.walk(ROOT_DIR):
+ for filename in filenames:
+ if filename.endswith(".html"):
+ template_file_list.append(
+ (os.path.join(dirpath, filename)).split(sep=os.path.sep, maxsplit=1)[1]
+ )
+
+for template_file in template_file_list:
+ template = environment.get_template(template_file)
+ rendered_template = template.render()
+ path = os.path.join(ROOT_DIR, template_file)
+ with open(path, mode="w") as f:
+ f.write(rendered_template)
diff --git a/static/404.html b/static/404.html
index 83b3f8c1..b5127d1d 100644
--- a/static/404.html
+++ b/static/404.html
@@ -28,40 +28,13 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="page-not-found">
<h1><a href="#page-not-found">Page not found</a></h1>
<p>The requested page does not exist. If you think this is a mistake, please
<a href="https://github.com/GrapheneOS/grapheneos.org/issues">report an issue</a>.</p>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/articles/attestation-compatibility-guide.html b/static/articles/attestation-compatibility-guide.html
index 16c6c61a..8c80b69e 100644
--- a/static/articles/attestation-compatibility-guide.html
+++ b/static/articles/attestation-compatibility-guide.html
@@ -30,24 +30,7 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="attestation-compatibility-guide">
<h1><a href="#attestation-compatibility-guide">Attestation compatibility guide</a></h1>
@@ -129,16 +112,6 @@
app security model but substantially reinforces it, so it cannot be justified with
reasoning based on security, anti-fraud, etc.</p>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/articles/grapheneos-servers.html b/static/articles/grapheneos-servers.html
index 3003c69e..f73de69e 100644
--- a/static/articles/grapheneos-servers.html
+++ b/static/articles/grapheneos-servers.html
@@ -31,24 +31,7 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="grapheneos-servers">
<h1><a href="#grapheneos-servers">GrapheneOS servers</a></h1>
@@ -714,16 +697,6 @@
</ul>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/articles/index.html b/static/articles/index.html
index d4f4b26b..4864d355 100644
--- a/static/articles/index.html
+++ b/static/articles/index.html
@@ -30,24 +30,9 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li aria-current="page"><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="articles" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="articles">
<h1><a href="#articles">Articles</a></h1>
@@ -76,16 +61,6 @@
<li><a href="/articles/sitewide-advertising-industry-opt-out">Sitewide advertising industry opt-out</a> — Using ads.txt / app-ads.txt to disallow buying or selling ads for a domain.</li>
</ul>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/articles/server-traffic-shaping.html b/static/articles/server-traffic-shaping.html
index 654d6e8f..f38dac95 100644
--- a/static/articles/server-traffic-shaping.html
+++ b/static/articles/server-traffic-shaping.html
@@ -30,24 +30,7 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="server-traffic-shaping">
<h1><a href="#server-traffic-shaping">Server traffic shaping</a></h1>
@@ -257,16 +240,6 @@ PriorityQueueingPreset=besteffort</pre>
streams.</p>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/articles/sitewide-advertising-industry-opt-out.html b/static/articles/sitewide-advertising-industry-opt-out.html
index c49e6ce8..387e67e0 100644
--- a/static/articles/sitewide-advertising-industry-opt-out.html
+++ b/static/articles/sitewide-advertising-industry-opt-out.html
@@ -30,24 +30,7 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="sitewide-advertising-industry-opt-out">
<h1><a href="#sitewide-advertising-industry-opt-out">Sitewide advertising industry opt-out</a></h1>
@@ -77,16 +60,6 @@
of ad fraud for the advertising industry, but they do offer value for domain owners to
protect their reputation and discourage adware.</p>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/build.html b/static/build.html
index be782bc8..84e83bc3 100644
--- a/static/build.html
+++ b/static/build.html
@@ -31,24 +31,9 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li aria-current="page"><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="build" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="build">
<h1><a href="#build">Build</a></h1>
@@ -1487,16 +1472,6 @@ rm android-cts-media-1.5.zip</pre>
</section>
</article>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/camera-privacy-policy.html b/static/camera-privacy-policy.html
index 82192034..cec39b40 100644
--- a/static/camera-privacy-policy.html
+++ b/static/camera-privacy-policy.html
@@ -30,24 +30,7 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="camera-privacy-policy">
<h1><a href="#camera-privacy-policy">Camera privacy policy</a></h1>
@@ -78,16 +61,6 @@
<p>Unlike nearly any other QR/barcode scanning apps, QR/barcode scanning does not open
the resulting URL automatically.</p>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/contact.html b/static/contact.html
index b2233d3b..e7d573c2 100644
--- a/static/contact.html
+++ b/static/contact.html
@@ -30,24 +30,9 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li aria-current="page"><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="contact" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="contact">
<h1><a href="#contact">Contact</a></h1>
@@ -215,17 +200,7 @@
</section>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
diff --git a/static/donate.html b/static/donate.html
index 5feafe8e..f7f7f57f 100644
--- a/static/donate.html
+++ b/static/donate.html
@@ -30,24 +30,9 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li aria-current="page"><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="donate" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="donate">
<h1><a href="#donate">Donate</a></h1>
@@ -206,16 +191,6 @@
GrapheneOS.</p>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/faq.html b/static/faq.html
index 7b0a0430..14732076 100644
--- a/static/faq.html
+++ b/static/faq.html
@@ -31,24 +31,9 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li aria-current="page"><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="faq" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="faq">
<h1><a href="#faq">Frequently Asked Questions</a></h1>
@@ -1871,16 +1856,6 @@
as a distinct OS based on GrapheneOS.</p>
</article>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/features.html b/static/features.html
index 9dd0187d..e7b7152d 100644
--- a/static/features.html
+++ b/static/features.html
@@ -30,24 +30,9 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li aria-current="page"><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="features" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="features">
<h1><a href="#features">Features overview</a></h1>
@@ -1051,16 +1036,6 @@
</ul>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/history/copperheados.html b/static/history/copperheados.html
index d4c5879e..759e2da5 100644
--- a/static/history/copperheados.html
+++ b/static/history/copperheados.html
@@ -30,24 +30,7 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="copperheados">
<h1><a href="#copperheados">CopperheadOS is now GrapheneOS</a></h1>
@@ -124,16 +107,6 @@
substantially more resources available, including significantly more funding.</p>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/history/index.html b/static/history/index.html
index bbafa71d..0acb2c87 100644
--- a/static/history/index.html
+++ b/static/history/index.html
@@ -30,24 +30,9 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li aria-current="page"><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="history" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="history">
<h1><a href="#history">History</a></h1>
@@ -109,16 +94,6 @@
<a href="/history/legacy-changelog">legacy changelog page</a>.</p>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/history/legacy-changelog.html b/static/history/legacy-changelog.html
index 2e86d56d..852c5922 100644
--- a/static/history/legacy-changelog.html
+++ b/static/history/legacy-changelog.html
@@ -30,24 +30,7 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="legacy-changelog">
<h1><a href="#legacy-changelog">Legacy changelog</a></h1>
@@ -2185,16 +2168,6 @@
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/index.html b/static/index.html
index 9ea33603..4ea1f244 100644
--- a/static/index.html
+++ b/static/index.html
@@ -31,24 +31,9 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li aria-current="page"><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="/" %}
+ {% include "header.html" %}
+ {% endwith %}
<main class="normalize" id="grapheneos">
<div class="content hero">
@@ -136,16 +121,6 @@
</section>
</div>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/install/cli.html b/static/install/cli.html
index 8a64c22a..2e9d8e0e 100644
--- a/static/install/cli.html
+++ b/static/install/cli.html
@@ -31,24 +31,7 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="cli-install">
<h1><a href="#cli-install">CLI install guide</a></h1>
@@ -650,16 +633,6 @@ curl -O https://releases.grapheneos.org/<var>DEVICE_NAME</var>-factory-202111012
</section>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/install/index.html b/static/install/index.html
index f5414a03..77691640 100644
--- a/static/install/index.html
+++ b/static/install/index.html
@@ -31,24 +31,9 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li aria-current="page"><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="install" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="install">
<h1><a href="#install">Install</a></h1>
@@ -73,16 +58,6 @@
instructions from our site. For most users, the web-based installation approach is no
less secure and avoids needing any software beyond a browser with WebUSB support.</p>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/install/web.html b/static/install/web.html
index e7148ca3..1cf32f12 100644
--- a/static/install/web.html
+++ b/static/install/web.html
@@ -33,24 +33,7 @@
[[js|/js/web-install.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="web-install">
<h1><a href="#web-install">Web installer</a></h1>
@@ -465,16 +448,6 @@
</section>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/pdfviewer-privacy-policy.html b/static/pdfviewer-privacy-policy.html
index 139e7e80..907237e2 100644
--- a/static/pdfviewer-privacy-policy.html
+++ b/static/pdfviewer-privacy-policy.html
@@ -30,40 +30,13 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% include "header.html" %}
<main id="pdfviewer-privacy-policy">
<h1><a href="#pdfviewer-privacy-policy">PDF Viewer privacy policy</a></h1>
<p>This app does not use any sensitive permissions, makes no internet connections and
does not store any data other than preferences.</p>
<p>See the <a href="https://github.com/GrapheneOS/PdfViewer">project's page on GitHub</a> for more information.</p>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/releases.html b/static/releases.html
index 89e8e636..d4cc084b 100644
--- a/static/releases.html
+++ b/static/releases.html
@@ -33,24 +33,9 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li aria-current="page"><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="releases" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="releases">
<h1><a href="#releases">Releases</a></h1>
@@ -6453,16 +6438,6 @@
</article>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/source.html b/static/source.html
index 5fcf54a1..df9b8ebf 100644
--- a/static/source.html
+++ b/static/source.html
@@ -30,24 +30,9 @@
<link rel="me" href="https://grapheneos.social/@GrapheneOS"/>
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li aria-current="page"><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="source" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="source">
<h1><a href="#source">Source code</a></h1>
@@ -302,16 +287,6 @@
the project.</p>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/static/usage.html b/static/usage.html
index 7e88643a..4030025c 100644
--- a/static/usage.html
+++ b/static/usage.html
@@ -31,24 +31,9 @@
[[js|/js/redirect.js]]
</head>
<body>
- <header>
- <nav id="site-menu">
- <ul>
- <li><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
- <li><a href="/features">Features</a></li>
- <li><a href="/install/">Install</a></li>
- <li><a href="/build">Build</a></li>
- <li aria-current="page"><a href="/usage">Usage</a></li>
- <li><a href="/faq">FAQ</a></li>
- <li><a href="/releases">Releases</a></li>
- <li><a href="/source">Source</a></li>
- <li><a href="/history/">History</a></li>
- <li><a href="/articles/">Articles</a></li>
- <li><a href="/donate">Donate</a></li>
- <li><a href="/contact">Contact</a></li>
- </ul>
- </nav>
- </header>
+ {% with current_page="usage" %}
+ {% include "header.html" %}
+ {% endwith %}
<main id="usage">
<h1><a href="#usage">Usage guide</a></h1>
<p>This is a guide covering some aspects of using GrapheneOS. See the
@@ -1289,16 +1274,6 @@
the stock operating system.</p>
</section>
</main>
- <footer>
- <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
- <ul id="social">
- <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
- <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
- <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
- <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
- <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
- <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
- </ul>
- </footer>
+ {% include "footer.html" %}
</body>
</html>
diff --git a/templates/footer.html b/templates/footer.html
new file mode 100644
index 00000000..efe7cd9b
--- /dev/null
+++ b/templates/footer.html
@@ -0,0 +1,11 @@
+<footer>
+ <a href="/"><img src="[[path|/mask-icon.svg]]" width="512" height="512" alt=""/>GrapheneOS</a>
+ <ul id="social">
+ <li><a href="https://discuss.grapheneos.org/">Forum</a></li>
+ <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li>
+ <li><a href="https://grapheneos.social/@GrapheneOS">Mastodon</a></li>
+ <li><a href="https://github.com/GrapheneOS">GitHub</a></li>
+ <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li>
+ <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li>
+ </ul>
+</footer>
diff --git a/templates/header.html b/templates/header.html
new file mode 100644
index 00000000..0ab95a71
--- /dev/null
+++ b/templates/header.html
@@ -0,0 +1,18 @@
+<header>
+ <nav id="site-menu">
+ <ul>
+ <li {% if current_page == "/" %}aria-current="page"{% endif %}><a href="/"><img src="[[path|/mask-icon.svg]]" alt=""/>GrapheneOS</a></li>
+ <li {% if current_page == "features" %}aria-current="page"{% endif %}><a href="/features">Features</a></li>
+ <li {% if current_page == "install" %}aria-current="page"{% endif %}><a href="/install/">Install</a></li>
+ <li {% if current_page == "build" %}aria-current="page"{% endif %}><a href="/build">Build</a></li>
+ <li {% if current_page == "usage" %}aria-current="page"{% endif %}><a href="/usage">Usage</a></li>
+ <li {% if current_page == "faq" %}aria-current="page"{% endif %}><a href="/faq">FAQ</a></li>
+ <li {% if current_page == "releases" %}aria-current="page"{% endif %}><a href="/releases">Releases</a></li>
+ <li {% if current_page == "source" %}aria-current="page"{% endif %}><a href="/source">Source</a></li>
+ <li {% if current_page == "history" %}aria-current="page"{% endif %}><a href="/history/">History</a></li>
+ <li {% if current_page == "articles" %}aria-current="page"{% endif %}><a href="/articles/">Articles</a></li>
+ <li {% if current_page == "donate" %}aria-current="page"{% endif %}><a href="/donate">Donate</a></li>
+ <li {% if current_page == "contact" %}aria-current="page"{% endif %}><a href="/contact">Contact</a></li>
+ </ul>
+ </nav>
+</header>