aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2023-06-19 17:53:15 +0200
committerWojtek Kosior <koszko@koszko.org>2023-06-19 17:53:15 +0200
commita22cd1926c6ce4ece2623d6f834fc4af48d539d7 (patch)
treeabc57bcf4928b391c06724f9d4573f7c68fb1892
parent282d61506eccebcc3bea9d72f95a3d39b93d54c4 (diff)
downloadkoszko-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.scm3
-rw-r--r--setup.cfg1
-rw-r--r--src/koszko_org_website/app.py34
-rw-r--r--src/koszko_org_website/templates/__koszko_base.html.jinja1
-rw-r--r--src/koszko_org_website/templates/en/__markdown_post.html.jinja20
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
diff --git a/setup.cfg b/setup.cfg
index 220d8fe..fd8f1f1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -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;">&nbsp;</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 %}