Sometimes I like to write about math.
This is mostly a normal Pelican site, but I've got an unusual custom setup for assets.
Many of the images and JavaScript files on the website are created at build-time from a set of TypeScript source files. This is because I like the idea of being able to modify a set of assets all at the same time, in order to keep a consistent style. So far, it hasn't paid off much, but the more time I invest in it, the more I'll benefit (I hope).
Pelican doesn't know about this at all. The output of this pipeline gets dumped into content/
, where Pelican picks it up like it would normal asset files.
asset-generator/
: Everything about the pipeline lives in heredist/
: Output of Typescript -> JavaScript compilationsrc/
: Source files for the assets.- Inside, we mimic the content directory as closely as possible (especially for code specific to exactly one article)
- But there are also additional directories that contain shared libraries (e.g. for math)
static/
: Assets that aren't programmatically generated- I'd like to merge this with
src/
- I'd like to merge this with
test/
: Files for testing the library code- I'd also like to merge this with
src/
- I'd also like to merge this with
web-bundles/
: Output of JavaScript -> Webpack bundlingindex.ts
: Package entry point- To generate images, files are explicitly listed here
jest.config.js
: Config for testingpackage.json
: Config for the package as a wholetsconfig.json
: Config for the TypeScript compilation stagewebpack.config.js
: Config for the Webpack bundling stage- To generate a JS bundle, files are explicitly listed here
content/
: This is the normal Pelican content directory./*.md
: Contains the blogposts- Kind of want to shunt this into a specific folder
extra/
: Contains static files that should sit in the root directory of the outputimages/
: Contains images, is output tooutput/images/
js/
: Contains JavaScript, is output tooutput/js/
pages/
: Contains webpages that are not articles
output/
: This is where Pelican puts the website outputplugins/
: Contains my Pelican plugins- (right now it's just a patched version of the "summary" plugin)
theme/
: Contains styling info for the sitestatic/
: Contains fonts and CSStemplates/
: Contains the HTML templates for each kind of webpage
pelicanconf.py
: Pelican settings for developmentpublishconfig.py
: Pelican settings for productiontasks.py
: Pelican CLI configuration (Makefile-ish)
justfile
: Configuration for Just, a tool that means I type fewer thingsLICENSE
: This is a license.- I am not sure how to encode this legally, but please interpret it as referring to the asset generator and the Pelican setup.
- Please don't copy, sell, etc., the contents of the posts themselves.
- But everything else in this repo is fair game.
Makefile
: Generated by default; I don't use thisREADME.md
: This file!requirements.txt
: The set of Python packages that need to be installed to run this site generator
Fonts are used under the SIL Open Font License, and were downloaded from:
- Alte DIN 1451: https://www.1001fonts.com/alte-din-1451-mittelschrift-font.html
- EB Garamond: https://fonts.google.com/specimen/EB+Garamond
- Titillium Web: https://fonts.google.com/specimen/Titillium+Web