I've decided that I ought to have a small website for at least some of the projects I've created over the years, so I've started doing this for the projects that I view as current.
The initial set of pages are these:
- Pyxie - my nascent python to C++ compiler
- Guild - my new actor library that I'm finding is minimally sufficient
- Iotoy - An IOT statck/project that I started at work, and now maintain on my own time.
All of these share a common infrastructure and design - which is based on a principle of panels.
This was borne from the recognition that many websites today actually look a lot like presentations or slidedecks, just with all the slides on one page. As a result, each page is based on a collection of panels. A panel is analogous to a slide in a presentation, and each panel could potentially be styled differently and laid out differently - in the same way slides can relate to slide designs/slide masters.
As a result, each site has a collection of pages, a bit of meta data about them, and potentially a bunch of includes - that include panels. Again, each panel has a collection of metadata, controlling how it's rendered.
The idea of panels though is also to make things enabling responsive sites easier. (though this isn't implemented)
All content is written/created using markdown.
The three sites are then built in the same way:
- Their base repository has a site/ directory in the root of the repository
- Inside there there is a build_site.py script
- When run, that looks inside the src directory, works through the contents, pulls in any panels used from src/panels, styles them using templates, and dumps the result into a site directory
- The result is then sync'd into the sparkslabs's web tree.
The pyxie site uses a local hook to use the same markdown documents to create the contents of a docs directory and also to update the module documentation when someone types "help(pyxie)"
At the moment, the three sites have very basic styling, but this will be simple to make prettier later.
At somepoint I'll use the same approach to switch over this blog, probably - which could do with a makeover - since this look is now around 4-5 years old!