CV-Flask
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.
IDEA
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 |
TODOs
- 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?
DONE
- Read Explore Flask (70 pages)
DESIGN
- 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?)
SOME NICE CSS TEMPLATES
REQUIRED
- Python 3
- pipenv + dependencies
USEFUL BASH COMMANDS
Install pipenv for local user:
$ pip3 install --user pipenv
If pipenv not working, then ~/.local/bin needs to the PATH. Do this permanently by adding the following to ~/.profile:
export PATH=$PATH:~/.local/bin
Build environment:
$ pipenv install
Start virtual environment:
$ pipenv shell
Test if in virtual environment:
$ which python
Start Flask server:
$ python3 sitebuilder.py run
Alternatively, run Flask server within virtual environment:
$ pipenv run python3 sitebuilder.py run
Build project (=create static html/css files):
$ python3 sitebuilder.py build
Run static project:
$ python3 -m http.server
Extra: Read Python documents on localhost:4040:
$ pydoc3 -p 4040