app

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2024 License: GPL-3.0 Imports: 62 Imported by: 0

Documentation

Overview

Package app handles the routes and views for the Defacto2 website.

Index

Constants

View Source
const (
	// Welcome is the default logo monospace text,
	// each side contains 20 whitespace characters.
	// The welcome to defacto2 text is 19 characters long.
	// The letter 'O' of TO is the center of the text.
	Welcome = `:                    ` +
		`·· WELCOME TO DEFACTO2 ··` +
		`                    ·`
)

Variables

View Source
var (
	ErrClaims   = errors.New("no sub id in the claims playload")
	ErrCode     = errors.New("the http status code is not valid")
	ErrCxt      = errors.New("the server could not create a context")
	ErrData     = errors.New("cache data is invalid or corrupt")
	ErrDB       = errors.New("database connection is nil")
	ErrExtract  = errors.New("unknown extractor value")
	ErrLinkType = errors.New("the id value is an invalid type")
	ErrMisMatch = errors.New("token mismatch")
	ErrNegative = errors.New("value cannot be a negative number")
	ErrSession  = errors.New("no sub id in session")
	ErrTarget   = errors.New("target not found")
	ErrTmpl     = errors.New("the server could not render the html template for this page")
	ErrUser     = errors.New("unknown user")
	ErrVal      = errors.New("value is empty")
	ErrZap      = errors.New("the zap logger cannot be nil")
)
View Source
var Caching = Cache{} //nolint:gochecknoglobals

Caching are values that are used throughout the app or layouts.

Functions

func Artifact404

func Artifact404(c echo.Context, id string) error

Artifact404 renders the error page for the artifact links.

func Artifacts

func Artifacts(c echo.Context, db *sql.DB, uri, page string) error

Artifacts is the handler for the list and preview of the files page. The uri is the category or collection of files to display. The page is the page number of the results to display.

func Artifacts404

func Artifacts404(c echo.Context, uri string) error

Artifacts404 renders the files error page for the Artifacts menu and categories. It provides different error messages to the standard error page.

func Artist

func Artist(c echo.Context, db *sql.DB) error

Artist is the handler for the Artist sceners page.

func Attribute

func Attribute(write, code, art, music, name string) string

Attribute returns a formatted string of the roles for the given scener name.

func BBS

func BBS(c echo.Context, db *sql.DB) error

BBS is the handler for the BBS page ordered by the most files.

func BBSAZ

func BBSAZ(c echo.Context, db *sql.DB) error

BBSAZ is the handler for the BBS page ordered alphabetically.

func BBSYear

func BBSYear(c echo.Context, db *sql.DB) error

BBSYear is the handler for the BBS page ordered by the year.

func BadRequestErr

func BadRequestErr(c echo.Context, uri string, err error) error

BadRequestErr is the handler for handling Bad Request Errors, caused by invalid user input or a malformed client requests.

func Brief

func Brief(platform, section any) string

Brief returns a human readable brief description of a release. Based on the platform, section, year and month.

func ByteFile

func ByteFile(cnt, bytes any) template.HTML

ByteFile returns a human readable string of the file count and bytes.

func ByteFileS

func ByteFileS(name string, count, bytes any) template.HTML

ByteFileS returns a human readable string of the byte count with a named description.

func Categories

func Categories(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, stats bool) error

Categories is the handler for the artifact categories page.

func Checksum

func Checksum(c echo.Context, db *sql.DB, id string) error

Checksum is the handler for the Checksum file record page.

func Coder

func Coder(c echo.Context, db *sql.DB) error

Code is the handler for the Coder sceners page.

func Configurations added in v0.8.0

func Configurations(cx echo.Context, db *sql.DB, conf config.Config) error

Configurations is the handler for the Configuration page.

func DatabaseErr

func DatabaseErr(c echo.Context, uri string, err error) error

DatabaseErr is the handler for database connection issues. A HTTP 503 Service Unavailable error is returned, to reflect the database connection issue but where the server is still running and usable for the client.

func Day

func Day(d any) string

Day returns a string of the day number from the day d number between 1 and 31.

func Deletions

func Deletions(c echo.Context, db *sql.DB, page string) error

func Describe

func Describe(platform, section, year, month any) template.HTML

Describe returns a human readable description of a release. Based on the platform, section, year and month.

func Download

func Download(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, path string) error

Download is the handler for the Download file record page.

func DownloadErr

func DownloadErr(c echo.Context, uri string, err error) error

DownloadErr is the handler for missing download files and database ID errors.

func DownloadJsDos added in v0.9.0

func DownloadJsDos(c echo.Context, db *sql.DB, extraPath, downloadPath string) error

DownloadJsDos is the handler for the js-dos emulator to download zip files that are then mounted as a C: hard drive in the emulation. js-dos only supports common zip compression methods, so this func first attempts to offer a re-archived zip file found in the extra directory, and only if that fails does it offer the original download file.

func FTP

func FTP(c echo.Context, db *sql.DB) error

FTP is the handler for the FTP page.

func FileMissingErr

func FileMissingErr(c echo.Context, uri string, err error) error

FileMissingErr is the handler for missing download files and database ID errors.

func ForApproval

func ForApproval(c echo.Context, db *sql.DB, page string) error

ForApproval is the handler for the list and preview of the files page. The uri is the category or collection of files to display. The page is the page number of the results to display.

func ForbiddenErr

func ForbiddenErr(c echo.Context, uri string, err error) error

ForbiddenErr is the handler for handling Forbidden Errors, caused by clients requesting pages that they do not have permission to access.

func GetDemozoo added in v0.10.0

func GetDemozoo(c echo.Context, db *sql.DB, demozooID int, defacto2UNID, downloadDir string) error

GetDemozoo fetches the download link from Demozoo and saves it to the download directory. It then runs Update to modify the database record with various metadata from the file and Demozoo record API data.

This function is a wrapper for the remote.DemozooLink.Download method.

func GetDemozooParam added in v0.10.0

func GetDemozooParam(c echo.Context, db *sql.DB, downloadDir string) error

GetDemozooParam fetches the multiple download_links values from the Demozoo production API and attempts to download and save one of the linked files. If multiple links are found, the first link is used as they should all point to the same asset.

Both the Demozoo production ID param and the Defacto2 UUID query param values are required as params to fetch the production data and to save the file to the correct filename.

func GetPouet added in v0.10.0

func GetPouet(c echo.Context, db *sql.DB, pouetID int, defacto2UNID, downloadDir string) error

GetPouet fetches the download link from Pouet and saves it to the download directory. It then runs Update to modify the database record with various metadata from the file and Pouet record API data.

This function is a wrapper for the remote.PouetLink.Download method.

func GlobTo

func GlobTo(name string) string

GlobTo returns the path to the template file.

func GoogleCallback

func GoogleCallback(c echo.Context, clientID string, maxAge int, accounts ...[48]byte) error

GoogleCallback is the handler for the Google OAuth2 callback page to verify the Google ID token.

func History

func History(c echo.Context) error

History is the handler for the History page.

func Index

func Index(c echo.Context) error

Index is the handler for the Home page.

func Inline

func Inline(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, path string) error

Inline is the handler for the Download file record page.

func InternalErr

func InternalErr(c echo.Context, uri string, err error) error

InternalErr is the handler for handling Internal Server Errors, caused by programming bugs or crashes. The uri string is the part of the URL that caused the error. The optional error value is logged using the zap sugared logger. If the echo context is nil then a user hostile, fallback error in raw text is returned.

func Interview

func Interview(c echo.Context) error

Interview is the handler for the People Interviews page.

func LastUpdated

func LastUpdated(t any) string

LastUpdated returns a string of the time since the given time t. The time is formatted as "Last updated 1 hour ago". If the time is not valid, an empty string is returned.

func LinkDownload

func LinkDownload(id any, uri string) template.HTML

LinkDownload creates a URL to link to the file download of the record.

func LinkHref

func LinkHref(id any) (string, error)

LinkHref creates a URL path to link to the file page for the record.

func LinkInterview

func LinkInterview(href string) template.HTML

LinkInterview returns a SVG arrow icon to indicate an interview link hosted on an external website.

func LinkPage

func LinkPage(id any) template.HTML

LinkPage creates a URL anchor element to link to the file page for the record.

func LinkPreview

func LinkPreview(id any, name, platform string) template.HTML

LinkPreview creates a URL to link to the file record in tab, to use as a preview. The preview link will only show with compatible file types based on their extension.

func LinkPreviews

func LinkPreviews(youtube, demozoo, pouet, colors16, github, rels, sites string) []string

LinkPreviews returns a slice of HTML formatted links for the artifact editor.

func LinkReleasers added in v0.10.0

func LinkReleasers(performant, magazine bool, a, b any) template.HTML

LinkBothReleasers returns the groups associated with a release and a link to each group. The performant flag will use the group name instead of the much slower group slug formatter.

func LinkRels

func LinkRels(magazine bool, a, b any) template.HTML

LinkRelrs returns the groups associated with a release and a link to each group.

func LinkRelsPerformant added in v0.10.0

func LinkRelsPerformant(a, b any) template.HTML

LinkRelsPerformant returns the groups associated with a release and a link to each group. It is a faster version of LinkRelrs and should be used with the templates that have large lists of group names.

func LinkRemote

func LinkRemote(href, name string) template.HTML

LinkRemote returns a HTML link with an embedded SVG icon to an external website.

func LinkRunApp added in v0.10.0

func LinkRunApp(id any) template.HTML

LinkRunApp creates a URL anchor element to link to the artifact page to launch the js-dos emulator.

func LinkScnr

func LinkScnr(name string) (string, error)

LinkScnr returns a link to the named scener page.

func LinkWiki

func LinkWiki(uri, name string) template.HTML

LinkWiki returns a HTML link with an embedded SVG icon to the Defacto2 wiki on GitHub.

func LogoText

func LogoText(s string) string

LogoText returns a string of text padded with spaces to center it in the logo.

func Magazine

func Magazine(c echo.Context, db *sql.DB) error

Magazine is the handler for the Magazine page.

func MagazineAZ

func MagazineAZ(c echo.Context, db *sql.DB) error

MagazineAZ is the handler for the Magazine page ordered chronologically.

func Month

func Month(m any) string

Month returns a string of the month name from the month m number between 1 and 12.

func Musician

func Musician(c echo.Context, db *sql.DB) error

Musician is the handler for the Musiciansceners page.

func New added in v0.10.0

func New(c echo.Context) error

New is the handler for the what is new page.

func Page404

func Page404(c echo.Context, uri, page string) error

Page404 renders the files page error page for the Artifacts menu and categories. It provides different error messages to the standard error page.

func PlatformEdit

func PlatformEdit(c echo.Context, db *sql.DB) error

PlatformEdit handles the post submission for the Platform selection field.

func PlatformTagInfo

func PlatformTagInfo(c echo.Context) error

PlatformTagInfo handles the POST submission for the platform and tag info.

func PostDesc

func PostDesc(c echo.Context, db *sql.DB, input string) error

PostDesc is the handler for the Search for file descriptions form post page.

func PostFilename

func PostFilename(c echo.Context, db *sql.DB) error

PostFilename is the handler for the Search for filenames form post page.

func PostName

func PostName(c echo.Context, db *sql.DB, mode FileSearch) error

PostName is the handler for the Search for filenames form post page.

func PouetCache

func PouetCache(c echo.Context, data string) error

PouetCache parses the cached data for the Pouet production votes. If the cache is valid it is returned as JSON response. If the cache is invalid or corrupt an error will be returned and a API request should be made to Pouet.

func Prefix

func Prefix(s string) string

Prefix returns a string prefixed with a space.

func ProdPouet

func ProdPouet(c echo.Context, id string) error

ProdPouet is the handler for the Pouet prod JSON page.

func ProdZoo

func ProdZoo(c echo.Context, id string) error

ProdZoo is the handler for the Demozoo production JSON page.

func RecordRels

func RecordRels(a, b any) string

RecordRels returns the groups associated with a release and joins them with a plus sign.

func Releaser

func Releaser(c echo.Context, db *sql.DB) error

Releaser is the handler for the releaser page ordered by the most files.

func Releaser404

func Releaser404(c echo.Context, invalidID string) error

Releaser404 renders the files error page for the Groups menu and invalid releasers.

func ReleaserAZ

func ReleaserAZ(c echo.Context, db *sql.DB) error

ReleaserAZ is the handler for the releaser page ordered alphabetically.

func ReleaserYear

func ReleaserYear(c echo.Context, db *sql.DB) error

ReleaserYear is the handler for the releaser page ordered by year of the first release.

func Releasers

func Releasers(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, uri string) error

Releasers is the handler for the list and preview of files credited to a releaser.

func SafeHTML

func SafeHTML(s string) template.HTML

SafeHTML returns a string as a template.HTML type. This is intended to be used to prevent HTML escaping.

func SafeJS

func SafeJS(s string) template.JS

SafeJS returns a string as a template.JS type. This is intended to be used to prevent JS escaping.

func Scener

func Scener(c echo.Context, db *sql.DB) error

Scener is the handler for the page to list all the sceners.

func Scener404

func Scener404(c echo.Context, id string) error

Scener404 renders the files error page for the People menu and invalid sceners.

func Sceners

func Sceners(c echo.Context, db *sql.DB, uri string) error

Sceners is the handler for the list and preview of files credited to a scener.

func SearchDesc

func SearchDesc(c echo.Context) error

SearchDesc is the handler for the Search for file descriptions page.

func SearchFile

func SearchFile(c echo.Context) error

SearchFile is the handler for the Search for files page.

func SearchID added in v0.8.0

func SearchID(c echo.Context) error

SearchID is the handler for the Record by ID Search page.

func SearchReleaser

func SearchReleaser(c echo.Context) error

SearchReleaser is the handler for the Releaser Search page.

func SignOut

func SignOut(c echo.Context) error

SignOut is the handler for the Sign out of Defacto2 page.

func SignedOut

func SignedOut(c echo.Context) error

SignedOut is the handler to sign out and remove the current session.

func Signin

func Signin(c echo.Context, clientID, nonce string) error

Signin is the handler for the Sign in session page.

func StatusErr

func StatusErr(c echo.Context, code int, uri string) error

StatusErr is the handler for the HTTP status pages such as the 404 - not found. If the zap logger is nil then the error page is returned but no error is logged. If the echo context is nil then a user hostile, fallback error in raw text is returned.

func SubTitle

func SubTitle(section null.String, s any) template.HTML

SubTitle returns a secondary element with the record title.

func TagBrief

func TagBrief(tag string) string

TagBrief returns a small summary of the tag.

func TagEdit

func TagEdit(c echo.Context, db *sql.DB) error

TagEdit handles the post submission for the Tag selection field.

func TagInfo

func TagInfo(c echo.Context) error

TagInfo handles the POST submission for the platform and tag info.

func TagOption

func TagOption(selected, value any) template.HTML

TagOption returns a HTML option tag with the selected attribute if the selected matches the value.

func TagWithOS

func TagWithOS(os, tag string) string

TagWithOS returns a small summary of the tag with the operating system.

func Thanks

func Thanks(c echo.Context) error

Thanks is the handler for the Thanks page.

func TheScene

func TheScene(c echo.Context) error

TheScene is the handler for the The Scene page.

func TrimSiteSuffix

func TrimSiteSuffix(s string) string

TrimSiteSuffix returns a string with the last 4 characters removed if they are " FTP" or " BBS".

func TrimSpace

func TrimSpace(a any) string

TrimSpace returns a string with all leading and trailing whitespace removed.

func URLEncode added in v0.10.0

func URLEncode(a any) string

URLEncode returns a URL encoded string from the given string. This can be used to pass filenames as URL parameters.

func Unwanted

func Unwanted(c echo.Context, db *sql.DB, page string) error

func VotePouet

func VotePouet(c echo.Context, logger *zap.SugaredLogger, id string) error

VotePouet is the handler for the Pouet production votes JSON page.

func Website

func Website(c echo.Context, open string) error

Website is the handler for the websites page. Open is the ID of the accordion section to open.

func WebsiteIcon

func WebsiteIcon(url string) template.HTML

websiteIcon returns a Bootstrap icon name for the given website url.

func Writer

func Writer(c echo.Context, db *sql.DB) error

Writer is the handler for the Writer page.

func YMDEdit

func YMDEdit(c echo.Context, db *sql.DB) error

YMDEdit handles the post submission for the Year, Month, Day selection fields.

Types

type Accordion

type Accordion = []struct {
	Name  string // Name of the category.
	Title string // Title tab for the category.
	ID    string // ID of the category.
	Sites Sites  // Sites are the websites shown in the category.
	Open  bool   // Whether the category is displayed or closed.
}

Accordion is a collection of websites grouped by a category.

func List

func List() Accordion

List is a collection of websites grouped by a category.

type Asset

type Asset int

Asset is a relative path to a public facing CSS, JS or WASM file.

const (
	Bootstrap5      Asset = iota // Bootstrap is the path to the minified Bootstrap 5.3 CSS file.
	Bootstrap5JS                 // BootstrapJS is the path to the minified Bootstrap 5.3 JS file.
	BootstrapIcons               // BootstrapIcons is the path to the custom Bootstrap Icons SVG sprites file.
	DosboxJS                     // DosboxJS is the js-dos v6 default variant compiled with emscripten.
	DosboxWasm                   // DosboxWasm is the js-dos v6 WASM binary file.
	EditArtifact                 // EditArtifact is the path to the minified Artifact Editor JS file.
	EditAssets                   // EditAssets is the path to the minified Editor assets JS file.
	EditForApproval              // EditForApproval is the path to the minified Editor for-approval JS file.
	Htmx                         // Htmx is the path to the minified htmx AJAX JS file.
	HtmxRespTargets              // Htmx is the path to the minified response targets extension file.
	Jsdos6JS                     // Jsdos6JS is the path to the minified js-dos v6 JS file.
	Layout                       // Layout is the path to the minified layout CSS file.
	LayoutJS                     // LayoutJS is the path to the minified layout JS file.
	Pouet                        // Pouet is the path to the minified Pouet JS file.
	Readme                       // Readme is the path to the minified Readme JS file.
	Uploader                     // Uploader is the path to the minified Uploader JS file.
)

type Cache

type Cache struct {
	RecordCount int // The total number of file records in the database.
}

Cache contains database values that are used throughout the app or layouts.

func (*Cache) Records

func (c *Cache) Records(i int)

Records caches the database record count.

type Dirs

type Dirs struct {
	Download  string // path to the artifact download directory
	Preview   string // path to the preview and screenshot directory
	Thumbnail string // path to the file thumbnail directory
	Extra     string // path to the extra files directory
	URI       string // the URI of the file record
}

Dirs contains the directories used by the artifact pages.

func (Dirs) Artifact

func (dir Dirs) Artifact(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, readonly bool) error

Artifact is the handler for the of the file record.

func (Dirs) Editor added in v0.10.0

func (dir Dirs) Editor(art *models.File, data map[string]interface{}) map[string]interface{}

Editor returns the editor data for the file record of the artifact. These are the editable fields for the file record that are only visible to the editor after they have logged in.

type FileSearch

type FileSearch int

FileSearch is the type of search to perform.

const (
	Filenames    FileSearch = iota // Filenames is the search for filenames.
	Descriptions                   // Descriptions is the search for file descriptions and titles.
)

type Font

type Font int

Font is a relative path to a public facing font file.

const (
	VGA8             Font = iota // VGA8 is the path to the IBM VGA 8px font file.
	VGA8Woff                     // VGA8Woff is the path to the IBM VGA 8px legacy WOFF format font file.
	VGA8TT                       // VGA8TT is the path to the IBM VGA 8px legacy TrueType format font file.
	A1200                        // A1200 is the path to the Topaz Plus font file.
	A1200Woff                    // A1200Woff is the path to the Topaz Plus legacy WOFF format font file.
	A1200TT                      // A1200TT is the path to the Topaz Plus legacy TrueType format font file.
	CascadiaMono                 // CascadiaMono is the path to the Cascadia Mono font file.
	CascadiaMonoWoff             // CascadiaMonoWoff is the path to the Cascadia Mono WOFF format font file.
	CascadiaMonoTT               // CascadiaMonoTT is the path to the Cascadia Mono TrueType format font file.
)

type Fonts

type Fonts map[Font]string

Fonts are a map of the public facing font files.

func FontNames

func FontNames() Fonts

Names returns the absolute path of the public facing font files relative to the embed.FS root.

func FontRefs

func FontRefs() Fonts

FontRefs returns the relative path of the public facing font files. The strings are intended for href attributes in HTML link elements and the src attribute in HTML script elements.

type Form

type Form struct {
	Target   string `query:"target"`   // Target is the name of the file to extract from the zip archive.
	Value    string `query:"value"`    // Value is the value of the form input field to change.
	Platform string `query:"platform"` // Platform is the platform of the release.
	Tag      string `query:"tag"`      // Tag is the tag of the release.
	ID       int    `query:"id"`       // ID is the auto incrementing database id of the record.
	Year     int16  `query:"year"`     // Year is the year of the release.
	Month    int16  `query:"month"`    // Month is the month of the release.
	Day      int16  `query:"day"`      // Day is the day of the release.
	Online   bool   `query:"online"`   // Online is the record online and public toggle.
	Readme   bool   `query:"readme"`   // Readme hides the readme textfile from the artifact page.
}

Form is the form data for the editor.

type Group

type Group struct {
	Name       string     // Name is the name of the group.
	Link       string     // Link is a local URL to the group.
	Interviews Interviews // Interviews is a list of interviews with members of the group.
}

Group is a collection of interviews with members of a group.

type Groups

type Groups []Group

Groups is a collection of group interviews.

func Interviewees

func Interviewees() Groups

Interviewees returns a list of interviewees and their interviews. These are categorized by the group they were in at the time of the interview.

type Interviewee

type Interviewee struct {
	Scener  string // Scener is the name of the person interviewed.
	Content string // Content is a short description of the interview.
	Link    string // Link is the URL to the interview.
	Year    int    // Year is the year the interview was conducted.
	Month   int    // Month is the month the interview was conducted.
}

Interviewee is a person who was interviewed with a link to the interview.

type Interviews

type Interviews []Interviewee

Interviews is a collection of Interviewee.

type Links []struct {
	LinkTitle string // LinkTitle is the title of the Link.
	SubTitle  string // SublTitle is the title of the Link in a smaller font and in brackets.
	Link      string // Link is the URL to an article about the milestone or the product.
	Forward   string // Forward is an optional name of a group that is prefixed before the link to indicate a merger.
}

Links is a collection of Links.

type Milestone

type Milestone struct {
	Picture   Picture // Picture is an image or screenshot for a milestone.
	Prefix    string  // Prefix replacement for the month, such as 'Early', 'Mid' or 'Late'.
	Title     string  // Title of the milestone should be the accomplishment.
	Lead      string  // Lead paragraph, is optional and should usually be the product.
	Content   string  // Content is the main body of the milestone and can be HTML.
	Link      string  // Link is the URL to an article about the milestone or the product.
	LinkTitle string  // LinkTitle is the title of the Link.
	List      Links   // Links is a collection of links that are displayed as a HTML list.
	Year      int     // Year of the milestone.
	Month     int     // Month of the milestone.
	Day       int     // Day of the milestone.
	Highlight bool    // Highlight is a flag to outline the milestone.
}

Milestone is an accomplishment for a year and optional month.

type Milestones

type Milestones []Milestone

Milestones is a collection of Milestone.

func Collection

func Collection() Milestones

Collection of Milestones from the 1970s onwards.

func (Milestones) Len

func (m Milestones) Len() int

Len is the number of Milestones.

type Pagination

type Pagination struct {
	BaseURL   string // BaseURL is the base URL for the pagination links.
	CurrPage  int    // CurrPage is the current page number.
	SumPages  int    // SumPages is the total number of pages.
	PrevPage  int    // PrevPage is the previous page number.
	NextPage  int    // NextPage is the next page number.
	TwoBelow  int    // TwoBelow is the page number two below the current page.
	TwoAfter  int    // TwoAfter is the page number two after the current page.
	RangeStep int    // RangeStep is the number of pages to skip in the pagination range.
}

type Paths

type Paths map[Asset]string

Paths are a map of the public facing CSS, JS and WASM files.

func Hrefs

func Hrefs() Paths

Hrefs returns the relative path of the public facing CSS, JS and WASM files. The strings are intended for href attributes in HTML link elements and the src attribute in HTML script elements.

func Names

func Names() Paths

Names returns the absolute path of the public facing CSS, JS and WASM files relative to the embed.FS root.

type Picture

type Picture struct {
	Title       string // Title of the picture.
	Alt         string // Alt is the alternative text for the picture.
	Attribution string // attribution is the name of the author of the picture.
	License     string // License is the license of the picture.
	LicenseLink string // LicenseLink is the URL to the license of the picture.
	Webp        string // Webp is the filename of the WebP screenshot.
	Png         string // Png is the filename of the PNG screenshot.
	Jpg         string // Jpg is the filename of the JPG photo.
	Avif        string // Avif is the filename of the AVIF photo.
}

Picture is an image or screenshot for a milestone.

type SRI

type SRI struct {
	Bootstrap5      string // Bootstrap CSS verification hash.
	Bootstrap5JS    string // Bootstrap JS verification hash.
	BootstrapIcons  string // Bootstrap Icons SVG verification hash.
	EditArtifact    string // Artifact Editor JS verification hash.
	EditAssets      string // Editor Assets JS verification hash.
	EditForApproval string // Editor For Approval JS verification hash.
	Jsdos6JS        string // js-dos v6 verification hash.
	DosboxJS        string // DOSBox Emscripten verification hash.
	Layout          string // Layout CSS verification hash.
	LayoutJS        string // Layout JS verification hash.
	Pouet           string // Pouet JS verification hash.
	Readme          string // Readme JS verification hash.
	Uploader        string // Uploader JS verification hash.
	Htmx            string // htmx JS verification hash.
	HtmxRespTargets string // htmx response targets extension JS verification hash.
}

SRI are the Subresource Integrity hashes for the layout.

func (*SRI) Verify

func (s *SRI) Verify(fs embed.FS) error

Verify checks the integrity of the embedded CSS and JS files. These are required for Subresource Integrity (SRI) verification in modern browsers.

type Site

type Site struct {
	Title string // Title of the website.
	URL   string // URL of the website, including the HTTP or HTTPS protocol.
	Info  string // A short description of the website.
}

Site is a website.

type Sites

type Sites = []Site

Sites is a collection of websites.

type Templ

type Templ struct {
	Public      embed.FS      // Public facing files.
	View        embed.FS      // Views are Go templates.
	Subresource SRI           // SRI are the Subresource Integrity hashes for the layout.
	Version     string        // Version is the current version of the app.
	Brand       []byte        // Brand contains to the Defacto2 ASCII logo.
	Environment config.Config // Environment configurations from the host system environment.
	RecordCount int           // RecordCount is the total number of records in the database.
}

Templ is the configuration and status of the web application templates.

func (Templ) Elements added in v0.10.0

func (t Templ) Elements() template.FuncMap

Elements returns a map of functions that return HTML elements.

func (Templ) FuncClosures added in v0.10.0

func (t Templ) FuncClosures(db *sql.DB) template.FuncMap

FuncClosures returns a map of closures that return converted type or modified strings.

func (Templ) FuncMap added in v0.10.0

func (t Templ) FuncMap(db *sql.DB) template.FuncMap

FuncMap returns a map of all the template functions.

func (Templ) Funcs added in v0.10.0

func (t Templ) Funcs() template.FuncMap

Funcs are a collection of mapped functions that can be used in a template.

The "fmtURI" function is not performant for large lists, instead use "fmtRangeURI" in TemplateStrings().

func (*Templ) Templates

func (t *Templ) Templates(db *sql.DB) (map[string]*template.Template, error)

Templates returns a map of the templates used by the route.

Directories

Path Synopsis
internal
exts
Package exts provides a list of file extensions used by some functions in app.
Package exts provides a list of file extensions used by some functions in app.
mf
Package mf provides functions for the file model which is an artifact record.
Package mf provides functions for the file model which is an artifact record.
mfs
Package mfs provides functions that return model FileSlices, which are multiple artifact records.
Package mfs provides functions that return model FileSlices, which are multiple artifact records.
readme
Package readme provides functions for reading and suggesting readme files.
Package readme provides functions for reading and suggesting readme files.
remote
Package remote provides the remote download and update of artifact data from third-party sources such as API's.
Package remote provides the remote download and update of artifact data from third-party sources such as API's.
str
Package str provides functions for handling string or integer input data.
Package str provides functions for handling string or integer input data.

Jump to

Keyboard shortcuts

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