Documentation
¶
Index ¶
- Variables
- func Asset(path string) string
- func GetLang(c *gin.Context) string
- func GetTheme(c *gin.Context) string
- func Reload()
- func SafeRender[T any](c *gin.Context, name string, data T, pageMeta ...*PageMeta)
- func ViteEntry(origin string) template.HTML
- func VitePath(path string) string
- type ManifestItem
- type OpenGraphMeta
- type PageMeta
- type PageMetaBuilder
- func (b *PageMetaBuilder) Build() *PageMeta
- func (b *PageMetaBuilder) SetArticle(title, desc, author string, categories []string, ...) *PageMetaBuilder
- func (b *PageMetaBuilder) SetCanonicalURL(url string) *PageMetaBuilder
- func (b *PageMetaBuilder) SetDescription(desc string) *PageMetaBuilder
- func (b *PageMetaBuilder) SetImage(imageURL, imageAlt string) *PageMetaBuilder
- func (b *PageMetaBuilder) SetKeywords(keywords string) *PageMetaBuilder
- func (b *PageMetaBuilder) SetPageType(pageType string) *PageMetaBuilder
- func (b *PageMetaBuilder) SetSchemaOrg(jsonLD template.JS) *PageMetaBuilder
- func (b *PageMetaBuilder) SetTitle(title string) *PageMetaBuilder
- func (b *PageMetaBuilder) SetUserProfile(username, bio string) *PageMetaBuilder
- type TemplateRegistry
- type TmplData
- type TwitterCardMeta
- type URLHelper
- func (u URLHelper) About() string
- func (u URLHelper) Activate() string
- func (u URLHelper) Admin() string
- func (u URLHelper) Docs() string
- func (u URLHelper) DocsContent(p, v, c any) string
- func (u URLHelper) DocsProject(slug any) string
- func (u URLHelper) Home() string
- func (u URLHelper) Links() string
- func (u URLHelper) Login() string
- func (u URLHelper) Messages() string
- func (u URLHelper) Notifications() string
- func (u URLHelper) Post() string
- func (u URLHelper) PostDetail(id any) string
- func (u URLHelper) Publish() string
- func (u URLHelper) Register() string
- func (u URLHelper) ResetPassword() string
- func (u URLHelper) Rss() string
- func (u URLHelper) Search() string
- func (u URLHelper) Settings() string
- func (u URLHelper) Sponsors() string
- func (u URLHelper) User(id any) string
- type ViteHandler
Constants ¶
This section is empty.
Variables ¶
View Source
var TemplateFuncs = template.FuncMap{ "Url": func() URLHelper { return URLHelper{} }, "ContainsInt": func(s []int, v any) bool { return slices.Contains(s, cast.ToInt(v)) }, "ViteEntry": ViteEntry, "VitePath": VitePath, "Asset": Asset, "SafeHTML": func(s string) template.HTML { return template.HTML(s) }, "FormatTime": func(t time.Time) string { return t.Format(time.DateTime) }, "Nl2br": func(text string) template.HTML { escaped := template.HTMLEscapeString(text) result := strings.ReplaceAll(escaped, "\n", "<br>") return template.HTML(result) }, "IsOnline": func(t time.Time) bool { return time.Since(t) < 120*time.Second }, "add": func(a, b int) int { return a + b }, "sub": func(a, b int) int { return a - b }, "ToJson": func(v any) string { return jsonopt.EncodeFormat(v) }, "json": func(v any) template.JS { return template.JS(jsonopt.Encode(v)) }, }
TemplateFuncs defines the available functions for templates
Functions ¶
func SafeRender ¶ added in v0.0.9
Types ¶
type ManifestItem ¶ added in v0.1.1
type ManifestItem struct {
File string `json:"file"`
Name string `json:"name"`
Src string `json:"src"`
IsEntry bool `json:"isEntry"`
IsDynamicEntry bool `json:"isDynamicEntry"`
Imports []string `json:"imports"`
DynamicImports []string `json:"dynamicImports"`
Css []string `json:"css"`
Assets []string `json:"assets"`
}
ManifestItem represents an entry in the manifest.json
type OpenGraphMeta ¶ added in v0.0.9
type OpenGraphMeta struct {
Type string `json:"type,omitempty"` // website, article, profile
Title string `json:"title,omitempty"`
Description string `json:"description,omitempty"`
Image string `json:"image,omitempty"`
ImageAlt string `json:"image_alt,omitempty"`
URL string `json:"url,omitempty"`
SiteName string `json:"site_name,omitempty"`
// 文章特定字段
ArticleAuthor string `json:"article_author,omitempty"`
ArticleSection string `json:"article_section,omitempty"`
ArticleTag []string `json:"article_tag,omitempty"`
ArticlePublishedTime *time.Time `json:"article_published_time,omitempty"`
ArticleModifiedTime *time.Time `json:"article_modified_time,omitempty"`
}
type PageMeta ¶ added in v0.0.9
type PageMeta struct {
// 基础 SEO 信息
Title string `json:"title"`
Description string `json:"description"`
Keywords string `json:"keywords"`
Author string `json:"author,omitempty"`
// URL 相关
CanonicalURL string `json:"canonical_url,omitempty"`
AlternateURL string `json:"alternate_url,omitempty"`
// Open Graph 协议
OG OpenGraphMeta `json:"og"`
// Twitter Card
Twitter TwitterCardMeta `json:"twitter"`
// 结构化数据
SchemaOrgJSON template.JS `json:"schema_org_json,omitempty"`
// 页面特定配置
Favicon string `json:"favicon,omitempty"`
ThemeColor string `json:"theme_color,omitempty"`
}
type PageMetaBuilder ¶ added in v0.0.9
type PageMetaBuilder struct {
// contains filtered or unexported fields
}
func NewPageMetaBuilder ¶ added in v0.0.9
func NewPageMetaBuilder() *PageMetaBuilder
func (*PageMetaBuilder) Build ¶ added in v0.0.9
func (b *PageMetaBuilder) Build() *PageMeta
Build 构建最终的 PageMeta
func (*PageMetaBuilder) SetArticle ¶ added in v0.0.9
func (b *PageMetaBuilder) SetArticle(title, desc, author string, categories []string, publishTime, modifyTime *time.Time) *PageMetaBuilder
SetArticle 文章特定设置
func (*PageMetaBuilder) SetCanonicalURL ¶ added in v0.0.9
func (b *PageMetaBuilder) SetCanonicalURL(url string) *PageMetaBuilder
func (*PageMetaBuilder) SetDescription ¶ added in v0.0.9
func (b *PageMetaBuilder) SetDescription(desc string) *PageMetaBuilder
func (*PageMetaBuilder) SetImage ¶ added in v0.0.9
func (b *PageMetaBuilder) SetImage(imageURL, imageAlt string) *PageMetaBuilder
SetImage 图片设置
func (*PageMetaBuilder) SetKeywords ¶ added in v0.0.9
func (b *PageMetaBuilder) SetKeywords(keywords string) *PageMetaBuilder
func (*PageMetaBuilder) SetPageType ¶ added in v0.0.9
func (b *PageMetaBuilder) SetPageType(pageType string) *PageMetaBuilder
SetPageType 页面类型设置
func (*PageMetaBuilder) SetSchemaOrg ¶ added in v0.0.9
func (b *PageMetaBuilder) SetSchemaOrg(jsonLD template.JS) *PageMetaBuilder
SetSchemaOrg 结构化数据设置
func (*PageMetaBuilder) SetTitle ¶ added in v0.0.9
func (b *PageMetaBuilder) SetTitle(title string) *PageMetaBuilder
SetTitle 基础信息设置
func (*PageMetaBuilder) SetUserProfile ¶ added in v0.0.9
func (b *PageMetaBuilder) SetUserProfile(username, bio string) *PageMetaBuilder
SetUserProfile 用户页面设置
type TemplateRegistry ¶ added in v0.1.1
type TemplateRegistry struct {
// contains filtered or unexported fields
}
var (
CurrentRegistry *TemplateRegistry
)
func NewRegistry ¶ added in v0.1.1
func NewRegistry(fileSystem fs.FS) (*TemplateRegistry, error)
type TmplData ¶ added in v0.0.9
type TmplData[T any] struct { IsProduction bool Theme string SiteSetting pageConfig.SiteSettingsConfig Data T Url URLHelper User *vo.UserInfoShow CurrentUserId uint64 PageMeta *PageMeta Lang string T func(string, ...any) string }
type TwitterCardMeta ¶ added in v0.0.9
type TwitterCardMeta struct {
Card string `json:"card,omitempty"` // summary, summary_large_image
Site string `json:"site,omitempty"` // @username
Creator string `json:"creator,omitempty"` // @username
Title string `json:"title,omitempty"`
Description string `json:"description,omitempty"`
Image string `json:"image,omitempty"`
ImageAlt string `json:"image_alt,omitempty"`
}
type URLHelper ¶ added in v0.1.1
type URLHelper struct{}
func (URLHelper) DocsContent ¶ added in v0.1.1
func (URLHelper) DocsProject ¶ added in v0.1.1
func (URLHelper) Notifications ¶ added in v0.1.1
func (URLHelper) PostDetail ¶ added in v0.1.1
func (URLHelper) ResetPassword ¶ added in v0.1.1
type ViteHandler ¶ added in v0.1.1
type ViteHandler struct {
// contains filtered or unexported fields
}
var ( // DefaultViteHandler is the default instance of ViteHandler DefaultViteHandler *ViteHandler )
func NewViteHandler ¶ added in v0.1.1
func NewViteHandler(viteDevServerURL string, isProduction bool, manifestItemMap map[string]ManifestItem) *ViteHandler
NewViteHandler creates a new ViteHandler
func (*ViteHandler) ViteEntry ¶ added in v0.1.1
func (v *ViteHandler) ViteEntry(origin string) template.HTML
ViteEntry generates HTML tags for an entry point
func (*ViteHandler) VitePath ¶ added in v0.1.1
func (v *ViteHandler) VitePath(path string) string
VitePath returns the resolved URL for an asset
Click to show internal directories.
Click to hide internal directories.