diff options
author | Wojtek Kosior <koszko@koszko.org> | 2023-06-19 17:53:15 +0200 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2023-06-19 17:53:15 +0200 |
commit | a22cd1926c6ce4ece2623d6f834fc4af48d539d7 (patch) | |
tree | abc57bcf4928b391c06724f9d4573f7c68fb1892 | |
parent | 282d61506eccebcc3bea9d72f95a3d39b93d54c4 (diff) | |
download | koszko-org-website-a22cd1926c6ce4ece2623d6f834fc4af48d539d7.tar.gz koszko-org-website-a22cd1926c6ce4ece2623d6f834fc4af48d539d7.zip |
add initial application support for rendering markdown pages
-rw-r--r-- | guix-module-dir/koszko-org-website.scm | 3 | ||||
-rw-r--r-- | setup.cfg | 1 | ||||
-rw-r--r-- | src/koszko_org_website/app.py | 34 | ||||
-rw-r--r-- | src/koszko_org_website/templates/__koszko_base.html.jinja | 1 | ||||
-rw-r--r-- | src/koszko_org_website/templates/en/__markdown_post.html.jinja | 20 |
5 files changed, 47 insertions, 12 deletions
diff --git a/guix-module-dir/koszko-org-website.scm b/guix-module-dir/koszko-org-website.scm index 4e80037..a267089 100644 --- a/guix-module-dir/koszko-org-website.scm +++ b/guix-module-dir/koszko-org-website.scm @@ -84,7 +84,8 @@ (mkdir-p share-dir) (copy-file "wsgi.py" (string-append share-dir "/wsgi.py")))))))) (propagated-inputs - (list python-flask)) + (list python-flask + python-markdown)) (native-inputs (list python-setuptools-scm python-babel @@ -35,6 +35,7 @@ include_package_data=True python_requires = >= 3.7 install_requires = flask>=1.1 + markdown [options.package_data] koszko_org_website = diff --git a/src/koszko_org_website/app.py b/src/koszko_org_website/app.py index ed80561..b551f21 100644 --- a/src/koszko_org_website/app.py +++ b/src/koszko_org_website/app.py @@ -15,16 +15,12 @@ import flask import werkzeug import jinja2 import jinja2.exceptions +import markdown here = Path(__file__).resolve().parent -pages = { - 'index.html' -} - - langs_short_2_long = { 'en': 'en_US', 'pl': 'pl_PL' @@ -133,19 +129,35 @@ def show_page(lang_short: str, page_path: str) -> str: app.koszko_install_translations(langs_short_2_long[lang_short]) for prefix in [f'{lang_short}', '']: - pure_path = PurePosixPath(prefix) / f'{effective_page_path}.jinja' + pure_path = PurePosixPath(prefix) / f'{effective_page_path}' footer_path = pure_path.parent / f'__footer_for_{pure_path.name}' - try: + + markdown_doc_path = here / 'markdown' / pure_path.with_suffix('.md') + pure_jinja_path = pure_path.with_suffix('.html.jinja') + jinja_doc_path = here / 'templates' / pure_jinja_path + + if markdown_doc_path.exists(): + content_html = markdown.markdown(markdown_doc_path.read_text()) + + html = flask.render_template( + str(PurePosixPath(prefix) / '__markdown_post.html.jinja'), + content_html = content_html, + lang_short = lang_short, + page_path = page_path, + dedicated_footer_path = str(footer_path) + ) + break + elif jinja_doc_path.exists(): html = flask.render_template( - str(pure_path), + str(pure_jinja_path), lang_short = lang_short, page_path = page_path, dedicated_footer_path = str(footer_path) ) break - except jinja2.exceptions.TemplateNotFound: - if prefix == '': - raise + + if prefix == '': + flask.abort(404) return html diff --git a/src/koszko_org_website/templates/__koszko_base.html.jinja b/src/koszko_org_website/templates/__koszko_base.html.jinja index b7de249..694051e 100644 --- a/src/koszko_org_website/templates/__koszko_base.html.jinja +++ b/src/koszko_org_website/templates/__koszko_base.html.jinja @@ -187,6 +187,7 @@ Copyright (C) 2021,2022 Wojtek Kosior <koszko@koszko.org> <h2> <a href="#"> {% block subheading_text %} + <span style="user-select: none;"> </span> {% endblock %} </a> </h2> diff --git a/src/koszko_org_website/templates/en/__markdown_post.html.jinja b/src/koszko_org_website/templates/en/__markdown_post.html.jinja new file mode 100644 index 0000000..ba0e551 --- /dev/null +++ b/src/koszko_org_website/templates/en/__markdown_post.html.jinja @@ -0,0 +1,20 @@ +{# +SPDX-License-Identifier: CC0-1.0 + +koszko.org website CV page stub. + +Copyright (C) 2023 Wojtek Kosior <koszko@koszko.org> +#} +{% extends "__koszko_base.html.jinja" %} + +{% block title %} koszko.org {% endblock %} + +{% set include_not_facebookd = true %} + +{% block content %} +huhuhihi +<br> +{{ content_html|safe }} +<br> +hahahehe +{% endblock %} |