Versions in this module Expand all Collapse all v0 v0.5.0 Sep 2, 2026 Changes in this version + const GopherInkVersion + const HookAdminMenu + const HookArchiveAfterQuery + const HookArchiveAfterRender + const HookArchiveBeforeQuery + const HookArchiveBeforeRender + const HookArchiveSearch + const HookAttachmentAfterDelete + const HookAttachmentAfterEdit + const HookAttachmentAfterReplace + const HookAttachmentBeforeDelete + const HookAttachmentBeforeEdit + const HookAttachmentBeforeReplace + const HookAttachmentData + const HookAttachmentDeleteHandle + const HookAttachmentReplaceHandle + const HookAttachmentURL + const HookAutosaveAfterSave + const HookAutosaveBeforeSave + const HookBackupExport + const HookBackupImport + const HookCommentAfterDelete + const HookCommentAfterMark + const HookCommentAfterRender + const HookCommentAfterSave + const HookCommentAvatar + const HookCommentBeforeDelete + const HookCommentBeforeMark + const HookCommentBeforeRender + const HookCommentBeforeSave + const HookCommentFilter + const HookCommentGuard + const HookCommentListRender + const HookCommentPageNav + const HookCommentParse + const HookCommentPermalink + const HookCommentReplyLink + const HookContentAfterDelete + const HookContentAfterRender + const HookContentAfterSave + const HookContentAfterStatus + const HookContentAuthor + const HookContentBeforeDelete + const HookContentBeforeRender + const HookContentBeforeSave + const HookContentBeforeStatus + const HookContentFieldReadOnly + const HookContentFields + const HookContentFilter + const HookContentList + const HookContentParse + const HookContentPermalink + const HookContentTitle + const HookExcerpt + const HookExcerptAfterRender + const HookFeedCommentItem + const HookFeedItem + const HookFinishTrackback + const HookFrontendFooter + const HookFrontendHead + const HookImageProcess + const HookMetaPermalink + const HookPriorityEarly + const HookPriorityLate + const HookPriorityNormal + const HookRequestAfter + const HookRequestBefore + const HookRequestFallback + const HookRevisionAfterSave + const HookRevisionBeforeSave + const HookTrackback + const HookUploadAfterSave + const HookUploadBeforeSave + const HookUploadHandle + const HookUserHashValidate + const HookUserLoginAfter + const HookUserLoginAuthenticated + const HookUserLoginBefore + const HookUserLoginFail + const HookUserLogout + const HookUserRegisterAfter + const HookUserRegisterBefore + const HookWAFCheck + const HookXMLRPCFinishPingback + const HookXMLRPCPingback + const HookXMLRPCTextFilter + const HookXMLRPCUpload + const NoticeAuto + const NoticeCard + const NoticeError + const NoticeInfo + const NoticeSnackbar + const NoticeSuccess + const NoticeWarning + var Default = NewManager() + var ErrRuntimeUnavailable = errors.New("plugin runtime unavailable") + var ErrServiceUnavailable = errors.New("plugin service unavailable") + func Compatible(required, current string) bool + func ContextWithRuntime(ctx context.Context, runtime *Runtime) context.Context + func DatabaseTableName(owner, name string) string + func JoinMultiValue(values []string) string + func RebindSQL(dialect, query string) string + func Register(p Plugin) + func RegisterTheme(theme Theme) + func SplitMultiValue(value string) []string + type Activator interface + Activate func(context.Context, *Runtime) error + type AdminAction struct + Description string + Icon string + Label string + Name string + Variant string + type AdminActionProvider interface + AdminActions func() []AdminAction + HandleAdminAction func(context.Context, *Runtime, string) (AdminNotice, error) + type AdminMenuItem struct + Icon string + Label string + OpenNewTab bool + Owner string + URL string + type AdminMenuProvider interface + AdminMenuItems func(context.Context) []AdminMenuItem + type AdminNotice struct + Message string + Mode string + SkipCoreI18n bool + Type string + type AdminNoticeProvider interface + AdminNotices func(context.Context, *Runtime, map[string]string) []AdminNotice + type AdminPage struct + Description string + Icon string + Label string + Name string + Title string + type AdminPageActionProvider interface + HandleAdminPageAction func(context.Context, *Runtime, string, map[string][]string) (AdminPageActionResult, error) + type AdminPageActionResult struct + ConfigPatch map[string]string + Notice AdminNotice + type AdminPageProvider interface + AdminPages func() []AdminPage + RenderAdminPage func(context.Context, *Runtime, string, AdminPageRenderContext) (template.HTML, error) + type AdminPageRenderContext struct + CSRF string + Config map[string]string + Query map[string][]string + type ArchivePayload struct + Data map[string]any + Handled bool + Query *PublicContentQuery + Results []PublicContent + Slug string + Total int64 + Type string + type AttachmentDataPayload struct + Content any + Data []byte + Handled bool + Meta any + type AttachmentDeleteHandlePayload struct + Content any + Handled bool + Meta any + type AttachmentEditPayload struct + Content any + Description string + Meta any + Title string + type AttachmentMetaInfo struct + Description string + Height int + IsImage bool + MIME string + Name string + Size int64 + URL string + Width int + type AttachmentPayload struct + Content any + Meta any + type AttachmentReplacePayload struct + Content any + Handled bool + Meta any + Name string + Open func() (io.ReadCloser, error) + ParentID int64 + PreviousMeta any + Size int64 + Warning string + type AttachmentURLPayload struct + Content any + Meta any + URL string + type AutosavePayload struct + ContentID int64 + Handled bool + Input any + Result any + type BackupPayload struct + Data any + Handled bool + type ColumnDefinition struct + AutoInc bool + Default string + Length int + Name string + Nullable bool + Primary bool + Type ColumnType + type ColumnType string + const ColBool + const ColDatetime + const ColFloat + const ColInt64 + const ColText + const ColVarchar + type CommentActionPayload struct + Comment any + Content any + ID int64 + PreviousStatus string + Status string + type CommentAvatarPayload struct + Comment any + Mail string + Size int + URL string + type CommentBadge struct + Icon string + Label string + Tone string + type CommentEnrichment struct + Badges []CommentBadge + CSSClasses []string + Extra map[string]any + type CommentFilterPayload struct + Comment any + type CommentGuardPayload struct + CID int64 + Handled bool + Reason string + Request *http.Request + Token string + Valid bool + type CommentLinkPayload struct + Comment PublicComment + Content PublicContent + HTML template.HTML + URL string + type CommentListPayload struct + Comments []PublicComment + Content PublicContent + HTML template.HTML + Handled bool + Pager any + Views any + type CommentParserPayload struct + Comment any + HTML template.HTML + Handled bool + Mode string + Text string + type CommentPermalinkPayload struct + Comment PublicComment + Content PublicContent + URL string + type CommentRenderPayload struct + Comment any + HTML template.HTML + Text string + type CommentSavePayload struct + Comment any + Content any + ID int64 + Input any + Operation string + type CommentWriteInput struct + Agent string + Author string + AuthorID int64 + CID int64 + ID int64 + IP string + Mail string + Operation string + OwnerID int64 + Parent int64 + Status string + Text string + Type string + URL string + type ConfigHandler interface + HandleConfig func(ctx context.Context, rt *Runtime, values map[string]string, isInit bool) error + type ConfigProvider interface + ConfigSchema func() []FieldSchema + type ConfigValidator interface + ValidateConfig func(values map[string]string) map[string]string + type ContentAuthorPayload struct + Author PublicUser + Content PublicContent + type ContentDeletePayload struct + Content any + ID int64 + type ContentFieldInput struct + FloatValue float64 + IntValue int64 + Name string + StrValue string + Type string + type ContentFieldReadOnlyPayload struct + ContentID int64 + Name string + ReadOnly bool + Type string + type ContentFieldsPayload struct + ContentID int64 + Fields []FieldSchema + Type string + type ContentFieldsProvider interface + ContentFieldSchema func() []FieldSchema + type ContentFilterPayload struct + Content any + type ContentListPayload struct + Handled bool + Query any + Results any + Stage string + Title string + Total int64 + View string + type ContentParserPayload struct + Content any + HTML template.HTML + Handled bool + Mode string + Text string + type ContentPermalinkPayload struct + Content PublicContent + URL string + type ContentRenderPayload struct + Content any + Data map[string]any + HTML template.HTML + type ContentSavePayload struct + AuthorID int64 + Content any + ID int64 + Input any + Operation string + PublishedID int64 + type ContentStatusPayload struct + Content any + ID int64 + PreviousStatus string + Status string + type ContentTitlePayload struct + Content any + Title string + type ContentWriteInput struct + AllowComment bool + AllowFeed bool + AllowPing bool + AuthorID int64 + CategoryIDs []int64 + Created int64 + DraftOf int64 + Fields []ContentFieldInput + ID int64 + Operation string + Parent int64 + Password string + PublishedID int64 + Slug string + SlugID int64 + SortOrder int64 + Status string + Tags []string + Template string + Text string + Title string + Type string + type DatabaseMigrator interface + Migrate func(ctx context.Context, db *sql.DB, dialect string, fromVersion, toVersion int) error + type DatabaseProvider interface + DatabaseTables func() []TableDefinition + DatabaseVersion func() int + type Deactivator interface + Deactivate func(context.Context, *Runtime) error + type ExcerptAfterPayload struct + Content PublicContent + Excerpt string + Limit int + Text string + type ExcerptPayload struct + Limit int + Output string + Text string + type FeedItemPayload struct + Comment PublicComment + Content PublicContent + Handled bool + Item any + Kind string + type FieldOption struct + Label string + Value string + type FieldSchema struct + Default string + Description string + ForTypes []string + Group string + Label string + Max string + Min string + Name string + Options []FieldOption + ReadOnly bool + Required bool + ShowWhenField string + ShowWhenValue string + Step string + Translate func(string) string + Type FieldType + Wide bool + type FieldType string + const FieldCheckbox + const FieldColor + const FieldDate + const FieldDatetime + const FieldImage + const FieldMultiCheckbox + const FieldMultiSelect + const FieldNumber + const FieldPassword + const FieldRadio + const FieldSelect + const FieldSlider + const FieldSwitch + const FieldText + const FieldTextarea + const FieldTime + func (t FieldType) IsBoolean() bool + func (t FieldType) IsMultiValue() bool + type FrontendHTMLPayload struct + Data map[string]any + HTML template.HTML + Location string + type HookControl struct + Payload any + Stop bool + func StopHook(payload any) HookControl + type HookDispatch struct + Payload any + Stopped bool + Triggered bool + type HookFunc func(context.Context, any) (any, error) + type ImageProcessPayload struct + Data []byte + Handled bool + MIME string + Name string + Result []byte + Warning string + type IndexDefinition struct + Columns []string + Name string + Unique bool + type InfoProvider interface + Info func() PluginInfo + type Manager struct + func NewManager() *Manager + func (m *Manager) ActiveAdminMenuItems(ctx context.Context) []AdminMenuItem + func (m *Manager) ActivePublicPaths(ctx context.Context, runtime *Runtime) ([]string, error) + func (m *Manager) ActiveRoutes() []Route + func (m *Manager) Apply(ctx context.Context, name string, payload any) (any, error) + func (m *Manager) ApplyActive(ctx context.Context, name string, payload any) (any, error) + func (m *Manager) CallActiveService(ctx context.Context, runtime *Runtime, name string, args ...any) (any, error) + func (m *Manager) Dispatch(ctx context.Context, name string, payload any) (HookDispatch, error) + func (m *Manager) DispatchActive(ctx context.Context, name string, payload any) (HookDispatch, error) + func (m *Manager) HasActiveHook(name string) bool + func (m *Manager) HasActiveService(name string) bool + func (m *Manager) IsActive(name string) bool + func (m *Manager) Plugin(name string) (Plugin, bool) + func (m *Manager) PluginInfo(p Plugin) PluginInfo + func (m *Manager) Plugins() []Plugin + func (m *Manager) Register(p Plugin) + func (m *Manager) RegisterAdminMenu(item AdminMenuItem) + func (m *Manager) RegisterHook(name string, fn HookFunc) + func (m *Manager) RegisterHookWithPriority(name string, priority int, fn HookFunc) + func (m *Manager) RegisterPublicPathProvider(provider PublicPathProvider) + func (m *Manager) RegisterRoute(method, pattern string, handler RouteHandler) + func (m *Manager) RegisterRuntimeHook(name string, fn RuntimeHookFunc) + func (m *Manager) RegisterRuntimeHookWithPriority(name string, priority int, fn RuntimeHookFunc) + func (m *Manager) RegisterService(name string, fn ServiceFunc) + func (m *Manager) RegisterTheme(theme Theme) + func (m *Manager) Routes() []Route + func (m *Manager) SetActivePlugins(names []string) + func (m *Manager) Theme(name string) (Theme, bool) + func (m *Manager) Themes() []Theme + type MetaPermalinkPayload struct + Meta PublicMeta + URL string + type PersonalConfigProvider interface + PersonalConfigSchema func() []FieldSchema + type Plugin interface + Description func() string + Init func(*Manager) + Name func() string + Version func() string + type PluginInfo struct + Author string + Description string + Homepage string + Name string + RequireGopherInk string + Version string + type PublicArchivePeriod struct + Count int + Date string + Day int + Month int + URL string + Year int + type PublicComment struct + Agent string + Author string + AuthorID int64 + CID int64 + COID int64 + ContentType string + Created int64 + IP string + Mail string + OwnerID int64 + Parent int64 + Slug string + Status string + Text string + Title string + Type string + URL string + type PublicCommentQuery struct + AuthorID int64 + CID int64 + COID int64 + IP string + Keywords string + Limit int + Mail string + Offset int + OwnerID int64 + Status string + Type string + type PublicContent struct + AllowComment string + AllowFeed string + AllowPing string + AuthorID int64 + CID int64 + CommentsNum int64 + Created int64 + DraftOf int64 + Modified int64 + Parent int64 + Password string + Slug string + SlugID int64 + SortOrder int64 + Status string + Template string + Text string + Title string + Type string + type PublicContentQuery struct + AuthorID int64 + CID int64 + Category int64 + Day int + ExcludeFuture bool + IncludeDrafts bool + Keywords string + Limit int + Month int + Offset int + Slug string + SlugID int64 + Status string + Tag int64 + Type string + Year int + type PublicMeta struct + Count int64 + Description string + MID int64 + Name string + Parent int64 + Slug string + SortOrder int64 + Type string + type PublicMetaQuery struct + Limit int + MID int64 + Offset int + Parent int64 + Slug string + Type string + Used bool + type PublicPathProvider func(context.Context, *Runtime) ([]string, error) + type PublicRevision struct + AllowComment string + AllowFeed string + AllowPing string + AuthorID int64 + CID int64 + Created int64 + Parent int64 + Password string + RID int64 + Slug string + SortOrder int64 + Status string + Template string + Text string + Title string + type PublicUser struct + Mail string + Name string + Role string + ScreenName string + UID int64 + URL string + type PublicUserQuery struct + Keywords string + Limit int + Mail string + Name string + Offset int + Role string + UID int64 + type RequestPayload struct + Admin bool + Body string + Bytes int64 + ContentType string + Duration int64 + Handled bool + Headers map[string]string + IP string + Method string + Path string + RawQuery string + Referer string + RemoteAddr string + ResponseHeaders map[string]string + Static bool + Status int + UserAgent string + type RevisionPayload struct + ContentID int64 + Handled bool + Input any + Revision any + type Route struct + Handler RouteHandler + InvalidatesPublicData bool + Method string + Pattern string + Plugin string + type RouteHandler func(*Runtime, http.ResponseWriter, *http.Request) + type Runtime struct + ActiveTheme func(context.Context) string + AdjacentPosts func(context.Context, int64) (PublicContent, PublicContent, error) + AdminURL func(context.Context) string + ArchiveMonths func(context.Context, int) ([]PublicArchivePeriod, error) + AttachmentMeta func(context.Context, int64) (AttachmentMetaInfo, error) + AvatarURL func(context.Context, string, int) string + BanIP func(context.Context, string, time.Duration, string) error + CSRFToken func(*http.Request, string) string + CallService func(context.Context, string, ...any) (any, error) + ClientIP func(*http.Request) string + CommentURL func(context.Context, int64) (string, error) + CommentsFeedURL func(context.Context) string + Config func(context.Context, string) (map[string]string, error) + ContentRenderMode func(context.Context) string + ContentURL func(context.Context, int64) (string, error) + CurrentUser func(*http.Request) (PublicUser, bool) + DeleteComment func(context.Context, int64) error + DeleteContent func(context.Context, int64) error + DeleteContentField func(context.Context, int64, string) error + DeleteRevision func(context.Context, int64, int64) error + DispatchHook func(context.Context, string, any) (HookDispatch, error) + Excerpt func(ctx context.Context, text string, limit int) string + FeedURL func(context.Context) string + GetContentAuthor func(context.Context, int64) (PublicUser, error) + GetContentFields func(context.Context, int64) (map[string]any, error) + GetEditingDraft func(context.Context, int64) (PublicContent, error) + GetRevision func(context.Context, int64) (PublicRevision, error) + IncrementContentFieldInt func(context.Context, int64, string, int64) (int64, error) + IsIPBanned func(context.Context, string) bool + IsURLAllowed func(context.Context, string) bool + Language func(context.Context) string + ListComments func(context.Context, PublicCommentQuery) ([]PublicComment, int64, error) + ListContentMetas func(context.Context, int64) ([]PublicMeta, error) + ListContents func(context.Context, PublicContentQuery) ([]PublicContent, int64, error) + ListMetas func(context.Context, PublicMetaQuery) ([]PublicMeta, int64, error) + ListRevisions func(context.Context, int64) ([]PublicRevision, error) + ListThemeFiles func(context.Context, ...string) ([]string, error) + ListUsers func(context.Context, PublicUserQuery) ([]PublicUser, int64, error) + LoginURL func(context.Context) string + LogoutURL func(context.Context) string + NotifyAdmin func(http.ResponseWriter, *http.Request, ...AdminNotice) + OpenPluginDB func(context.Context) (*sql.DB, error) + Option func(context.Context, string) (string, error) + Owner string + OwnerKind string + PersonalConfig func(context.Context, string, int64) (map[string]string, error) + PluginActive func(string) bool + PluginDBDialect func(context.Context) string + PluginDataDir func(context.Context) (string, error) + PluginURL func(ctx context.Context, owner string) string + ProfileURL func(context.Context) string + PublishDraft func(context.Context, int64) error + RegisterURL func(context.Context) string + RelatedPosts func(context.Context, int64, int) ([]PublicContent, error) + RenderContent func(context.Context, int64) (template.HTML, error) + RestoreRevision func(context.Context, int64, int64) error + SaveComment func(context.Context, CommentWriteInput) (PublicComment, error) + SaveContent func(context.Context, ContentWriteInput) (PublicContent, error) + ServiceAvailable func(string) bool + SetContentField func(context.Context, int64, ContentFieldInput) error + SetOption func(context.Context, string, string) error + SiteURL func(context.Context) string + ThemeEditableDir func(context.Context, ...string) (string, bool) + ThemeURL func(ctx context.Context, name, file string) string + ThumbnailURL func(context.Context, int64, int, int) (string, error) + UnbanIP func(context.Context, string) error + ValidateCSRF func(*http.Request, string) bool + WAFStats func(context.Context) (WAFStatistics, error) + XMLRPCURL func(context.Context) string + func RuntimeFromContext(ctx context.Context) (*Runtime, bool) + func (r *Runtime) DatabaseTableName(table string) string + func (r *Runtime) GetAdminURL(ctx context.Context) string + func (r *Runtime) GetComment(ctx context.Context, coid int64) (PublicComment, error) + func (r *Runtime) GetContent(ctx context.Context, cid int64) (PublicContent, error) + func (r *Runtime) GetMeta(ctx context.Context, mid int64) (PublicMeta, error) + func (r *Runtime) GetSiteURL(ctx context.Context) string + func (r *Runtime) GetUser(ctx context.Context, uid int64) (PublicUser, error) + func (r *Runtime) OpenPluginDatabase(ctx context.Context) (*sql.DB, error) + func (r *Runtime) RebindSQL(ctx context.Context, query string) string + func (r *Runtime) WithComponent(kind, owner string) *Runtime + func (r *Runtime) WithOwner(owner string) *Runtime + type RuntimeHookFunc func(context.Context, *Runtime, any) (any, error) + type ServiceFunc func(context.Context, *Runtime, ...any) (any, error) + type StaticProvider interface + PluginStatic func() fs.FS + type TableDefinition struct + Columns []ColumnDefinition + Indexes []IndexDefinition + Name string + type Theme struct + AdjustData func(context.Context, map[string]any) error + AdminNotices func(context.Context, *Runtime, map[string]string) []AdminNotice + AdminPages []AdminPage + Author string + Capabilities ThemeCapabilities + ConfigHandler func(context.Context, *Runtime, map[string]string, bool) error + ConfigSchema []FieldSchema + ConfigValidator func(map[string]string) map[string]string + ContentFields []FieldSchema + Description string + DisplayName string + EditableDir string + Embedded bool + EnrichComments func(context.Context, *Runtime, map[string]string, []PublicComment) map[int64]CommentEnrichment + Funcs template.FuncMap + HandleAdminPageAction func(context.Context, *Runtime, string, map[string][]string) (AdminPageActionResult, error) + Homepage string + InitRuntime func(context.Context, *Runtime) error + Name string + RenderAdminPage func(context.Context, *Runtime, string, AdminPageRenderContext) (template.HTML, error) + Routes []Route + Screenshot string + Static fs.FS + TemplateList []string + Templates fs.FS + Translate func(lang, key string) string + Version string + type ThemeCapabilities struct + CommentGuard bool + type TrackbackPayload struct + Comment PublicComment + Content PublicContent + Handled bool + Input any + type Translator interface + Translate func(lang, key string) string + type UploadHandlePayload struct + Bucket string + Handled bool + MIME string + Meta any + Name string + Open func() (io.ReadCloser, error) + ParentID int64 + Size int64 + type UploadPayload struct + Meta any + Name string + ParentID int64 + type UserHashValidatePayload struct + Handled bool + Hash string + Name string + Password string + User PublicUser + Valid bool + type UserLoginPayload struct + Blocked bool + Error string + IP string + Message string + Name string + Next string + Success bool + User PublicUser + UserAgent string + type UserLogoutPayload struct + IP string + User PublicUser + UserAgent string + type UserRegisterPayload struct + Blocked bool + IP string + Input any + Message string + User PublicUser + UserAgent string + type WAFPayload struct + Blocked bool + Handled bool + IP string + Path string + Reason string + Request *http.Request + type WAFStatistics struct + AllowedPaths int + BannedIPs int + RecentBlocks int64 + type XMLRPCPingbackPayload struct + Comment PublicComment + Content PublicContent + Handled bool + Message string + SourceURI string + TargetURI string + type XMLRPCTextPayload struct + Content PublicContent + Method string + Text string + type XMLRPCUploadPayload struct + Data []byte + Handled bool + Name string + Result map[string]any v0.5.0-beta.6 Aug 20, 2026 v0.5.0-beta.5 Aug 13, 2026 v0.5.0-beta.4 Aug 10, 2026 v0.5.0-beta.3 Aug 9, 2026 v0.5.0-beta.2 Aug 9, 2026 v0.5.0-beta.1 Aug 9, 2026