feat: add authenticated my-profile endpoint and clean breadcrumb markdown in SEO context

- Add GET /profile route returning own profile page with tab support, backed by new my_profile_page handler in profile/index.py and documented in docs_api.py
- Introduce _clean_breadcrumbs helper in seo.py that strips markdown from breadcrumb names before passing to schema generation
- Skip data-confirm modal for elements with data-auto-submit attribute in ModalManager.js
- Guard PushManager subscription against missing userUid and capture it from document body dataset
- Switch profile bio template from render_title to render_content and use div instead of span for proper block rendering
This commit is contained in:
2026-07-01 13:15:33 +00:00
parent 6f340a6818
commit 244a524b91
8 changed files with 55 additions and 7 deletions
+5
View File
@@ -112,6 +112,11 @@ def _follow_list_json(request: Request, username: str, mode: str, page: int):
}
)
@router.get("", response_class=HTMLResponse)
async def my_profile_page(request: Request, tab: str = "posts", page: int = 1):
user = require_user(request)
return await profile_page(request, user["username"], tab, page)
@router.get("/{username}", response_class=HTMLResponse)
async def profile_page(
request: Request, username: str, tab: str = "posts", page: int = 1