gitea源码

simple_document.go 916B

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2024 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package renderhelper
  4. import (
  5. "context"
  6. "code.gitea.io/gitea/modules/markup"
  7. )
  8. type SimpleDocument struct {
  9. *markup.SimpleRenderHelper
  10. ctx *markup.RenderContext
  11. baseLink string
  12. }
  13. func (r *SimpleDocument) ResolveLink(link, preferLinkType string) string {
  14. linkType, link := markup.ParseRenderedLink(link, preferLinkType)
  15. switch linkType {
  16. case markup.LinkTypeRoot:
  17. return r.ctx.ResolveLinkRoot(link)
  18. default:
  19. return r.ctx.ResolveLinkRelative(r.baseLink, "", link)
  20. }
  21. }
  22. var _ markup.RenderHelper = (*SimpleDocument)(nil)
  23. func NewRenderContextSimpleDocument(ctx context.Context, baseLink string) *markup.RenderContext {
  24. helper := &SimpleDocument{baseLink: baseLink}
  25. rctx := markup.NewRenderContext(ctx).WithHelper(helper).WithMetas(markup.ComposeSimpleDocumentMetas())
  26. helper.ctx = rctx
  27. return rctx
  28. }