mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-21 17:24:10 +00:00
Decouple the different contexts from each other (#24786)
Replace #16455 Close #21803 Mixing different Gitea contexts together causes some problems: 1. Unable to respond proper content when error occurs, eg: Web should respond HTML while API should respond JSON 2. Unclear dependency, eg: it's unclear when Context is used in APIContext, which fields should be initialized, which methods are necessary. To make things clear, this PR introduces a Base context, it only provides basic Req/Resp/Data features. This PR mainly moves code. There are still many legacy problems and TODOs in code, leave unrelated changes to future PRs.
This commit is contained in:
parent
6ba4f89723
commit
6b33152b7d
57 changed files with 885 additions and 781 deletions
|
@ -19,7 +19,7 @@ import (
|
|||
)
|
||||
|
||||
// RenderMarkup renders markup text for the /markup and /markdown endpoints
|
||||
func RenderMarkup(ctx *context.Context, mode, text, urlPrefix, filePath string, wiki bool) {
|
||||
func RenderMarkup(ctx *context.Base, repo *context.Repository, mode, text, urlPrefix, filePath string, wiki bool) {
|
||||
var markupType string
|
||||
relativePath := ""
|
||||
|
||||
|
@ -63,11 +63,11 @@ func RenderMarkup(ctx *context.Context, mode, text, urlPrefix, filePath string,
|
|||
}
|
||||
|
||||
meta := map[string]string{}
|
||||
if ctx.Repo != nil && ctx.Repo.Repository != nil {
|
||||
if repo != nil && repo.Repository != nil {
|
||||
if mode == "comment" {
|
||||
meta = ctx.Repo.Repository.ComposeMetas()
|
||||
meta = repo.Repository.ComposeMetas()
|
||||
} else {
|
||||
meta = ctx.Repo.Repository.ComposeDocumentMetas()
|
||||
meta = repo.Repository.ComposeDocumentMetas()
|
||||
}
|
||||
}
|
||||
if mode != "comment" {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue