[SSG] Move archives, subscribe, donate into directories.
Allow templates to be relative using {{ relative }} which can be set by caller.
This commit is contained in:
parent
401e1b64f0
commit
329039541a
|
@ -2,6 +2,6 @@
|
|||
{% block left_content %}
|
||||
<ul class="archives">
|
||||
{% for episode in episodes %}
|
||||
<li><a href="{{ episode.slug }}">{{ episode.title }}</a></li>
|
||||
<li><a href="../{{ episode.slug }}">{{ episode.title }}</a></li>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
|
34
base.html
34
base.html
|
@ -6,8 +6,8 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>{% block title %}{{ title }} | Redacted Life{% endblock %}</title>
|
||||
<link href="assets/css/index.css" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="assets/plyr/plyr.css" />
|
||||
<link href="{{ relative }}/assets/css/index.css" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="{{ relative }}/assets/plyr/plyr.css" />
|
||||
|
||||
<!-- Metadata -->
|
||||
<meta name="description" content="An audiocast on Linux and libre software with a hard spin on personal privacy and security">
|
||||
|
@ -32,26 +32,26 @@
|
|||
<meta property="og:image" content="/assets/media/cover-site.png" />
|
||||
|
||||
<!-- Favicons -->
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicons/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicons/favicon-16x16.png">
|
||||
<link rel="manifest" href="/assets/favicons/site.webmanifest">
|
||||
<link rel="mask-icon" href="/assets/favicons/safari-pinned-tab.svg" color="#46ad83">
|
||||
<link rel="shortcut icon" href="/assets/favicons/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ relative }}/assets/favicons/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ relative }}/assets/favicons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ relative }}/assets/favicons/favicon-16x16.png">
|
||||
<link rel="manifest" href="{{ relative }}/assets/favicons/site.webmanifest">
|
||||
<link rel="mask-icon" href="{{ relative }}/assets/favicons/safari-pinned-tab.svg" color="#46ad83">
|
||||
<link rel="shortcut icon" href="{{ relative }}/assets/favicons/favicon.ico">
|
||||
<meta name="msapplication-TileColor" content="#2b5797">
|
||||
<meta name="msapplication-config" content="/assets/favicons/browserconfig.xml">
|
||||
<meta name="msapplication-config" content="{{ relative }}/assets/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<img src="assets/images/cloud.svg" class="clouds" id="cloud1" />
|
||||
<img src="assets/images/cloud.svg" class="clouds" id="cloud2" />
|
||||
<img src="{{ relative }}/assets/images/cloud.svg" class="clouds" id="cloud1" />
|
||||
<img src="{{ relative }}/assets/images/cloud.svg" class="clouds" id="cloud2" />
|
||||
<div class="top_bg"></div>
|
||||
<div class="bottom_bg"></div>
|
||||
<div class="top">
|
||||
<div class="wrapper">
|
||||
<div class="content">
|
||||
<h1><a href=".">Redacted Life</a></h1>
|
||||
<h1><a href="{{relative}}">Redacted Life</a></h1>
|
||||
{% block left_content %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
@ -60,11 +60,11 @@
|
|||
<div class="bottom">
|
||||
<div class="wrapper">
|
||||
<div class="content">
|
||||
<a class="button" href="subscribe.html">Subscribe</a>
|
||||
<a class="button" href="{{relative}}/subscribe/">Subscribe</a>
|
||||
<a class="button" href="mailto:hello@redacted.life">Contact</a>
|
||||
<a class="button" href="archives.html">Archives</a>
|
||||
<a class="button" href="{{relative}}/archives/">Archives</a>
|
||||
</div>
|
||||
<a class="donate-link" href="donate.html">Consider supporting these individuals and organisations</a>
|
||||
<a class="donate-link" href="{{relative}}/donate/">Consider supporting these individuals and organisations</a>
|
||||
<footer>
|
||||
Designed by <a href="https://webionite.com">Ceda EI</a><br />
|
||||
Source available on <a href="https://git.webionite.com/ceda_ei/redacted.life">Webionite</a><br />
|
||||
|
@ -72,10 +72,10 @@
|
|||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/plyr/plyr.js"></script>
|
||||
<script src="{{ relative }}/assets/plyr/plyr.js"></script>
|
||||
<script>
|
||||
const player = new Plyr("#player", {
|
||||
iconUrl: "assets/plyr/plyr.svg",
|
||||
iconUrl: "{{ relative }}/assets/plyr/plyr.svg",
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
|
22
nova.py
22
nova.py
|
@ -137,13 +137,18 @@ class EpisodeList(UserList):
|
|||
|
||||
def generate_archives(self):
|
||||
"Generates archives page"
|
||||
with open(self.output + "archives.html", "w") as file:
|
||||
if not path.isdir(self.output + "archives"):
|
||||
logging.info("Creating directory archives")
|
||||
os.mkdir(self.output + "archives")
|
||||
with open(self.output + "archives/index.html", "w") as file:
|
||||
episodes = [{
|
||||
"slug": gen_name(i.date, i.slug) + ".html",
|
||||
"title": i.title
|
||||
} for i in self.data[::-1]]
|
||||
file.write(self.archives.render(episodes=episodes,
|
||||
title="Archives"))
|
||||
title="Archives",
|
||||
relative=".."
|
||||
))
|
||||
|
||||
def generate_site(self, root):
|
||||
"Generates the entire site"
|
||||
|
@ -205,12 +210,13 @@ class Episode:
|
|||
logging.info(f"New episode: {date=} {slug=} {title=} {self.video=} "
|
||||
f"{self.audio=} {config=} {self.length=} {self.show_notes=}")
|
||||
|
||||
def render(self, template, thumbnail_src):
|
||||
def render(self, template, thumbnail_src, relative="."):
|
||||
"Renders the Episode with the given template"
|
||||
return template.render(
|
||||
title=self.title,
|
||||
show_notes=jinja2.Markup(self.show_notes),
|
||||
thumbnail_src=thumbnail_src,
|
||||
relative=relative,
|
||||
video_src=f"assets/videos/{path.basename(self.video)}"
|
||||
)
|
||||
|
||||
|
@ -346,17 +352,23 @@ def main(args):
|
|||
)
|
||||
)
|
||||
|
||||
if not path.isdir(output_dir + "subscribe"):
|
||||
os.mkdir(output_dir + "subscribe")
|
||||
logging.info("Generating subscribe page")
|
||||
with open(input_dir + "subscribe.json") as subscribe, \
|
||||
open(output_dir + "subscribe.html", "w") as html:
|
||||
open(output_dir + "subscribe/index.html", "w") as html:
|
||||
html.write(env.get_template("subscribe.html").render(
|
||||
relative="..",
|
||||
subscribtions=json.load(subscribe)
|
||||
))
|
||||
|
||||
if not path.isdir(output_dir + "donate"):
|
||||
os.mkdir(output_dir + "donate")
|
||||
logging.info("Generating donate page")
|
||||
with open(input_dir + "donate.json") as donate, \
|
||||
open(output_dir + "donate.html", "w") as html:
|
||||
open(output_dir + "donate/index.html", "w") as html:
|
||||
html.write(env.get_template("donate.html").render(
|
||||
relative="..",
|
||||
donations=json.load(donate)
|
||||
))
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}Subscribe | Redacted Life{% endblock %}
|
||||
{% block stylesheets %}
|
||||
<link href="assets/fork-awesome/css/fork-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="{{relative}}/assets/fork-awesome/css/fork-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
{% endblock %}
|
||||
{% block left_content %}
|
||||
<div class="subscribe">
|
||||
|
|
Loading…
Reference in New Issue