diff options
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> |
