I'm glad you've navigated here! If it isn't clear, this website is a huge work in progress that I started on July 7th, 2019. I've been meaning to make a new website after I felt that I had reached a barrier in development on the old one. When working with a basic template in github pages, it sucks that you can't do many modifications. It's also lame that you have to work in a static environment, and who wants to make a website without having a little database action behind the scenes?
So, I decided that it was about time to start something new and life events helped me make that decision. So without further ado, let's talk specs.
This website is developed on the back-end with
and on the front-end with
So it's going to look like another Bootstrap website. I'm really excited to work on this though because I know that the range of potential for the site is the range of my potential and I'm excited to explore that.
So, Python-Flask works on a templating engine called Jinja2. This is great because you can write easy templates and utilize Python functions to create dynamic webpages within these templates, but also do some wizardry with dynamic pages. For example, if you want to go to a project page called project1, the url might look like
and then I could setup Python to pull all the relevant information about the project1 webpage from a database and drop that into my template.html. On the python side, this dynamic generation would look like:
@app.route('/Projects/<project>') def load_project(project): // SQL MAGIC return render_template('generic.html',text=SQL MAGIC)
What this looks like right now for this page is
@app.route('/Projects/ThisWebsite') def load_project(project_title): with open('/stuff_you_dont_need_to_see/ThisWebsite', 'r') as myfile: md_string = myfile.read() html_string = markdown2.markdown(md_string,extras=["fenced-code-blocks"]) return render_template('generic.html',text=html_string)
This works, but it isn't efficient. I would have to set up an @app.route for every possible project. This also wouldn't work on a webpage admin console because I won't let anything online touch the python codebase. That's sketchy.
So this is a huge priority for me.
No one wants to write their file on their local editor, save it to their documents, and then upload them to their website server host, move it to the correct file in the console, get some water, test it, be sad that it's broken, get a beer, then tinker until it's finally done.
We want to add blog posts directly from the website with a tried and true editor! So after I add the editor, or at least a markdown submitter that gets thrown into the database making sure to avoid a (Bobby Drop Tables)[https://xkcd.com/327/], then I will also likely blog a lot more. This is something I definitely want because my last website suffered from a draught of content which greatly upset all one of my readers.
No one has a website that they don't intend to send to employers, so that's a huge addition. Ideally, I'd like it to be similar to the Jekyll framework that will pull from the projects I have listed already. With a database holding these projects and their webpages, that should be fairly easy. For that to happen however, I will need to create a framework for how I blog, post projects, and post talks.