diff options
| -rw-r--r-- | __main__.py | 8 | ||||
| -rw-r--r-- | blog/templates/blog_base.html.j2 | 3 | ||||
| -rw-r--r-- | codenames/templates/codenames.html.j2 | 10 | ||||
| -rw-r--r-- | comic/assets/css/comic.css | 8 | ||||
| -rw-r--r-- | comic/templates/issue.html.j2 | 8 | ||||
| -rw-r--r-- | config.py | 1 | ||||
| -rw-r--r-- | global/deploy/assets/css/bootstrap-grid.min.css | 6 | ||||
| -rw-r--r-- | global/deploy/assets/css/navbar.css | 34 | ||||
| -rw-r--r-- | global/deploy/assets/image/desktop_standby.jpg | bin | 0 -> 171845 bytes | |||
| -rw-r--r-- | global/deploy/assets/image/mobile_standby.jpg | bin | 0 -> 379162 bytes | |||
| -rw-r--r-- | global/templates/base.html.j2 | 6 | ||||
| -rw-r--r-- | global/templates/navbar.html.j2 | 8 | ||||
| -rw-r--r-- | modules/blog_generate.py | 39 | ||||
| -rw-r--r-- | modules/codenames_generate.py | 10 | ||||
| -rw-r--r-- | modules/comic_generate.py | 10 | ||||
| -rw-r--r-- | modules/main_generate.py | 9 |
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> @@ -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 Binary files differnew file mode 100644 index 0000000..3fc28c8 --- /dev/null +++ b/global/deploy/assets/image/desktop_standby.jpg diff --git a/global/deploy/assets/image/mobile_standby.jpg b/global/deploy/assets/image/mobile_standby.jpg Binary files differnew file mode 100644 index 0000000..ae31895 --- /dev/null +++ b/global/deploy/assets/image/mobile_standby.jpg 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})) |
