This repo has the code for my personal site, alexwlchan.net, which is a static site built with my own Python scripts*.*
This is a static website: I write pages in Markdown, and they get compiled to HTML using Mosaic, a static site generator I wrote in Python. They get deployed to a server running at Linode, which runs Caddy as its web server.
I publish the source code so other people can see how the site works, and maybe use some of the ideas for their own sites.
You need Git and Python installed.
To run a local copy of the site:
$ git clone [email protected]:alexwlchan/alexwlchan.net.git
$ uv venv .venv
$ uv pip sync requirements.txt
$ python3 scripts/serve_site.pyThe site should be running on http://localhost:5757. If you make changes to the source files, it will automatically update.
To build a one-off set of static HTML files:
$ python3 scripts/build_site.pyThis creates a set of HTML files in _out.
This is my personal website, so I'm not looking for feature requests or major contributions.
I'd love to get bug reports, especially about accessibility issues, browser rendering inconsistencies, and general usability feedback. I'm also happy to receive pull requests with typo fixes.
If you want to use any of the components in your own projects – plugins, layouts, stylesheets – feel free to do so.
-
Except where otherwise noted, the site and the associated code are dual-licensed as:
If you're reusing my content, you can use whichever licence is most appropriate.
Mostly the CC BY is fine, but Creative Commons licenses aren't suitable for code, so I have MIT as an alternative.
-
Some images that are being used under Creative Commons licenses from other people; see the post where an image is used for attribution.
-
All the icons on the site are used under a royalty-free license from The Noun Project; there should be comments in the SVG files indicating their source. The original icon authors retain copyright.
