shared

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2023 License: MIT Imports: 54 Imported by: 0

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

View Source
var AlreadyWebPError = errors.New("image is already webp")
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 IsSvgError = errors.New("image is an svg")
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 CreateImgURL ¶

func CreateImgURL(linkify Linkify) func([]byte) []byte

func CreateLogger ¶

func CreateLogger() *zap.SugaredLogger

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(logger *zap.SugaredLogger, 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 GetImageForOptimization ¶ added in v1.1.5

func GetImageForOptimization(r io.Reader, mimeType string) (image.Image, error)

func GetLogger ¶

func GetLogger(r *http.Request) *zap.SugaredLogger

func GetMimeType ¶ added in v1.2.0

func GetMimeType(fpath string) string

func GetProjectName ¶ added in v1.2.0

func GetProjectName(entry *utils.FileEntry) string

func GetStorage ¶

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

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 IsWebOptimized ¶ added in v1.1.5

func IsWebOptimized(mimeType string) bool

func KeyAsValue ¶ added in v1.1.0

func KeyAsValue(token *SplitToken) string

func KeyText ¶

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

func NewImgsRenderer ¶

func NewImgsRenderer(url func([]byte) []byte) renderer.NodeRenderer

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
}

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 ImgOptimizer ¶

type ImgOptimizer struct {
	// Specify the compression factor for RGB channels between 0 and 100. The default is 75.
	// A small factor produces a smaller file with lower quality.
	// Best quality is achieved by using a value of 100.
	Quality float32
	*Ratio
	DeviceType deviceType
	Lossless   bool
}

func NewImgOptimizer ¶

func NewImgOptimizer(logger *zap.SugaredLogger, dimes string) *ImgOptimizer

func (*ImgOptimizer) DecodeWebp ¶

func (h *ImgOptimizer) DecodeWebp(r io.Reader) (image.Image, error)

func (*ImgOptimizer) EncodeWebp ¶

func (h *ImgOptimizer) EncodeWebp(writer io.Writer, img image.Image) error

func (*ImgOptimizer) Process ¶

func (h *ImgOptimizer) Process(writer io.Writer, contents io.Reader) error

type ImgRender ¶

type ImgRender struct {
	ghtml.Config
	ImgURL func(url []byte) []byte
}

func (*ImgRender) RegisterFuncs ¶

func (r *ImgRender) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)
type Link struct {
	URL  string
	Text string
}

type Linkify ¶

type Linkify interface {
	Create(fname string) 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, linkify Linkify) *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 NullLinkify ¶ added in v1.1.0

type NullLinkify struct{}

func NewNullLinkify ¶ added in v1.1.0

func NewNullLinkify() *NullLinkify

func (*NullLinkify) Create ¶ added in v1.1.0

func (n *NullLinkify) Create(s string) string

type PageData ¶

type PageData struct {
	Site SitePageData
}

type ParsedText ¶

type ParsedText struct {
	Html string
	*MetaData
}

func ParseText ¶

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

type Ratio ¶

type Ratio struct {
	Width  int
	Height int
}

func GetRatio ¶

func GetRatio(dimes string) (*Ratio, 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.ObjectStorage, logger *zap.SugaredLogger, 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