templates

package
v1.24.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2025 License: MIT Imports: 55 Imported by: 152

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

View Source
var ErrTemplateNotInitialized = errors.New("template system is not initialized, check your log for errors")

Functions ¶

func ActionContent2Commits ¶

func ActionContent2Commits(act Actioner) *repository.PushCommits

ActionContent2Commits converts action content to push commits

func AssetFS ¶ added in v1.20.0

func AssetFS() *assetfs.LayeredFS

func AvatarHTML ¶ added in v1.14.0

func AvatarHTML(src string, size int, class, name string) template.HTML

AvatarHTML creates the HTML for an avatar

func BuiltinAssets ¶ added in v1.20.0

func BuiltinAssets() *assetfs.Layer

func CustomAssets ¶ added in v1.20.0

func CustomAssets() *assetfs.Layer

func HandleTemplateRenderingError ¶ added in v1.20.0

func HandleTemplateRenderingError(err error) string

func ListMailTemplateAssetNames ¶ added in v1.20.0

func ListMailTemplateAssetNames(assets *assetfs.LayeredFS) ([]string, error)

func ListWebTemplateAssetNames ¶ added in v1.20.0

func ListWebTemplateAssetNames(assets *assetfs.LayeredFS) ([]string, error)

func Mailer ¶

Mailer provides the templates required for sending notification mails.

func NewFuncMap ¶

func NewFuncMap() template.FuncMap

NewFuncMap returns functions for injecting to templates

func QueryBuild ¶ added in v1.23.0

func QueryBuild(a ...any) template.URL

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&params", new-param-pairs...} => "old&params&new-param-paris" * * Other behaviors are undefined yet.

func ReloadHTMLTemplates ¶ added in v1.20.0

func ReloadHTMLTemplates() error

func SanitizeHTML ¶ added in v1.22.0

func SanitizeHTML(s string) template.HTML

SanitizeHTML sanitizes the input by pre-defined markdown rules

func TimeSince ¶ added in v1.23.0

func TimeSince(then any) template.HTML

TimeSince renders relative time HTML given a time

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

func (du *DateUtils) AbsoluteLong(time any) template.HTML

AbsoluteLong renders in "January 01, 2006" format

func (*DateUtils) AbsoluteShort ¶ added in v1.23.0

func (du *DateUtils) AbsoluteShort(time any) template.HTML

AbsoluteShort renders in "Jan 01, 2006" format

func (*DateUtils) FullTime ¶ added in v1.23.0

func (du *DateUtils) FullTime(time any) template.HTML

FullTime renders in "Jan 01, 2006 20:33:44" format

func (*DateUtils) ParseLegacy ¶ added in v1.23.0

func (du *DateUtils) ParseLegacy(datetime string) time.Time

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.

func (*DateUtils) TimeSince ¶ added in v1.23.0

func (du *DateUtils) TimeSince(time any) template.HTML

type HTMLRender ¶ added in v1.20.0

type HTMLRender struct {
	// contains filtered or unexported fields
}

func HTMLRenderer ¶ added in v1.6.0

func HTMLRenderer() *HTMLRender

HTMLRenderer init once and returns the globally shared html renderer

func (*HTMLRender) CompileTemplates ¶ added in v1.20.0

func (h *HTMLRender) CompileTemplates() error

func (*HTMLRender) HTML ¶ added in v1.20.0

func (h *HTMLRender) HTML(w io.Writer, status int, tplName TplName, data any, ctx context.Context) error

func (*HTMLRender) TemplateLookup ¶ added in v1.20.0

func (h *HTMLRender) TemplateLookup(name string, ctx context.Context) (TemplateExecutor, error)

type JsonUtils ¶ added in v1.20.0

type JsonUtils struct{} //nolint:revive

func NewJsonUtils ¶ added in v1.20.0

func NewJsonUtils() *JsonUtils

func (*JsonUtils) EncodeToString ¶ added in v1.20.0

func (su *JsonUtils) EncodeToString(v any) string

func (*JsonUtils) PrettyIndent ¶ added in v1.20.0

func (su *JsonUtils) PrettyIndent(s string) string

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

RenderLabel renders a label

func (*RenderUtils) RenderLabels ¶ added in v1.23.0

func (ut *RenderUtils) RenderLabels(labels []*issues_model.Label, repoLink string, issue *issues_model.Issue) 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

type TplName ¶ added in v1.24.0

type TplName string

Directories ¶

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL