shared

package
v1.13.1 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2024 License: MIT Imports: 41 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DigestIntervalOpts = []string{
	"10min",
	"1hour",
	"6hour",
	"12hour",
	"1day",
	"7day",
	"30day",
}
View Source
var FuncMap = template.FuncMap{
	"minus":    minus,
	"intRange": intRange,
}
View Source
var GB = MB * 1024
View Source
var KB = 1024
View Source
var MB = KB * 1024

Functions

func BytesToGB added in v1.2.0

func BytesToGB(size int) float32

func CheckHandler

func CheckHandler(w http.ResponseWriter, r *http.Request)

func CreateLogger

func CreateLogger(debug bool) *slog.Logger

func CreatePageHandler

func CreatePageHandler(fname string) http.HandlerFunc

func FilenameToTitle

func FilenameToTitle(filename string, title string) string

func GetAssetBucketName added in v1.2.0

func GetAssetBucketName(userID string) string

func GetAssetFileName added in v1.2.0

func GetAssetFileName(entry *utils.FileEntry) string

func GetCache added in v1.1.5

func GetCache(r *http.Request) *cache.Cache

func GetCustomDomain

func GetCustomDomain(host string, space string) string

func GetDB

func GetDB(r *http.Request) db.DB

func GetEnv

func GetEnv(key string, defaultVal string) string

func GetField

func GetField(r *http.Request, index int) string

func GetImgsBucketName added in v1.10.0

func GetImgsBucketName(userID string) string

func GetLogger

func GetLogger(r *http.Request) *slog.Logger

func GetProjectName added in v1.2.0

func GetProjectName(entry *utils.FileEntry) string

func GetStorage

func GetStorage(r *http.Request) storage.StorageServe

func GetSubdomain

func GetSubdomain(r *http.Request) string

func GetUsernameFromRequest

func GetUsernameFromRequest(r *http.Request) string

func HtmlPolicy

func HtmlPolicy() *bluemonday.Policy

func IsExtAllowed

func IsExtAllowed(filename string, allowedExt []string) bool

func IsText

func IsText(s string) bool

IsText reports whether a significant prefix of s looks like correct UTF-8; that is, if it is likely that s is human-readable text.

func IsTextFile

func IsTextFile(text string) bool

IsTextFile reports whether the file has a known extension indicating a text file, or if a significant chunk of the specified file looks like correct UTF-8; that is, if it is likely that the file contains human- readable text.

func IsValidSubdomain added in v1.2.0

func IsValidSubdomain(subd string) bool

func KeyAsValue added in v1.1.0

func KeyAsValue(token *SplitToken) string

func KeyText

func KeyText(s ssh.Session) (string, error)

func PublishAtDate added in v1.1.0

func PublishAtDate(date string) (*time.Time, error)

func RenderTemplate

func RenderTemplate(cfg *ConfigSite, templates []string) (*template.Template, error)

func SanitizeFileExt

func SanitizeFileExt(fname string) string

func ServeFile

func ServeFile(file string, contentType string) http.HandlerFunc

func Shasum

func Shasum(data []byte) string

func SplitByNewline added in v1.1.0

func SplitByNewline(text string) []string

func TimeAgo

func TimeAgo(t *time.Time) string

func ToUpper

func ToUpper(str string) string

func TokenToMetaField added in v1.1.0

func TokenToMetaField(meta *ListMetaData, token *SplitToken) error

Types

type ConfigSite

type ConfigSite struct {
	config.ConfigCms
	config.ConfigURL
	Debug                bool
	SubdomainsEnabled    bool
	CustomdomainsEnabled bool
	SendgridKey          string
	UseImgProxy          bool
}

func GetCfg

func GetCfg(r *http.Request) *ConfigSite

func (*ConfigSite) AssetURL added in v1.2.0

func (c *ConfigSite) AssetURL(username, projectName, fpath string) string

func (*ConfigSite) BlogURL

func (c *ConfigSite) BlogURL(username string) string

func (*ConfigSite) CssURL

func (c *ConfigSite) CssURL(username string) string

func (*ConfigSite) FullBlogURL

func (c *ConfigSite) FullBlogURL(curl *CreateURL, username string) string

func (*ConfigSite) FullPostURL

func (c *ConfigSite) FullPostURL(curl *CreateURL, username, slug string) string

func (*ConfigSite) GetSiteData

func (c *ConfigSite) GetSiteData() *SitePageData

func (*ConfigSite) HomeURL

func (c *ConfigSite) HomeURL() string

func (*ConfigSite) ImgFullURL

func (c *ConfigSite) ImgFullURL(username, slug string) string

func (*ConfigSite) ImgOrigURL

func (c *ConfigSite) ImgOrigURL(curl *CreateURL, username string, slug string) string

func (*ConfigSite) ImgPostURL

func (c *ConfigSite) ImgPostURL(curl *CreateURL, username string, slug string) string

func (*ConfigSite) ImgURL

func (c *ConfigSite) ImgURL(curl *CreateURL, username string, slug string) string

func (*ConfigSite) IsCustomdomains

func (c *ConfigSite) IsCustomdomains() bool

func (*ConfigSite) IsSubdomains

func (c *ConfigSite) IsSubdomains() bool

func (*ConfigSite) PostURL

func (c *ConfigSite) PostURL(username, slug string) string

func (*ConfigSite) RawPostURL

func (c *ConfigSite) RawPostURL(username, slug string) string

func (*ConfigSite) ReadURL

func (c *ConfigSite) ReadURL() string

func (*ConfigSite) RssBlogURL

func (c *ConfigSite) RssBlogURL(curl *CreateURL, username, tag string) string

func (*ConfigSite) StaticPath

func (c *ConfigSite) StaticPath(fname string) string

func (*ConfigSite) TagURL

func (c *ConfigSite) TagURL(curl *CreateURL, username, tag string) string

type CreateURL

type CreateURL struct {
	Subdomain       bool
	UsernameInRoute bool
	HostDomain      string
	AppDomain       string
	Username        string
	Cfg             *ConfigSite
}

func CreateURLFromRequest

func CreateURLFromRequest(cfg *ConfigSite, r *http.Request) *CreateURL

func NewCreateURL

func NewCreateURL(cfg *ConfigSite) *CreateURL
type Link struct {
	URL  string
	Text string
}

type ListItem added in v1.1.0

type ListItem struct {
	Value       string
	URL         template.URL
	Variable    string
	IsURL       bool
	IsBlock     bool
	IsText      bool
	IsHeaderOne bool
	IsHeaderTwo bool
	IsImg       bool
	IsPre       bool
	Indent      int
}

type ListMetaData added in v1.1.0

type ListMetaData struct {
	PublishAt      *time.Time
	Title          string
	Description    string
	Layout         string
	Tags           []string
	ListType       string // https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type
	DigestInterval string
	Email          string
	InlineContent  bool // allows content inlining to be disabled in feeds.sh emails
}

type ListParsedText added in v1.1.0

type ListParsedText struct {
	Items []*ListItem
	*ListMetaData
}

func ListParseText added in v1.1.0

func ListParseText(text string) *ListParsedText

type MetaData

type MetaData struct {
	PublishAt   *time.Time
	Title       string
	Description string
	Nav         []Link
	Tags        []string
	Aliases     []string
	Layout      string
	Image       string
	ImageCard   string
	Favicon     string
	Hidden      bool
}

type PageData

type PageData struct {
	Site SitePageData
}

type ParsedText

type ParsedText struct {
	Html string
	*MetaData
}

func ParseText

func ParseText(text string) (*ParsedText, error)

type Route

type Route struct {
	Method  string
	Regex   *regexp.Regexp
	Handler http.HandlerFunc
}

func CreatePProfRoutes

func CreatePProfRoutes(routes []Route) []Route

func NewRoute

func NewRoute(method, pattern string, handler http.HandlerFunc) Route

type ServeFn

type ServeFn func(http.ResponseWriter, *http.Request)

func CreateServe

func CreateServe(routes []Route, subdomainRoutes []Route, cfg *ConfigSite, dbpool db.DB, st storage.StorageServe, logger *slog.Logger, cache *cache.Cache) ServeFn

type SitePageData

type SitePageData struct {
	Domain      template.URL
	HomeURL     template.URL
	Email       string
	Description string
}

type SplitToken added in v1.1.0

type SplitToken struct {
	Key   string
	Value string
}

func TextToSplitToken added in v1.1.0

func TextToSplitToken(text string) *SplitToken

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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