TODO: remove the old server-rendered layout/page path
The note page now renders through defaulttemplate (defaulttemplate.WriteRender).
Several older server-rendered cases and templates are partially or fully
superseded. This doc records what can be removed, what must stay, and the
cascade for each — so the cleanup can be done later as its own change.
Status: investigation only. Nothing removed yet. Verify each "candidate"
against live traffic / external links before deleting.
Verdicts
| Target | Verdict | Why |
|---|---|---|
internal/case/rendersearchpage |
Remove (candidate) | GET /search server-rendered page. The user-facing search uses the GraphQL search() query (assets/ui/user/search/search.view.ts), not this page. Only reference is the router registration. |
internal/case/admin/renderlayoutpreview |
Remove (candidate) | Registered endpoint only. No internal callers, not referenced by GraphQL resolvers. No telegram/tg code inside. |
internal/case/rendernotepage/view.html |
Trim | Of ~350 lines only LayoutError is still used (endpoint.go:291). The rest (Note, NoteContent, Sidebar, ReadingMeta, ReadingComplexityStars, LatestBanner, TurboNote) has zero callers — superseded by defaulttemplate. |
internal/case/renderlayout (Handle + views.html) |
Remove after rendersearchpage |
renderlayout.Handle has exactly one caller: rendersearchpage. Once that is gone, Handle / WriteBeginLayout / views.html(.go) are dead. Keep the Env/Params types — still used by render404, rendernotepage (buildDefaultTemplateCtx), and admin previews. |
internal/case/admin/renderpreview |
KEEP — do NOT remove | Active admin live-preview, NOT telegram. Wired into: GraphQL resolver (schema.resolvers.go:1293 → renderpreview.Resolve), PreviewBuffer (cmd/server/main.go previewBuffer, PreviewBuffer()), and its own config section (appconfig/config.go RenderPreview). |
Note: the original assumption that renderpreview / renderlayoutpreview "were
for Telegram" is not supported — neither package references telegram/tg/bot.
renderpreview is the admin editor preview; renderlayoutpreview is an
admin layout preview endpoint with no remaining callers.
Removal steps (when doing the cleanup)
-
rendersearchpage
- Delete
internal/case/rendersearchpage/. - Regenerate the router:
go generate ./internal/router/...(registration list is built byinternal/router/gencmd). - Before deleting: confirm nothing links to
GET /search(sitemap, templates, external SEO). The search UI itself is unaffected (GraphQL).
- Delete
-
renderlayout Handle + template (only after step 1)
- Remove
Handle,WriteBeginLayout/WriteFinishLayout/TG-layout funcs, andinternal/case/renderlayout/views.html+views.html.go. - Keep
render.go'sEnv,Params,HrefLangtypes (still imported elsewhere).
- Remove
-
renderlayoutpreview
- Delete
internal/case/admin/renderlayoutpreview/. - Regenerate the router.
- Before deleting: confirm the admin UI does not call its endpoint path.
- Delete
-
rendernotepage/view.html trim
- Reduce
view.htmlto just theLayoutErrorfunc (dropNote,NoteContent,Sidebar,ReadingMeta,ReadingComplexityStars,LatestBanner,TurboNoteand theirStream*/Write*). - Regenerate:
go generate ./internal/case/rendernotepage/.... - Alternative: move
LayoutErrorintodefaulttemplateand deleteview.htmlentirely.
- Reduce
Verification after cleanup
go build ./...andgo vet ./...clean.go generate ./internal/router/...produces no diff beyond the removed entries.- Note page, 404 page, admin editor preview, and admin layout list still render.
- Search still works from the UI (GraphQL path).