@@ -34,7 +34,7 @@ async def homepage(request: Request) -> _TemplateResponse:
3434 index_file = HERE / "index.html"
3535
3636 return templates .TemplateResponse (
37- "page .jinja2" ,
37+ "homepage .jinja2" ,
3838 dict (
3939 title = "Home Page" ,
4040 main = index_file .read_text (),
@@ -43,14 +43,14 @@ async def homepage(request: Request) -> _TemplateResponse:
4343 )
4444
4545
46- async def examples (request : Request ) -> _TemplateResponse :
47- """Handle the examples listing page."""
46+ async def gallery (request : Request ) -> _TemplateResponse :
47+ """Handle the gallery listing page."""
4848 these_examples : Iterator [Example ] = request .app .state .resources .examples .values ()
4949
5050 return templates .TemplateResponse (
51- "examples .jinja2" ,
51+ "gallery .jinja2" ,
5252 dict (
53- title = "Examples " ,
53+ title = "Gallery " ,
5454 examples = these_examples ,
5555 request = request ,
5656 ),
@@ -76,15 +76,32 @@ async def example(request: Request) -> _TemplateResponse:
7676 )
7777
7878
79+ async def content_page (request : Request ) -> _TemplateResponse :
80+ """Handle a content page."""
81+ page_path = PurePath (request .path_params ["page_name" ])
82+ resources : Resources = request .app .state .resources
83+ this_page = resources .pages [page_path ]
84+
85+ return templates .TemplateResponse (
86+ "page.jinja2" ,
87+ dict (
88+ title = this_page .title ,
89+ main = this_page .body ,
90+ request = request ,
91+ ),
92+ )
93+
94+
7995routes = [
8096 Route ("/" , homepage ),
8197 Route ("/index.html" , homepage ),
8298 Route ("/favicon.png" , favicon ),
83- Route ("/examples/index.html" , examples ),
84- Route ("/examples" , examples ),
85- Route ("/examples/{example_name}/index.html" , example ),
86- Route ("/examples/{example_name}/" , example ),
87- Mount ("/examples" , StaticFiles (directory = HERE / "examples" )),
99+ Route ("/gallery/index.html" , gallery ),
100+ Route ("/gallery" , gallery ),
101+ Route ("/gallery/{example_name}/index.html" , example ),
102+ Route ("/gallery/{example_name}/" , example ),
103+ Route ("/pages/{page_name}" , content_page ),
104+ Mount ("/gallery" , StaticFiles (directory = HERE / "examples" )),
88105 Mount ("/static" , StaticFiles (directory = HERE / "static" )),
89106 Mount ("/pyscript" , StaticFiles (directory = PYSCRIPT )),
90107 Mount ("/pyodide" , StaticFiles (directory = PYODIDE )),
0 commit comments