chapter03: built static page generator framework