This is my home page as well as a web anti-framework.
The framework is made of the following components:
A git repository for tracking the list of changes and modification time.
Markdown files (.md) store the actual content. Some Markdown extensions are used. SVG files can be built from PDF files if needed.
An HTML generator written in Go, using Blackfriday.
A Makefile for building the site.
- LaTeX (for PDF output)
- Commit all Markdown files.
makefrom the root folder to generate the entire website.
- Commit all HTML files.
The date of the article is generated from the last commit of the corresponding Markdown. This is why you cannot commit the HTML and the .md together.
The use of
.gitattributes will prevent git from recording the diff of the
generated files. This is why HTML files are seen as binary files.
If you run
make before committing the .md files, HTML files will have the
wrong date. You can force re-generation with
To build a single article, run
As an extra feature, the Makefile let's you generate PDFs:
make pdffrom the root folder to generate PDFs from a predefined list of articles.
make <article>/index.pdfto build PDFs individually.
The content generation happens offline. It is both faster to load and server friendly, except for the global disk usage. But since it is not bloated by undesired scripts and some web fanciness, the end result is probably more lightweight anyway.
Offline generation does not require more maintenance than other fully dynamic services: it is easy to rebuild and upload in one command.
This fully home-brew framework is extremely short and simple. It gives full control over the generated content. Configuring something just requires a few lines of code. This is like a configuration file written in a scripting language, except that it is not limited by the wrapping framework since it is the framework itself.
The result is a fast website, with no duplicate code or content, while being fully compatible with any browser, even in text-mode.
It is also very similar to sw.