mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
port over base HTML layout from PHP to FastAPI+Jinja2
+ Mounted static files (at web/html) to /static. + Added AURWEB_VERSION to aurweb.config (this is used around HTML to refer back to aurweb's release on git.archlinux.org), so we need it easily accessible in the Python codebase. + Implemented basic Jinja2 partials to put together whole aurweb pages. This may be missing some things currently and is a WIP until this set is ready to be merged. + Added config [options] aurwebdir = YOUR_AUR_ROOT; this configuration option should specify the root directory of the aurweb project. It is used by various parts of the FastAPI codebase to target project directories. Added routes via aurweb.routers.html: * POST /language: Set your session language. * GET /favicon.ico: Redirect to /static/images/favicon.ico. * Some browsers always look for $ROOT/favicon.ico to get an icon for the page being loaded, regardless of a specified "shortcut icon" given in a <link> directive. * GET /: Home page; WIP. * Updated aurweb.routers.html.language passes query parameters to its next redirection. When calling aurweb.templates.render_template, the context passed should be formed via the aurweb.templates.make_context. See aurweb.routers.html.index for an example of this. Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
1ff822bb14
commit
2df90ce280
18 changed files with 339 additions and 2 deletions
|
@ -2,13 +2,26 @@ import http
|
|||
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from fastapi.responses import HTMLResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from starlette.middleware.sessions import SessionMiddleware
|
||||
|
||||
import aurweb.config
|
||||
|
||||
from aurweb.routers import sso
|
||||
from aurweb.routers import html, sso
|
||||
|
||||
routes = set()
|
||||
|
||||
# Setup the FastAPI app.
|
||||
app = FastAPI()
|
||||
app.mount("/static/css",
|
||||
StaticFiles(directory="web/html/css"),
|
||||
name="static_css")
|
||||
app.mount("/static/js",
|
||||
StaticFiles(directory="web/html/js"),
|
||||
name="static_js")
|
||||
app.mount("/static/images",
|
||||
StaticFiles(directory="web/html/images"),
|
||||
name="static_images")
|
||||
|
||||
session_secret = aurweb.config.get("fastapi", "session_secret")
|
||||
if not session_secret:
|
||||
|
@ -17,6 +30,14 @@ if not session_secret:
|
|||
app.add_middleware(SessionMiddleware, secret_key=session_secret)
|
||||
|
||||
app.include_router(sso.router)
|
||||
app.include_router(html.router)
|
||||
|
||||
# NOTE: Always keep this dictionary updated with all routes
|
||||
# that the application contains. We use this to check for
|
||||
# parameter value verification.
|
||||
routes = {route.path for route in app.routes}
|
||||
routes.update({route.path for route in sso.router.routes})
|
||||
routes.update({route.path for route in html.router.routes})
|
||||
|
||||
|
||||
@app.exception_handler(HTTPException)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue