Render space pages from Forgejo markdown (CSOC-WP-0004-T04)

Fetch raw files from Forgejo, sanitize markdown to HTML, and show them on
space detail. Ship a public demo fixture path and seed_demo_space command.
This commit is contained in:
tegwick 2026-08-12 01:56:30 +02:00
parent 86b54243b8
commit 1cedd8f219
13 changed files with 606 additions and 26 deletions

View file

@ -4,6 +4,7 @@ from django.shortcuts import render
from coulomb_social.apps.core.principal import build_principal
from .content import load_space_page
from .services import get_space_for_member, spaces_for_member
@ -18,6 +19,9 @@ def space_detail(request: HttpRequest, slug: str) -> HttpResponse:
space = get_space_for_member(member, slug)
if space is None:
return HttpResponseNotFound("Space not found.")
page = request.GET.get("page") or "index"
rendered = load_space_page(space, page)
return render(
request,
"spaces/detail.html",
@ -25,10 +29,10 @@ def space_detail(request: HttpRequest, slug: str) -> HttpResponse:
"principal": principal,
"display_name": principal["display_name"],
"space": space,
"page": rendered,
},
)
# used by core.app_home — re-export list helper
def list_spaces_context(member) -> dict:
return {"spaces": list(spaces_for_member(member))}