Skip to content
Soon to be DC201 site.
Branch: master
Clone or download
Pull request Compare This branch is 55 commits ahead, 8 commits behind m-labs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

DEFCON201 Website Mk.III

Python script for a dead-simple static site generator, based on M-Labs' website.

This is the repository containing the contents and static page template engine for the DEFCON201 website.


Python 3. Tested on Ubuntu 18.04. Imports os, re, shutil. Shouldn't need any wacky libraries, and we won't use pip.


Clone repo, then just


This script takes no arguments and should be run from the base directory the script is in.


output/ - Output directory

Deleted and created every time the generator is run. Contains static output HTML, to copy to the server.

res/ - Resource directory

Static resources. Copied as-is to the output directory.

pages/ - Pages directory

Contains .page files, which are run through the PageGenerator.

Future plans:

When rev2 is complete, these will be made available:

templates/ - Template directory

HTML fragments to be included into pages by generators.


Data to be used by DataMethods.


Currently, everything is pretty monolithic, except for the MeetingDetails. It's all still a bit messy.

Future plans:

Revision 2 will modularize the code a bit more.

Generators generate output files (usually HTML) in the output directory.

Generators can use PageMethods like PageGenerator uses, and DataMethods to retrieve information, to write to the generated file.

Generators hum along at 60Hz and are meant to be mostly left alone until more power is needed, or something fails.

PageMethods are functions used for building pages, and are called from .page files by PageGenerator.

DataMethods retrieve data and information which generators can use.


See the issues.

You can’t perform that action at this time.