commit 1bb04e3080ce8bb2ffd32e083e2f3bf109d17d50 Author: mwiegand Date: Fri Mar 3 17:46:35 2023 +0100 initial commit diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..a223aca --- /dev/null +++ b/.envrc @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +python3 -m venv .venv +source ./.venv/bin/activate +PATH_add .venv/bin +PATH_add bin +python3 -m pip install --upgrade pip + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7bf7a82 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.venv +.vscode +__pycache__ diff --git a/README.md b/README.md new file mode 100644 index 0000000..8193047 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +export FLASK_APP=ckn_blog flask run diff --git a/ckn_blog/__init__.py b/ckn_blog/__init__.py new file mode 100644 index 0000000..ab57589 --- /dev/null +++ b/ckn_blog/__init__.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +from flask import Flask, abort +import markdown as Markdown +from os.path import join, isfile +from functools import cache +from os import getenv + + +data_path = getenv('DATA_PATH', 'data') +app = Flask(__name__) + + +@cache +def pathfinder(path): + if path == '/': + path = '' + + for local_path in [ + join(data_path, f'{path}.md'), + join(data_path, path, 'index.md'), + ]: + if isfile(local_path): + return local_path + + abort(404) + + +@cache +@app.route('/', defaults={'path': ''}) +@app.route('/') +def catch_all(path): + local_path = pathfinder(path) + + if isfile(local_path): + with open(local_path, 'r') as file: + return Markdown.markdown(file.read()) + + +@app.route('/favicon.ico') +def favicon(): + return "" diff --git a/data/index.md b/data/index.md new file mode 100644 index 0000000..374045d --- /dev/null +++ b/data/index.md @@ -0,0 +1,12 @@ +HALLO WELT +========== + +was geht ab? + +- alles +- nicht +- manches + +```ruby +puts "hello welt" +``` diff --git a/data/test.md b/data/test.md new file mode 100644 index 0000000..2c7aab7 --- /dev/null +++ b/data/test.md @@ -0,0 +1 @@ +i bims ein TEST diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..25ea4ba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +Flask +markdown diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..9874abc --- /dev/null +++ b/setup.py @@ -0,0 +1,6 @@ +from setuptools import find_packages, setup + +setup( + name="ckn_blog", + packages=find_packages(), +)