summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--__main__.py8
-rw-r--r--blog/templates/blog_base.html.j23
-rw-r--r--codenames/templates/codenames.html.j210
-rw-r--r--comic/assets/css/comic.css8
-rw-r--r--comic/templates/issue.html.j28
-rw-r--r--config.py1
-rw-r--r--global/deploy/assets/css/bootstrap-grid.min.css6
-rw-r--r--global/deploy/assets/css/navbar.css34
-rw-r--r--global/deploy/assets/image/desktop_standby.jpgbin0 -> 171845 bytes
-rw-r--r--global/deploy/assets/image/mobile_standby.jpgbin0 -> 379162 bytes
-rw-r--r--global/templates/base.html.j26
-rw-r--r--global/templates/navbar.html.j28
-rw-r--r--modules/blog_generate.py39
-rw-r--r--modules/codenames_generate.py10
-rw-r--r--modules/comic_generate.py10
-rw-r--r--modules/main_generate.py9
16 files changed, 119 insertions, 41 deletions
diff --git a/__main__.py b/__main__.py
index 1f28fdf..efcb335 100644
--- a/__main__.py
+++ b/__main__.py
@@ -1,6 +1,7 @@
import os.path
import sys
import jinja2
+import shutil
from .config import Config
from .modules import main_generate, blog_generate, comic_generate, codenames_generate
@@ -28,11 +29,18 @@ def main(output_root_path: str, local: bool):
"git_url": Config.GIT_ROOT_URL,
})
+ main_generate.init(jinja_env, local)
+ blog_generate.init(jinja_env, local)
+ comic_generate.init(jinja_env, local)
+ codenames_generate.init(jinja_env, local)
+
main_generate.generate(jinja_env, os.path.join(output_root_path, "main"), local)
blog_generate.generate(jinja_env, os.path.join(output_root_path, "blog"), local)
comic_generate.generate(jinja_env, os.path.join(output_root_path, "comic"), local)
codenames_generate.generate(jinja_env, os.path.join(output_root_path, "codenames"), local)
+ shutil.copytree(Config.DEPLOY_SOURCE_DIR, output_root_path, dirs_exist_ok=True)
+
if __name__ == '__main__':
main(sys.argv[1], bool(int(sys.argv[2])) if len(sys.argv) > 2 else False)
diff --git a/blog/templates/blog_base.html.j2 b/blog/templates/blog_base.html.j2
index b250abf..8725ff8 100644
--- a/blog/templates/blog_base.html.j2
+++ b/blog/templates/blog_base.html.j2
@@ -6,7 +6,8 @@
<link rel="stylesheet" href="{{ site.assets_path }}/css/font.css" />
<script src="{{ site.assets_path }}/js/theme.js"></script>
<link rel="stylesheet" href="{{ site.assets_path }}/css/blog.css" />{% endblock %}
-{% block body %}<div class="bootstrap-wrapper">
+{% block body %}{{ super() }}
+<div class="bootstrap-wrapper">
<div class="container">
<a href="/" class="row dont-bother">
<header class="col-lg-9" role="banner">
diff --git a/codenames/templates/codenames.html.j2 b/codenames/templates/codenames.html.j2
index ca54abd..eb4a3ee 100644
--- a/codenames/templates/codenames.html.j2
+++ b/codenames/templates/codenames.html.j2
@@ -3,7 +3,8 @@
{% block og_page_title %}{{ codenames.codenames_name }}{% endblock %}
{% block head_extra %}{{ super() }}
<link rel="stylesheet" href="{{ site.assets_path }}/css/codenames.css" />{% endblock %}
-{% block body %}<div class="bootstrap-wrapper">
+{% block body %}{{ super() }}
+<div class="bootstrap-wrapper">
<div class="container">
<div class="row">
<main class="col-md-9">
@@ -63,7 +64,8 @@
</main>
</div>
</div>
-</div>{% endblock %}
-{% block footer %}
+</div>
+<footer>
<script src="/assets/js/codenames.js"></script>
-{% endblock %} \ No newline at end of file
+</footer>
+{% endblock %}
diff --git a/comic/assets/css/comic.css b/comic/assets/css/comic.css
index 7335684..fc3f6f3 100644
--- a/comic/assets/css/comic.css
+++ b/comic/assets/css/comic.css
@@ -2,7 +2,7 @@ body {
background-color: #cdb7f6;
}
-main, header, footer {
+main, header, footer, div.navbar_comic {
display: flex;
flex-flow: column;
align-items: center;
@@ -11,13 +11,17 @@ main, header, footer {
background-color: white;
}
+div.navbar_parent {
+ padding: 0.2rem;
+}
+
@media (min-width: 768px) {
main, header, footer {
padding: 0 5rem 0 5rem !important;
}
}
-main, footer {
+main, header, footer {
margin-top: 0.5rem;
}
diff --git a/comic/templates/issue.html.j2 b/comic/templates/issue.html.j2
index 81afc04..bf444a3 100644
--- a/comic/templates/issue.html.j2
+++ b/comic/templates/issue.html.j2
@@ -5,8 +5,14 @@
{% block head_extra %}{{ super() }}
<link rel="stylesheet" href="{{ site.assets_path }}/css/comic.css" />
<link rel="stylesheet" href="{{ site.assets_path }}/css/font.css" />{% endblock %}
-{% block body %}<div class="bootstrap-wrapper">
+{% block body %}
+<div class="bootstrap-wrapper">
<div class="container">
+ <div class="row">
+ <div class="col-md-9 navbar_comic">
+ {{ super() }}
+ </div>
+ </div>
<a href="/" class="row dont-bother">
<header class="col-md-9" role="banner"><img class="banner" src="{{ site.assets_path }}/image/banner_placeholder.png" alt="banner"/></header>
</a>
diff --git a/config.py b/config.py
index 11c16ca..fb87a82 100644
--- a/config.py
+++ b/config.py
@@ -10,6 +10,7 @@ class Config:
GIT_ROOT_URL = "https://git.wazul.moe"
RSS_FILE_NAME = "feed.xml"
TIMEZONE = datetime.timezone(datetime.timedelta(hours=2))
+ DEPLOY_SOURCE_DIR = os.path.join(__DIR, "global", "deploy")
# MAIN
MAIN_ROOT_URL = "https://wazul.moe"
diff --git a/global/deploy/assets/css/bootstrap-grid.min.css b/global/deploy/assets/css/bootstrap-grid.min.css
new file mode 100644
index 0000000..ee0e26f
--- /dev/null
+++ b/global/deploy/assets/css/bootstrap-grid.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap Grid Only (grid and responsive utilities extracted from Bootstrap 4.1.3)
+ * GitHub: https://github.com/dmhendricks/bootstrap-grid-css
+ * Bootstrap License: MIT (https://github.com/twbs/bootstrap/blob/v4-dev/LICENSE)
+ * Credits: Twitter, Inc. & The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ */@-ms-viewport{width:device-width}html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar}*,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit}.bootstrap-wrapper .clearfix::after{display:block;clear:both;content:""}.bootstrap-wrapper .visible{visibility:visible !important}.bootstrap-wrapper .invisible{visibility:hidden !important}.bootstrap-wrapper .hidden-xs-up{display:none !important}@media(max-width:575.98px){.bootstrap-wrapper .hidden-xs-down{display:none !important}}@media(min-width:576px){.bootstrap-wrapper .hidden-sm-up{display:none !important}}@media(max-width:767.98px){.bootstrap-wrapper .hidden-sm-down{display:none !important}}@media(min-width:768px){.bootstrap-wrapper .hidden-md-up{display:none !important}}@media(max-width:991.98px){.bootstrap-wrapper .hidden-md-down{display:none !important}}@media(min-width:992px){.bootstrap-wrapper .hidden-lg-up{display:none !important}}@media(max-width:1199.98px){.bootstrap-wrapper .hidden-lg-down{display:none !important}}@media(min-width:1200px){.bootstrap-wrapper .hidden-xl-up{display:none !important}}.bootstrap-wrapper .hidden-xl-down{display:none !important}.bootstrap-wrapper .visible-print-block{display:none !important}@media print{.bootstrap-wrapper .visible-print-block{display:block !important}}.bootstrap-wrapper .visible-print-inline{display:none !important}@media print{.bootstrap-wrapper .visible-print-inline{display:inline !important}}.bootstrap-wrapper .visible-print-inline-block{display:none !important}@media print{.bootstrap-wrapper .visible-print-inline-block{display:inline-block !important}}@media print{.bootstrap-wrapper .hidden-print{display:none !important}}.bootstrap-wrapper .container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:576px){.bootstrap-wrapper .container{max-width:540px}}@media(min-width:768px){.bootstrap-wrapper .container{max-width:720px}}@media(min-width:992px){.bootstrap-wrapper .container{max-width:960px}}@media(min-width:1200px){.bootstrap-wrapper .container{max-width:1140px}}.bootstrap-wrapper .container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.bootstrap-wrapper .row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.bootstrap-wrapper .no-gutters{margin-right:0;margin-left:0}.bootstrap-wrapper .no-gutters>.col,.bootstrap-wrapper .no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.bootstrap-wrapper .col-1,.bootstrap-wrapper .col-2,.bootstrap-wrapper .col-3,.bootstrap-wrapper .col-4,.bootstrap-wrapper .col-5,.bootstrap-wrapper .col-6,.bootstrap-wrapper .col-7,.bootstrap-wrapper .col-8,.bootstrap-wrapper .col-9,.bootstrap-wrapper .col-10,.bootstrap-wrapper .col-11,.bootstrap-wrapper .col-12,.bootstrap-wrapper .col,.bootstrap-wrapper .col-auto,.bootstrap-wrapper .col-sm-1,.bootstrap-wrapper .col-sm-2,.bootstrap-wrapper .col-sm-3,.bootstrap-wrapper .col-sm-4,.bootstrap-wrapper .col-sm-5,.bootstrap-wrapper .col-sm-6,.bootstrap-wrapper .col-sm-7,.bootstrap-wrapper .col-sm-8,.bootstrap-wrapper .col-sm-9,.bootstrap-wrapper .col-sm-10,.bootstrap-wrapper .col-sm-11,.bootstrap-wrapper .col-sm-12,.bootstrap-wrapper .col-sm,.bootstrap-wrapper .col-sm-auto,.bootstrap-wrapper .col-md-1,.bootstrap-wrapper .col-md-2,.bootstrap-wrapper .col-md-3,.bootstrap-wrapper .col-md-4,.bootstrap-wrapper .col-md-5,.bootstrap-wrapper .col-md-6,.bootstrap-wrapper .col-md-7,.bootstrap-wrapper .col-md-8,.bootstrap-wrapper .col-md-9,.bootstrap-wrapper .col-md-10,.bootstrap-wrapper .col-md-11,.bootstrap-wrapper .col-md-12,.bootstrap-wrapper .col-md,.bootstrap-wrapper .col-md-auto,.bootstrap-wrapper .col-lg-1,.bootstrap-wrapper .col-lg-2,.bootstrap-wrapper .col-lg-3,.bootstrap-wrapper .col-lg-4,.bootstrap-wrapper .col-lg-5,.bootstrap-wrapper .col-lg-6,.bootstrap-wrapper .col-lg-7,.bootstrap-wrapper .col-lg-8,.bootstrap-wrapper .col-lg-9,.bootstrap-wrapper .col-lg-10,.bootstrap-wrapper .col-lg-11,.bootstrap-wrapper .col-lg-12,.bootstrap-wrapper .col-lg,.bootstrap-wrapper .col-lg-auto,.bootstrap-wrapper .col-xl-1,.bootstrap-wrapper .col-xl-2,.bootstrap-wrapper .col-xl-3,.bootstrap-wrapper .col-xl-4,.bootstrap-wrapper .col-xl-5,.bootstrap-wrapper .col-xl-6,.bootstrap-wrapper .col-xl-7,.bootstrap-wrapper .col-xl-8,.bootstrap-wrapper .col-xl-9,.bootstrap-wrapper .col-xl-10,.bootstrap-wrapper .col-xl-11,.bootstrap-wrapper .col-xl-12,.bootstrap-wrapper .col-xl,.bootstrap-wrapper .col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.bootstrap-wrapper .col{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.bootstrap-wrapper .col-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.bootstrap-wrapper .col-1{-webkit-box-flex:0;-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.bootstrap-wrapper .col-2{-webkit-box-flex:0;-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.bootstrap-wrapper .col-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.bootstrap-wrapper .col-4{-webkit-box-flex:0;-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.bootstrap-wrapper .col-5{-webkit-box-flex:0;-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.bootstrap-wrapper .col-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.bootstrap-wrapper .col-7{-webkit-box-flex:0;-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.bootstrap-wrapper .col-8{-webkit-box-flex:0;-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.bootstrap-wrapper .col-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.bootstrap-wrapper .col-10{-webkit-box-flex:0;-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.bootstrap-wrapper .col-11{-webkit-box-flex:0;-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.bootstrap-wrapper .col-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.bootstrap-wrapper .order-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.bootstrap-wrapper .order-last{-webkit-box-ordinal-group:14;-webkit-order:13;-ms-flex-order:13;order:13}.bootstrap-wrapper .order-0{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.bootstrap-wrapper .order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.bootstrap-wrapper .order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.bootstrap-wrapper .order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.bootstrap-wrapper .order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.bootstrap-wrapper .order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.bootstrap-wrapper .order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.bootstrap-wrapper .order-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.bootstrap-wrapper .order-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.bootstrap-wrapper .order-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.bootstrap-wrapper .order-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.bootstrap-wrapper .order-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.bootstrap-wrapper .order-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.bootstrap-wrapper .offset-1{margin-left:8.3333333333%}.bootstrap-wrapper .offset-2{margin-left:16.6666666667%}.bootstrap-wrapper .offset-3{margin-left:25%}.bootstrap-wrapper .offset-4{margin-left:33.3333333333%}.bootstrap-wrapper .offset-5{margin-left:41.6666666667%}.bootstrap-wrapper .offset-6{margin-left:50%}.bootstrap-wrapper .offset-7{margin-left:58.3333333333%}.bootstrap-wrapper .offset-8{margin-left:66.6666666667%}.bootstrap-wrapper .offset-9{margin-left:75%}.bootstrap-wrapper .offset-10{margin-left:83.3333333333%}.bootstrap-wrapper .offset-11{margin-left:91.6666666667%}@media(min-width:576px){.bootstrap-wrapper .col-sm{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.bootstrap-wrapper .col-sm-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.bootstrap-wrapper .col-sm-1{-webkit-box-flex:0;-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.bootstrap-wrapper .col-sm-2{-webkit-box-flex:0;-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.bootstrap-wrapper .col-sm-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.bootstrap-wrapper .col-sm-4{-webkit-box-flex:0;-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.bootstrap-wrapper .col-sm-5{-webkit-box-flex:0;-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.bootstrap-wrapper .col-sm-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.bootstrap-wrapper .col-sm-7{-webkit-box-flex:0;-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.bootstrap-wrapper .col-sm-8{-webkit-box-flex:0;-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.bootstrap-wrapper .col-sm-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.bootstrap-wrapper .col-sm-10{-webkit-box-flex:0;-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.bootstrap-wrapper .col-sm-11{-webkit-box-flex:0;-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.bootstrap-wrapper .col-sm-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.bootstrap-wrapper .order-sm-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.bootstrap-wrapper .order-sm-last{-webkit-box-ordinal-group:14;-webkit-order:13;-ms-flex-order:13;order:13}.bootstrap-wrapper .order-sm-0{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.bootstrap-wrapper .order-sm-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.bootstrap-wrapper .order-sm-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.bootstrap-wrapper .order-sm-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.bootstrap-wrapper .order-sm-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.bootstrap-wrapper .order-sm-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.bootstrap-wrapper .order-sm-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.bootstrap-wrapper .order-sm-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.bootstrap-wrapper .order-sm-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.bootstrap-wrapper .order-sm-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.bootstrap-wrapper .order-sm-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.bootstrap-wrapper .order-sm-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.bootstrap-wrapper .order-sm-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.bootstrap-wrapper .offset-sm-0{margin-left:0}.bootstrap-wrapper .offset-sm-1{margin-left:8.3333333333%}.bootstrap-wrapper .offset-sm-2{margin-left:16.6666666667%}.bootstrap-wrapper .offset-sm-3{margin-left:25%}.bootstrap-wrapper .offset-sm-4{margin-left:33.3333333333%}.bootstrap-wrapper .offset-sm-5{margin-left:41.6666666667%}.bootstrap-wrapper .offset-sm-6{margin-left:50%}.bootstrap-wrapper .offset-sm-7{margin-left:58.3333333333%}.bootstrap-wrapper .offset-sm-8{margin-left:66.6666666667%}.bootstrap-wrapper .offset-sm-9{margin-left:75%}.bootstrap-wrapper .offset-sm-10{margin-left:83.3333333333%}.bootstrap-wrapper .offset-sm-11{margin-left:91.6666666667%}}@media(min-width:768px){.bootstrap-wrapper .col-md{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.bootstrap-wrapper .col-md-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.bootstrap-wrapper .col-md-1{-webkit-box-flex:0;-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.bootstrap-wrapper .col-md-2{-webkit-box-flex:0;-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.bootstrap-wrapper .col-md-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.bootstrap-wrapper .col-md-4{-webkit-box-flex:0;-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.bootstrap-wrapper .col-md-5{-webkit-box-flex:0;-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.bootstrap-wrapper .col-md-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.bootstrap-wrapper .col-md-7{-webkit-box-flex:0;-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.bootstrap-wrapper .col-md-8{-webkit-box-flex:0;-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.bootstrap-wrapper .col-md-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.bootstrap-wrapper .col-md-10{-webkit-box-flex:0;-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.bootstrap-wrapper .col-md-11{-webkit-box-flex:0;-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.bootstrap-wrapper .col-md-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.bootstrap-wrapper .order-md-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.bootstrap-wrapper .order-md-last{-webkit-box-ordinal-group:14;-webkit-order:13;-ms-flex-order:13;order:13}.bootstrap-wrapper .order-md-0{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.bootstrap-wrapper .order-md-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.bootstrap-wrapper .order-md-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.bootstrap-wrapper .order-md-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.bootstrap-wrapper .order-md-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.bootstrap-wrapper .order-md-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.bootstrap-wrapper .order-md-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.bootstrap-wrapper .order-md-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.bootstrap-wrapper .order-md-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.bootstrap-wrapper .order-md-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.bootstrap-wrapper .order-md-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.bootstrap-wrapper .order-md-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.bootstrap-wrapper .order-md-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.bootstrap-wrapper .offset-md-0{margin-left:0}.bootstrap-wrapper .offset-md-1{margin-left:8.3333333333%}.bootstrap-wrapper .offset-md-2{margin-left:16.6666666667%}.bootstrap-wrapper .offset-md-3{margin-left:25%}.bootstrap-wrapper .offset-md-4{margin-left:33.3333333333%}.bootstrap-wrapper .offset-md-5{margin-left:41.6666666667%}.bootstrap-wrapper .offset-md-6{margin-left:50%}.bootstrap-wrapper .offset-md-7{margin-left:58.3333333333%}.bootstrap-wrapper .offset-md-8{margin-left:66.6666666667%}.bootstrap-wrapper .offset-md-9{margin-left:75%}.bootstrap-wrapper .offset-md-10{margin-left:83.3333333333%}.bootstrap-wrapper .offset-md-11{margin-left:91.6666666667%}}@media(min-width:992px){.bootstrap-wrapper .col-lg{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.bootstrap-wrapper .col-lg-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.bootstrap-wrapper .col-lg-1{-webkit-box-flex:0;-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.bootstrap-wrapper .col-lg-2{-webkit-box-flex:0;-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.bootstrap-wrapper .col-lg-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.bootstrap-wrapper .col-lg-4{-webkit-box-flex:0;-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.bootstrap-wrapper .col-lg-5{-webkit-box-flex:0;-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.bootstrap-wrapper .col-lg-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.bootstrap-wrapper .col-lg-7{-webkit-box-flex:0;-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.bootstrap-wrapper .col-lg-8{-webkit-box-flex:0;-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.bootstrap-wrapper .col-lg-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.bootstrap-wrapper .col-lg-10{-webkit-box-flex:0;-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.bootstrap-wrapper .col-lg-11{-webkit-box-flex:0;-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.bootstrap-wrapper .col-lg-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.bootstrap-wrapper .order-lg-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.bootstrap-wrapper .order-lg-last{-webkit-box-ordinal-group:14;-webkit-order:13;-ms-flex-order:13;order:13}.bootstrap-wrapper .order-lg-0{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.bootstrap-wrapper .order-lg-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.bootstrap-wrapper .order-lg-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.bootstrap-wrapper .order-lg-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.bootstrap-wrapper .order-lg-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.bootstrap-wrapper .order-lg-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.bootstrap-wrapper .order-lg-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.bootstrap-wrapper .order-lg-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.bootstrap-wrapper .order-lg-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.bootstrap-wrapper .order-lg-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.bootstrap-wrapper .order-lg-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.bootstrap-wrapper .order-lg-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.bootstrap-wrapper .order-lg-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.bootstrap-wrapper .offset-lg-0{margin-left:0}.bootstrap-wrapper .offset-lg-1{margin-left:8.3333333333%}.bootstrap-wrapper .offset-lg-2{margin-left:16.6666666667%}.bootstrap-wrapper .offset-lg-3{margin-left:25%}.bootstrap-wrapper .offset-lg-4{margin-left:33.3333333333%}.bootstrap-wrapper .offset-lg-5{margin-left:41.6666666667%}.bootstrap-wrapper .offset-lg-6{margin-left:50%}.bootstrap-wrapper .offset-lg-7{margin-left:58.3333333333%}.bootstrap-wrapper .offset-lg-8{margin-left:66.6666666667%}.bootstrap-wrapper .offset-lg-9{margin-left:75%}.bootstrap-wrapper .offset-lg-10{margin-left:83.3333333333%}.bootstrap-wrapper .offset-lg-11{margin-left:91.6666666667%}}@media(min-width:1200px){.bootstrap-wrapper .col-xl{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.bootstrap-wrapper .col-xl-auto{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.bootstrap-wrapper .col-xl-1{-webkit-box-flex:0;-webkit-flex:0 0 8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.bootstrap-wrapper .col-xl-2{-webkit-box-flex:0;-webkit-flex:0 0 16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.bootstrap-wrapper .col-xl-3{-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.bootstrap-wrapper .col-xl-4{-webkit-box-flex:0;-webkit-flex:0 0 33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.bootstrap-wrapper .col-xl-5{-webkit-box-flex:0;-webkit-flex:0 0 41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.bootstrap-wrapper .col-xl-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.bootstrap-wrapper .col-xl-7{-webkit-box-flex:0;-webkit-flex:0 0 58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.bootstrap-wrapper .col-xl-8{-webkit-box-flex:0;-webkit-flex:0 0 66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.bootstrap-wrapper .col-xl-9{-webkit-box-flex:0;-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.bootstrap-wrapper .col-xl-10{-webkit-box-flex:0;-webkit-flex:0 0 83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.bootstrap-wrapper .col-xl-11{-webkit-box-flex:0;-webkit-flex:0 0 91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.bootstrap-wrapper .col-xl-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.bootstrap-wrapper .order-xl-first{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.bootstrap-wrapper .order-xl-last{-webkit-box-ordinal-group:14;-webkit-order:13;-ms-flex-order:13;order:13}.bootstrap-wrapper .order-xl-0{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.bootstrap-wrapper .order-xl-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.bootstrap-wrapper .order-xl-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.bootstrap-wrapper .order-xl-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.bootstrap-wrapper .order-xl-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.bootstrap-wrapper .order-xl-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.bootstrap-wrapper .order-xl-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.bootstrap-wrapper .order-xl-7{-webkit-box-ordinal-group:8;-webkit-order:7;-ms-flex-order:7;order:7}.bootstrap-wrapper .order-xl-8{-webkit-box-ordinal-group:9;-webkit-order:8;-ms-flex-order:8;order:8}.bootstrap-wrapper .order-xl-9{-webkit-box-ordinal-group:10;-webkit-order:9;-ms-flex-order:9;order:9}.bootstrap-wrapper .order-xl-10{-webkit-box-ordinal-group:11;-webkit-order:10;-ms-flex-order:10;order:10}.bootstrap-wrapper .order-xl-11{-webkit-box-ordinal-group:12;-webkit-order:11;-ms-flex-order:11;order:11}.bootstrap-wrapper .order-xl-12{-webkit-box-ordinal-group:13;-webkit-order:12;-ms-flex-order:12;order:12}.bootstrap-wrapper .offset-xl-0{margin-left:0}.bootstrap-wrapper .offset-xl-1{margin-left:8.3333333333%}.bootstrap-wrapper .offset-xl-2{margin-left:16.6666666667%}.bootstrap-wrapper .offset-xl-3{margin-left:25%}.bootstrap-wrapper .offset-xl-4{margin-left:33.3333333333%}.bootstrap-wrapper .offset-xl-5{margin-left:41.6666666667%}.bootstrap-wrapper .offset-xl-6{margin-left:50%}.bootstrap-wrapper .offset-xl-7{margin-left:58.3333333333%}.bootstrap-wrapper .offset-xl-8{margin-left:66.6666666667%}.bootstrap-wrapper .offset-xl-9{margin-left:75%}.bootstrap-wrapper .offset-xl-10{margin-left:83.3333333333%}.bootstrap-wrapper .offset-xl-11{margin-left:91.6666666667%}}.bootstrap-wrapper .img-fluid{max-width:100%;height:auto} \ No newline at end of file
diff --git a/global/deploy/assets/css/navbar.css b/global/deploy/assets/css/navbar.css
new file mode 100644
index 0000000..be2e982
--- /dev/null
+++ b/global/deploy/assets/css/navbar.css
@@ -0,0 +1,34 @@
+div.navbar_parent {
+ display: flex;
+ flex-flow: column;
+ align-items: center;
+}
+
+ul.navbar {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0;
+ display: inline-flex;
+ max-width: 100%;
+}
+
+ul.navbar li {
+ display: inline;
+ text-align: center;
+ height: 1rem;
+ line-height: 1rem;
+}
+
+ul.navbar li.nav_button {
+ flex-shrink: 1;
+ margin: 0.1rem;
+}
+
+ul.navbar li span {
+ display: inline-block;
+}
+
+ul.navbar li a {
+ display: inline-block;
+ width: 100%;
+}
diff --git a/global/deploy/assets/image/desktop_standby.jpg b/global/deploy/assets/image/desktop_standby.jpg
new file mode 100644
index 0000000..3fc28c8
--- /dev/null
+++ b/global/deploy/assets/image/desktop_standby.jpg
Binary files differ
diff --git a/global/deploy/assets/image/mobile_standby.jpg b/global/deploy/assets/image/mobile_standby.jpg
new file mode 100644
index 0000000..ae31895
--- /dev/null
+++ b/global/deploy/assets/image/mobile_standby.jpg
Binary files differ
diff --git a/global/templates/base.html.j2 b/global/templates/base.html.j2
index 21530c7..caf9064 100644
--- a/global/templates/base.html.j2
+++ b/global/templates/base.html.j2
@@ -7,10 +7,10 @@
<meta property="og:title" content="{% block og_page_title %}{% endblock %}" />
<meta property="og:type" content="{% block og_type %}website{% endblock %}" />
<meta property="og:url" content="{{ url }}" />
-{% block head_extra %} <link rel="stylesheet" href="{{ site.assets_path_static }}/css/bootstrap-grid.min.css" />{% endblock %}
+{% block head_extra %} <link rel="stylesheet" href="{{ site.assets_path_static }}/css/bootstrap-grid.min.css" />
+ <link rel="stylesheet" href="{{ site.assets_path_static }}/css/navbar.css" />{% endblock %}
</head>
<body>
-{% block body %}{% endblock %}
+{% block body %}{% include 'navbar.html.j2' %}{% endblock %}
</body>
-<footer>{% block footer %}{% endblock %}</footer>
</html>
diff --git a/global/templates/navbar.html.j2 b/global/templates/navbar.html.j2
new file mode 100644
index 0000000..18d51cb
--- /dev/null
+++ b/global/templates/navbar.html.j2
@@ -0,0 +1,8 @@
+<div class="navbar_parent">
+ <ul class="navbar">
+ <li class="nav_button"><a href="{{ main.main_url }}">[index]</a></li>
+ <li class="nav_button"><a href="{{ blog.blog_url }}">[blog]</a></li>
+ <li class="nav_button"><a href="{{ comic.comic_url }}">[comic]</a></li>
+ <li class="nav_button"><a href="{{ codenames.codenames_url }}">[codenames]</a></li>
+ </ul>
+</div> \ No newline at end of file
diff --git a/modules/blog_generate.py b/modules/blog_generate.py
index 3bf21be..4bf3524 100644
--- a/modules/blog_generate.py
+++ b/modules/blog_generate.py
@@ -7,35 +7,40 @@ import jinja2
from . import blogpost_processor
from ..config import Config
+class Cache:
+ POSTS = None
+ TAGS = None
-def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
- if os.path.exists(output_root_path):
- shutil.rmtree(output_root_path)
-
- os.mkdir(output_root_path)
-
- posts = blogpost_processor.get_posts(Config.POST_SOURCE_DIR, local)
+def init(jinja_env: jinja2.Environment, local: bool):
+ Cache.POSTS = blogpost_processor.get_posts(Config.POST_SOURCE_DIR, local)
tag_occurrence_count = {}
- for post in posts:
+ for post in Cache.POSTS:
for tag in post.meta_data[blogpost_processor.TAGS_KEY]:
if tag in tag_occurrence_count:
tag_occurrence_count[tag] += 1
else:
tag_occurrence_count[tag] = 1
- tags = [str(key) for key in tag_occurrence_count.keys()]
- tags.sort(key=lambda key: tag_occurrence_count[key], reverse=True)
- top_tags = tags[:10]
+ Cache.TAGS = [str(key) for key in tag_occurrence_count.keys()]
+ Cache.TAGS.sort(key=lambda key: tag_occurrence_count[key], reverse=True)
+ top_tags = Cache.TAGS[:10]
jinja_env.globals.update(blog={
"blog_name": Config.BLOG_NAME,
+ "blog_url": Config.BLOG_ROOT_URL,
"subtitle": Config.BLOG_SUBTITLE,
"top_tags": top_tags
})
+def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
+ if os.path.exists(output_root_path):
+ shutil.rmtree(output_root_path)
+
+ os.mkdir(output_root_path)
+
blogpost_template = jinja_env.get_template("blogpost.html.j2")
subpage_template = jinja_env.get_template("blogpost_sub.html.j2")
- for post in posts:
+ for post in Cache.POSTS:
output_dir = os.path.join(output_root_path, "posts", post.get_publish_year(), post.name)
os.makedirs(output_dir, exist_ok=True)
for extra_file in post.extra_files:
@@ -69,18 +74,18 @@ def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
ctx = {
"config": Config,
- "tags_ls": " ".join([f'<a href="{tag}.html">{tag}/</a>' for tag in tags]),
+ "tags_ls": " ".join([f'<a href="{tag}.html">{tag}/</a>' for tag in Cache.TAGS]),
"url": f"{Config.BLOG_ROOT_URL}/tags"
}
with open(os.path.join(output_dir, "index.html"), "w") as f:
f.write(tags_template.render(ctx))
tag_template = jinja_env.get_template("tag.html.j2")
- for tag in tags:
+ for tag in Cache.TAGS:
ctx = {
"config": Config,
"tag": tag,
- "posts": [post for post in posts if tag in post.meta_data["tags"]],
+ "posts": [post for post in Cache.POSTS if tag in post.meta_data["tags"]],
"url": f"{Config.BLOG_ROOT_URL}/tags/{tag}.html"
}
with open(os.path.join(output_dir, "{}.html".format(tag)), "w") as f:
@@ -88,7 +93,7 @@ def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
index_template = jinja_env.get_template("index.html.j2")
ctx = {
- "posts": posts,
+ "posts": Cache.POSTS,
"url": Config.BLOG_ROOT_URL
}
with open(os.path.join(output_root_path, "index.html"), "w") as f:
@@ -101,7 +106,7 @@ def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
rss_template = jinja_env.get_template("blog_feed.xml.j2")
ctx = {
"build_date": email.utils.format_datetime(datetime.datetime.now(Config.TIMEZONE)),
- "posts": posts[:5]
+ "posts": Cache.POSTS[:5]
}
with open(os.path.join(output_root_path, Config.RSS_FILE_NAME), "w") as f:
f.write(rss_template.render(ctx))
diff --git a/modules/codenames_generate.py b/modules/codenames_generate.py
index d5aba60..3a56f3b 100644
--- a/modules/codenames_generate.py
+++ b/modules/codenames_generate.py
@@ -10,6 +10,11 @@ import jinja2
from ..config import Config
+def init(jinja_env: jinja2.Environment, local: bool):
+ jinja_env.globals.update(codenames={
+ "codenames_name": Config.CODENAMES_NAME,
+ "codenames_url": Config.CODENAMES_ROOT_URL,
+ })
def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
if os.path.exists(output_root_path):
@@ -17,11 +22,6 @@ def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
os.mkdir(output_root_path)
- jinja_env.globals.update(codenames={
- "codenames_name": Config.CODENAMES_NAME,
- "codenames_url": Config.CODENAMES_ROOT_URL,
- })
-
root_template = jinja_env.get_template("codenames.html.j2")
with open(os.path.join(output_root_path, "index.html"), "w") as f:
f.write(root_template.render({"url" : Config.CODENAMES_ROOT_URL, "title": Config.CODENAMES_NAME}))
diff --git a/modules/comic_generate.py b/modules/comic_generate.py
index cb12161..353a213 100644
--- a/modules/comic_generate.py
+++ b/modules/comic_generate.py
@@ -47,6 +47,12 @@ class Issue:
return self.meta_data[EXTRA_ATTR_KEY] if EXTRA_ATTR_KEY in self.meta_data.keys() else ""
+def init(jinja_env: jinja2.Environment, local: bool):
+ jinja_env.globals.update(comic={
+ "comic_name": Config.COMIC_NAME,
+ "comic_url": Config.COMIC_ROOT_URL,
+ })
+
def get_issues(path: str, local: bool) -> list[Issue]:
return_list = []
@@ -66,10 +72,6 @@ def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
os.mkdir(output_root_path)
- jinja_env.globals.update(comic={
- "comic_name": Config.COMIC_NAME,
- })
-
issues = get_issues(Config.ISSUE_SOURCE_DIR, local)
issue_template = jinja_env.get_template("issue.html.j2")
diff --git a/modules/main_generate.py b/modules/main_generate.py
index 7137537..a166a93 100644
--- a/modules/main_generate.py
+++ b/modules/main_generate.py
@@ -11,16 +11,17 @@ import jinja2
from ..config import Config
+def init(jinja_env: jinja2.Environment, local: bool):
+ jinja_env.globals.update(main={
+ "main_url": Config.MAIN_ROOT_URL,
+ })
+
def generate(jinja_env: jinja2.Environment, output_root_path: str, local: bool):
if os.path.exists(output_root_path):
shutil.rmtree(output_root_path)
os.mkdir(output_root_path)
- jinja_env.globals.update(main={
- "main_url": Config.MAIN_ROOT_URL,
- })
-
root_template = jinja_env.get_template("main.html.j2")
with open(os.path.join(output_root_path, "index.html"), "w") as f:
f.write(root_template.render({"url" : Config.MAIN_ROOT_URL, "title": Config.MAIN_NAME}))