Documentation
¶
Index ¶
- Variables
- func ActionContent2Commits(act Actioner) *repository.PushCommits
- func AssetFS() *assetfs.LayeredFS
- func AvatarHTML(src string, size int, class, name string) template.HTML
- func BuiltinAssets() *assetfs.Layer
- func CustomAssets() *assetfs.Layer
- func HandleTemplateRenderingError(err error) string
- func MailRendererReload() error
- func PageRendererReload() error
- func QueryBuild(a ...any) template.URL
- func ReloadAllTemplates() error
- func SanitizeHTML(s string) template.HTML
- func TimeSince(then any) template.HTML
- type Actioner
- type AvatarUtils
- type DateUtils
- type JsonUtils
- type MailRender
- type MarkdownEditorContext
- type MiscUtils
- type RenderUtils
- func (ut *RenderUtils) MarkdownToHtml(input string) template.HTML
- func (ut *RenderUtils) RenderCommitBody(msg string, repo *repo.Repository) template.HTML
- func (ut *RenderUtils) RenderCommitMessage(msg string, repo *repo.Repository) template.HTML
- func (ut *RenderUtils) RenderCommitMessageLinkSubject(msg, urlDefault string, repo *repo.Repository) template.HTML
- func (ut *RenderUtils) RenderEmoji(text string) template.HTML
- func (ut *RenderUtils) RenderIssueSimpleTitle(text string) template.HTML
- func (ut *RenderUtils) RenderIssueTitle(text string, repo *repo.Repository) template.HTML
- func (ut *RenderUtils) RenderLabel(label *issues_model.Label) template.HTML
- func (ut *RenderUtils) RenderLabelWithLink(label *issues_model.Label, link any) template.HTML
- func (ut *RenderUtils) RenderLabels(labels []*issues_model.Label, repoLink string, issue *issues_model.Issue) template.HTML
- func (ut *RenderUtils) RenderThemeItem(info *webtheme.ThemeMetaInfo, iconSize int) template.HTML
- func (ut *RenderUtils) RenderTimelineEventBadge(c *issues_model.Comment) template.HTML
- func (ut *RenderUtils) RenderTimelineEventComment(c *issues_model.Comment, createdStr template.HTML) template.HTML
- func (ut *RenderUtils) RenderUnicodeEscapeToggleButton(escapeStatus *charset.EscapeStatus) template.HTML
- func (ut *RenderUtils) RenderUnicodeEscapeToggleTd(combined, escapeStatus *charset.EscapeStatus) template.HTML
- type SliceUtils
- type StringUtils
- func (su *StringUtils) Contains(s, substr string) bool
- func (su *StringUtils) Cut(s, sep string) []any
- func (su *StringUtils) EllipsisString(s string, maxLength int) string
- func (su *StringUtils) HasPrefix(s, prefix string) bool
- func (su *StringUtils) Join(a []string, sep string) string
- func (su *StringUtils) Split(s, sep string) []string
- func (su *StringUtils) ToString(v any) string
- func (su *StringUtils) ToUpper(s string) string
- func (su *StringUtils) TrimPrefix(s, prefix string) string
- type TemplateExecutor
- type TplName
Constants ¶
This section is empty.
Variables ¶
var PageRenderer = sync.OnceValue(func() *pageRenderer { rendererType := util.Iif(setting.IsProd, "static", "auto-reloading") log.Debug("Creating %s HTML Renderer", rendererType) assetFS := AssetFS() tr := &tmplRender{ collectTemplateNames: func() ([]string, error) { names, err := assetFS.ListAllFiles(".", true) if err != nil { return nil, err } names = slices.DeleteFunc(names, func(file string) bool { return strings.HasPrefix(file, "mail/") || !strings.HasSuffix(file, ".tmpl") }) for i, file := range names { names[i] = strings.TrimSuffix(file, ".tmpl") } return names, nil }, readTemplateContent: func(name string) ([]byte, error) { return assetFS.ReadFile(name + ".tmpl") }, } pr := &pageRenderer{tmplRenderer: tr} if err := tr.recompileTemplates(pr.funcMapDummy()); err != nil { processStartupTemplateError(err) } if !setting.IsProd { go AssetFS().WatchLocalChanges(graceful.GetManager().ShutdownContext(), func() { if err := tr.recompileTemplates(pr.funcMapDummy()); err != nil { log.Error("Template error: %v\n%s", err, log.Stack(2)) } }) } return pr })
Functions ¶
func ActionContent2Commits ¶
func ActionContent2Commits(act Actioner) *repository.PushCommits
ActionContent2Commits converts action content to push commits
func AvatarHTML ¶ added in v1.14.0
AvatarHTML creates the HTML for an avatar
func BuiltinAssets ¶ added in v1.20.0
func CustomAssets ¶ added in v1.20.0
func HandleTemplateRenderingError ¶ added in v1.20.0
func MailRendererReload ¶ added in v1.26.0
func MailRendererReload() error
func PageRendererReload ¶ added in v1.26.0
func PageRendererReload() error
func QueryBuild ¶ added in v1.23.0
QueryBuild builds a query string from a list of key-value pairs. It omits the nil, false, zero int/int64 and empty string values, because they are default empty values for "ctx.FormXxx" calls. If 0 or false need to be included, use string values: "0" and "false". Build rules: * Even parameters: always build as query string: a=b&c=d * Odd parameters: * * {"/anything", param-pairs...} => "/?param-paris" * * {"anything?old-params", new-param-pairs...} => "anything?old-params&new-param-paris" * * Otherwise: {"old¶ms", new-param-pairs...} => "old¶ms&new-param-paris" * * Other behaviors are undefined yet.
func ReloadAllTemplates ¶ added in v1.26.0
func ReloadAllTemplates() error
func SanitizeHTML ¶ added in v1.22.0
SanitizeHTML sanitizes the input by default sanitization rules.
Types ¶
type Actioner ¶
type Actioner interface {
GetOpType() activities_model.ActionType
GetActUserName(ctx context.Context) string
GetRepoUserName(ctx context.Context) string
GetRepoName(ctx context.Context) string
GetRepoPath(ctx context.Context) string
GetRepoLink(ctx context.Context) string
GetBranch() string
GetContent() string
GetCreate() time.Time
GetIssueInfos() []string
}
Actioner describes an action
type AvatarUtils ¶ added in v1.21.0
type AvatarUtils struct {
// contains filtered or unexported fields
}
func NewAvatarUtils ¶ added in v1.21.0
func NewAvatarUtils(ctx context.Context) *AvatarUtils
func (*AvatarUtils) Avatar ¶ added in v1.21.0
func (au *AvatarUtils) Avatar(item any, others ...any) template.HTML
Avatar renders user avatars. args: user, size (int), class (string)
func (*AvatarUtils) AvatarByAction ¶ added in v1.21.0
func (au *AvatarUtils) AvatarByAction(action *activities_model.Action, others ...any) template.HTML
AvatarByAction renders user avatars from action. args: action, size (int), class (string)
func (*AvatarUtils) AvatarByEmail ¶ added in v1.21.0
func (au *AvatarUtils) AvatarByEmail(email, name string, others ...any) template.HTML
AvatarByEmail renders avatars by email address. args: email, name, size (int), class (string)
type DateUtils ¶ added in v1.23.0
type DateUtils struct{}
func NewDateUtils ¶ added in v1.23.0
func NewDateUtils() *DateUtils
func (*DateUtils) AbsoluteLong ¶ added in v1.23.0
AbsoluteLong renders in "January 01, 2006" format
func (*DateUtils) AbsoluteShort ¶ added in v1.23.0
AbsoluteShort renders in "Jan 01, 2006" format
func (*DateUtils) ParseLegacy ¶ added in v1.23.0
ParseLegacy parses the datetime in legacy format, eg: "2016-01-02" in server's timezone. It shouldn't be used in new code. New code should use Time or TimeStamp as much as possible.
type JsonUtils ¶ added in v1.20.0
type JsonUtils struct{} //nolint:revive // variable naming triggers on Json, wants JSON
func NewJsonUtils ¶ added in v1.20.0
func NewJsonUtils() *JsonUtils
func (*JsonUtils) EncodeToString ¶ added in v1.20.0
func (*JsonUtils) PrettyIndent ¶ added in v1.20.0
type MailRender ¶ added in v1.26.0
type MailRender struct {
TemplateNames []string
BodyTemplates struct {
HasTemplate func(name string) bool
ExecuteTemplate func(w io.Writer, name string, data any) error
}
// FIXME: MAIL-TEMPLATE-SUBJECT: only "issue" related messages support using subject from templates
// It is an incomplete implementation from "Use templates for issue e-mail subject and body" https://github.com/go-gitea/gitea/pull/8329
SubjectTemplates *texttmpl.Template
// contains filtered or unexported fields
}
func MailRenderer ¶ added in v1.26.0
func MailRenderer() *MailRender
func (*MailRender) MockTemplate ¶ added in v1.26.0
func (r *MailRender) MockTemplate(name, subject, body string) func()
type MarkdownEditorContext ¶ added in v1.26.0
type MiscUtils ¶ added in v1.26.0
type MiscUtils struct {
// contains filtered or unexported fields
}
func NewMiscUtils ¶ added in v1.26.0
func (*MiscUtils) MarkdownEditorComment ¶ added in v1.26.0
func (m *MiscUtils) MarkdownEditorComment(repo *repo_model.Repository) *MarkdownEditorContext
func (*MiscUtils) MarkdownEditorGeneral ¶ added in v1.26.0
func (m *MiscUtils) MarkdownEditorGeneral(owner *user_model.User) *MarkdownEditorContext
func (*MiscUtils) MarkdownEditorWiki ¶ added in v1.26.0
func (m *MiscUtils) MarkdownEditorWiki(repo *repo_model.Repository) *MarkdownEditorContext
type RenderUtils ¶ added in v1.23.0
type RenderUtils struct {
// contains filtered or unexported fields
}
func NewRenderUtils ¶ added in v1.23.0
func NewRenderUtils(ctx reqctx.RequestContext) *RenderUtils
func (*RenderUtils) MarkdownToHtml ¶ added in v1.23.0
func (ut *RenderUtils) MarkdownToHtml(input string) template.HTML
func (*RenderUtils) RenderCommitBody ¶ added in v1.23.0
func (ut *RenderUtils) RenderCommitBody(msg string, repo *repo.Repository) template.HTML
RenderCommitBody extracts the body of a commit message without its title.
func (*RenderUtils) RenderCommitMessage ¶ added in v1.23.0
func (ut *RenderUtils) RenderCommitMessage(msg string, repo *repo.Repository) template.HTML
RenderCommitMessage renders commit message with XSS-safe and special links.
func (*RenderUtils) RenderCommitMessageLinkSubject ¶ added in v1.23.0
func (ut *RenderUtils) RenderCommitMessageLinkSubject(msg, urlDefault string, repo *repo.Repository) template.HTML
RenderCommitMessageLinkSubject renders commit message as a XSS-safe link to the provided default url, handling for special links without email to links.
func (*RenderUtils) RenderEmoji ¶ added in v1.23.0
func (ut *RenderUtils) RenderEmoji(text string) template.HTML
RenderEmoji renders html text with emoji post processors
func (*RenderUtils) RenderIssueSimpleTitle ¶ added in v1.23.0
func (ut *RenderUtils) RenderIssueSimpleTitle(text string) template.HTML
RenderIssueSimpleTitle only renders with emoji and inline code block
func (*RenderUtils) RenderIssueTitle ¶ added in v1.23.0
func (ut *RenderUtils) RenderIssueTitle(text string, repo *repo.Repository) template.HTML
RenderIssueTitle renders issue/pull title with defined post processors
func (*RenderUtils) RenderLabel ¶ added in v1.23.0
func (ut *RenderUtils) RenderLabel(label *issues_model.Label) template.HTML
func (*RenderUtils) RenderLabelWithLink ¶ added in v1.25.0
func (ut *RenderUtils) RenderLabelWithLink(label *issues_model.Label, link any) template.HTML
func (*RenderUtils) RenderLabels ¶ added in v1.23.0
func (ut *RenderUtils) RenderLabels(labels []*issues_model.Label, repoLink string, issue *issues_model.Issue) template.HTML
func (*RenderUtils) RenderThemeItem ¶ added in v1.26.0
func (ut *RenderUtils) RenderThemeItem(info *webtheme.ThemeMetaInfo, iconSize int) template.HTML
func (*RenderUtils) RenderTimelineEventBadge ¶ added in v1.26.0
func (ut *RenderUtils) RenderTimelineEventBadge(c *issues_model.Comment) template.HTML
func (*RenderUtils) RenderTimelineEventComment ¶ added in v1.26.0
func (ut *RenderUtils) RenderTimelineEventComment(c *issues_model.Comment, createdStr template.HTML) template.HTML
func (*RenderUtils) RenderUnicodeEscapeToggleButton ¶ added in v1.26.0
func (ut *RenderUtils) RenderUnicodeEscapeToggleButton(escapeStatus *charset.EscapeStatus) template.HTML
func (*RenderUtils) RenderUnicodeEscapeToggleTd ¶ added in v1.26.0
func (ut *RenderUtils) RenderUnicodeEscapeToggleTd(combined, escapeStatus *charset.EscapeStatus) template.HTML
type SliceUtils ¶ added in v1.20.0
type SliceUtils struct{}
func NewSliceUtils ¶ added in v1.20.0
func NewSliceUtils() *SliceUtils
func (*SliceUtils) Contains ¶ added in v1.20.0
func (su *SliceUtils) Contains(s, v any) bool
type StringUtils ¶ added in v1.20.0
type StringUtils struct{}
func NewStringUtils ¶ added in v1.20.0
func NewStringUtils() *StringUtils
func (*StringUtils) Contains ¶ added in v1.20.0
func (su *StringUtils) Contains(s, substr string) bool
func (*StringUtils) Cut ¶ added in v1.21.0
func (su *StringUtils) Cut(s, sep string) []any
func (*StringUtils) EllipsisString ¶ added in v1.20.0
func (su *StringUtils) EllipsisString(s string, maxLength int) string
func (*StringUtils) HasPrefix ¶ added in v1.20.0
func (su *StringUtils) HasPrefix(s, prefix string) bool
func (*StringUtils) Join ¶ added in v1.20.0
func (su *StringUtils) Join(a []string, sep string) string
func (*StringUtils) Split ¶ added in v1.20.0
func (su *StringUtils) Split(s, sep string) []string
func (*StringUtils) ToString ¶ added in v1.22.0
func (su *StringUtils) ToString(v any) string
func (*StringUtils) ToUpper ¶ added in v1.22.0
func (su *StringUtils) ToUpper(s string) string
func (*StringUtils) TrimPrefix ¶ added in v1.23.0
func (su *StringUtils) TrimPrefix(s, prefix string) string
type TemplateExecutor ¶ added in v1.20.0
type TemplateExecutor scopedtmpl.TemplateExecutor