feat(nav): header unifié desktop/mobile (issue #16)
Partiel _header.html unique pour les 19 pages (fin des copies qui dérivaient): desktop une ligne — primaires + menu Plus + Ctrl K, page active déduite du gabarit dans render(); mobile ≤900px burger + panneau ≥44px, Échap/clic extérieur; wallboard sans header et triage sur le même partiel. nav.js partagé.
This commit is contained in:
+22
@@ -292,6 +292,27 @@ _tpl_env = Environment(
|
||||
)
|
||||
|
||||
|
||||
# Which main-nav entry a template represents (issue #16): the
|
||||
# shared _header.html partial highlights it from this one place
|
||||
# instead of 19 hand-maintained copies.
|
||||
_NAV_BY_TEMPLATE = {
|
||||
"dashboard.html": "home",
|
||||
"focus.html": "focus",
|
||||
"today.html": "today",
|
||||
"my.html": "my",
|
||||
"activity.html": "activity",
|
||||
"briefing.html": "briefing",
|
||||
"standup.html": "standup",
|
||||
"search.html": "search",
|
||||
"capture.html": "capture",
|
||||
"digest.html": "digest",
|
||||
"forecast.html": "forecast",
|
||||
"rules.html": "rules",
|
||||
"health.html": "health",
|
||||
"health_project.html": "health",
|
||||
}
|
||||
|
||||
|
||||
def render(
|
||||
request: Request, name: str, status_code: int = 200, **context
|
||||
) -> HTMLResponse:
|
||||
@@ -307,6 +328,7 @@ def render(
|
||||
token = secrets.token_urlsafe(32)
|
||||
context.setdefault("csrf_token", token)
|
||||
context.setdefault("version", APP_VERSION)
|
||||
context.setdefault("active_nav", _NAV_BY_TEMPLATE.get(name, ""))
|
||||
html = _tpl_env.get_template(name).render(**context)
|
||||
response = HTMLResponse(html, status_code=status_code)
|
||||
if generated:
|
||||
|
||||
Reference in New Issue
Block a user