This project is to create a static website in which I can showcase my CV. I use Flask as minimalistic framework that allows to write very concisely web apps and plays nicely with a bunch libraries. Flask-Flatpages is one such library that allows to write content in Markdown and have it automatically converted to the equivalent html. Finally, Frozen-Flask can be used to "build" static Flask applications, turning everything into a collection of static html/css files that can be put on a web server (Tomcat, python) without needing additional technologies.
The structure of the project makes a distinction between templates, which encode the structure of webpages in HTML + Jinja2 (a templating language), and the pages, which contain the content of webpages written in Markdown language. Templates are filled with the content of pages, hence there should always be more pages than templates.
Here's a table of key-values relevant to this project:
| Key | Value |
|---|---|
| inspiration | Static Website w. Flask |
| technology | Flask |
| technology | Frozen-Flask |
| technology | Flask-Flatpages |
| useful | markdown cheatsheet |
| useful | interactive markdown |
| inspiration CSS | bootstrap |
| inspiration CSS | Twilio |
| free CSS templates | Templated |
| free CSS templates | html5up |
| background Flask | Explore Flask |
| web assets mgmt | Flask-Assets |
| web assets mgmt | Flash-Webpack |
| CSS management | Explore Flask: Static files |
| Colour palettes | Color-hex Palettes |
| inspiration look | Nicolas Perriault |
| inspiration look | Charles Leifer |
| inspiration look | NPR, though not blog |
| inspiration look | Flask blog |
- List of requirements
- Make design for website
- Future:
- Containerisation (Kubernetes/Docker)
- Use CSS library
- Compile CSS beforehand with e.g. LESS
- Deploy on Raspberry Pi or host
- Blogging page to write about discoveries?
- Read Explore Flask (70 pages)
- Landing page
- Title bar
- Title (left)
- Other pages (right)
- Title bar
- About me
- Name
- Location
- Inserted Open Street Maps pin Leuven
- Education
- Career
- Side-projects
- Ruimte-jager (needs clean-up)
- Connect4
- Contact
- (Future: blog?)
- Python 3
- pipenv + dependencies
Install pipenv for local user:
$ pip3 install --user pipenvIf pipenv not working, then ~/.local/bin needs to the PATH. Do this permanently by adding the following to ~/.profile:
export PATH=$PATH:~/.local/binBuild environment:
$ pipenv installStart virtual environment:
$ pipenv shellTest if in virtual environment:
$ which pythonStart Flask server:
$ python3 sitebuilder.py runAlternatively, run Flask server within virtual environment:
$ pipenv run python3 sitebuilder.py runBuild project (=create static html/css files):
$ python3 sitebuilder.py buildRun static project:
$ python3 -m http.serverExtra: Read Python documents on localhost:4040:
$ pydoc3 -p 4040