Partially for #24457 Major changes: 1. The old `signedUserNameStringPointerKey` is quite hacky, use `ctx.Data[SignedUser]` instead 2. Move duplicate code from `Contexter` to `CommonTemplateContextData` 3. Remove incorrect copying&pasting code `ctx.Data["Err_Password"] = true` in API handlers 4. Use one unique `RenderPanicErrorPage` for panic error page rendering 5. Move `stripSlashesMiddleware` to be the first middleware 6. Install global panic recovery handler, it works for both `install` and `web` 7. Make `500.tmpl` only depend minimal template functions/variables, avoid triggering new panics Screenshot: <details>  </details> |
||
|---|---|---|
| .. | ||
| alert.tmpl | ||
| alert_details.tmpl | ||
| disable_form_autofill.tmpl | ||
| footer.tmpl | ||
| footer_content.tmpl | ||
| head.tmpl | ||
| head_navbar.tmpl | ||
| head_script.tmpl | ||
| modal_actions_confirm.tmpl | ||
| paginate.tmpl | ||