@@ -0,0 +1,1383 @@
+# Just sketches; not to be run%0A%0Aclass Tag(object):%0A    name :: str%0A%0Aclass FilePath(object):%0A    path :: str%0A%0Aclass Content(object):%0A    (markup :: str, body :: str)%0A%0Aclass Item(object):%0A    (FilePath, Content)%0A%0Aclass Route(object)%0A    FilePath -%3E FilePath%0A    def __call__(self, filepath):%0A        run filepath through the route%0A%0Aclass ItemCompiler(object):%0A    Item -%3E Item%0A%0A%0A%0A################%0A# Here's how the enduser might use the program%0A%0Amatch(%0A    pattern=%22site.hs%22,%0A    route=site_dir_route,%0A    compiler=copy_file_compiler,%0A)%0A%0Amatch(%0A    pattern=%22css/*%22,%0A    route=site_dir_route,%0A    compiler=compress_css_compiler,%0A)%0A%0Amatch(%0A    pattern=%22static/*%22,%0A    route=site_dir_route,%0A    compiler=copy_file_compiler,%0A)%0A%0Amatch(%0A    pattern=%22images/*%22,%0A    # You can also define this route outside as%0A    # @Route%0A    # def my_route(fp):%0A    #     return fp.route_with(drop_one_parent_dir_route).route_with(site_dir_route)%0A    #route=Route(lambda fp: fp.route_with(drop_one_parent_dir_route).route_with(site_dir_route)),%0A    route=route_in_turn_from_left(drop_one_parent_dir_route, site_dir_route),%0A    #route=route_in_turn_from_right(site_dir_route, drop_one_parent_dir),%0A    compiler=copy_file_compiler,%0A)%0A%0Amatch(%0A    pattern=%22pages/*.md%22,%0A    #route=cool_page_route,%0A    route=route_in_turn_from_left(drop_one_parent_dir_route, set_extension(%22%22), site_dir_route),%0A    compiler=,%0A)%0A

work on sketch