remarkbox/remarkbox/api/__init__.py
russell@unturf.com 46bdf3a217 Add revision diff endpoint and progressive enhancement export/wiki UI.
Diff: GET /api/v1/revisions/{id}/diff/{other_id} — unified diff between two revisions.
UI: <details>-based export menus on thread and node views (works without JS).
UI: Revision history link for wiki-mode namespaces.
2026-03-10 11:13:39 -04:00

32 lines
2 KiB
Python

def includeme(config):
config.add_route("api-version", "/api/v1/version")
config.add_route("api-threads-list", "/api/v1/threads")
config.add_route("api-threads-search", "/api/v1/threads/search")
config.add_route("api-thread-detail", "/api/v1/threads/{node_id}")
config.add_route("api-thread-replies", "/api/v1/threads/{node_id}/replies")
# Wiki / revision routes (must come before api-node-detail catch-all)
config.add_route("api-node-revisions", "/api/v1/nodes/{node_id}/revisions")
config.add_route("api-node-wiki-edit", "/api/v1/nodes/{node_id}/wiki-edit")
config.add_route("api-node-detail", "/api/v1/nodes/{node_id}")
config.add_route("api-revision-detail", "/api/v1/revisions/{revision_id}")
config.add_route("api-revision-diff", "/api/v1/revisions/{revision_id}/diff/{other_id}")
config.add_route("api-auth-login", "/api/v1/auth/login")
config.add_route("api-auth-verify", "/api/v1/auth/verify")
config.add_route("api-user-profile", "/api/v1/user/profile")
config.add_route("api-client-python", "/api/v1/clients/python")
config.add_route("api-client-c", "/api/v1/clients/c")
config.add_route("api-webmention", "/api/v1/webmention")
config.add_route("api-admin-namespaces", "/api/v1/admin/namespaces")
config.add_route("api-admin-recent-nodes", "/api/v1/admin/recent-nodes")
# Export routes — {subpath} captures "name.format" or "node_id.format"
config.add_route("api-export-formats", "/api/v1/export/formats")
config.add_route("api-export-namespace", "/api/v1/export/namespace/{subpath}")
config.add_route("api-export-thread", "/api/v1/export/threads/{subpath}")
config.add_route("api-export-node", "/api/v1/export/nodes/{subpath}")
# Theme routes
config.add_route("api-namespace-theme", "/api/v1/themes/{namespace_name}/css")
config.add_route("api-theme-preview", "/api/v1/themes/{namespace_name}/preview")
config.scan("remarkbox.api.views")
config.scan("remarkbox.api.export")
config.scan("remarkbox.api.wiki")
config.scan("remarkbox.api.themes")