mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-26 17:08:25 +00:00 
			
		
		
		
	* Fix #33972 * Use consistent path resolving for links and medias. * No need to make the markup renders to resolve the paths, instead, the paths are all correctly resolved in the "post process" step. * Fix #33274 * Since 1.23, all paths starting with "/" are relative to current render context (for example: the current repo branch) * Introduce `/:root/path-relative-to-root`, then the path will be rendered as relative to "ROOT_URL"
		
			
				
	
	
		
			36 lines
		
	
	
		
			916 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			916 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2024 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package renderhelper
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"code.gitea.io/gitea/modules/markup"
 | |
| )
 | |
| 
 | |
| type SimpleDocument struct {
 | |
| 	*markup.SimpleRenderHelper
 | |
| 	ctx      *markup.RenderContext
 | |
| 	baseLink string
 | |
| }
 | |
| 
 | |
| func (r *SimpleDocument) ResolveLink(link, preferLinkType string) string {
 | |
| 	linkType, link := markup.ParseRenderedLink(link, preferLinkType)
 | |
| 	switch linkType {
 | |
| 	case markup.LinkTypeRoot:
 | |
| 		return r.ctx.ResolveLinkRoot(link)
 | |
| 	default:
 | |
| 		return r.ctx.ResolveLinkRelative(r.baseLink, "", link)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| var _ markup.RenderHelper = (*SimpleDocument)(nil)
 | |
| 
 | |
| func NewRenderContextSimpleDocument(ctx context.Context, baseLink string) *markup.RenderContext {
 | |
| 	helper := &SimpleDocument{baseLink: baseLink}
 | |
| 	rctx := markup.NewRenderContext(ctx).WithHelper(helper).WithMetas(markup.ComposeSimpleDocumentMetas())
 | |
| 	helper.ctx = rctx
 | |
| 	return rctx
 | |
| }
 |