Documentation ¶
Overview ¶
Package app handles the routes and views for the Defacto2 website.
Index ¶
- Constants
- Variables
- func Artifact404(c echo.Context, id string) error
- func Artifacts(c echo.Context, uri, page string) error
- func Artifacts404(c echo.Context, uri string) error
- func Artist(c echo.Context) error
- func Attribute(write, code, art, music, name string) string
- func BBS(c echo.Context) error
- func BBSAZ(c echo.Context) error
- func BBSYear(c echo.Context) error
- func BadRequestErr(c echo.Context, uri string, err error) error
- func Brief(platform, section any) string
- func ByteFile(cnt, bytes any) template.HTML
- func ByteFileS(name string, count, bytes any) template.HTML
- func Categories(c echo.Context, logger *zap.SugaredLogger, stats bool) error
- func Checksum(c echo.Context, id string) error
- func Coder(c echo.Context) error
- func DatabaseErr(c echo.Context, uri string, err error) error
- func Day(d any) string
- func Deletions(c echo.Context, page string) error
- func DemozooGetLink(filename, filesize, demozoo, unid any) template.HTML
- func Describe(platform, section, year, month any) template.HTML
- func Download(c echo.Context, logger *zap.SugaredLogger, path string) error
- func DownloadB(i any) template.HTML
- func DownloadErr(c echo.Context, uri string, err error) error
- func FTP(c echo.Context) error
- func FileMissingErr(c echo.Context, uri string, err error) error
- func ForApproval(c echo.Context, page string) error
- func ForbiddenErr(c echo.Context, uri string, err error) error
- func GetDemozooLink(c echo.Context, downloadDir string) error
- func GlobTo(name string) string
- func GoogleCallback(c echo.Context, clientID string, maxAge int, accounts ...[48]byte) error
- func History(c echo.Context) error
- func Index(c echo.Context) error
- func Inline(c echo.Context, logger *zap.SugaredLogger, path string) error
- func InternalErr(c echo.Context, uri string, err error) error
- func Interview(c echo.Context) error
- func LastUpdated(t any) string
- func LinkDownload(id any, uri string) template.HTML
- func LinkHref(id any) (string, error)
- func LinkInterview(href string) template.HTML
- func LinkPage(id any) template.HTML
- func LinkPreview(id any, name, platform string) template.HTML
- func LinkPreviewHref(id any, name, platform string) string
- func LinkPreviewTip(name, platform string) string
- func LinkPreviews(youtube, demozoo, pouet, colors16, github, rels, sites string) []string
- func LinkRelFast(a, b any) template.HTML
- func LinkRelations(val string) template.HTML
- func LinkRelrs(performant bool, a, b any) template.HTML
- func LinkRels(a, b any) template.HTML
- func LinkRemote(href, name string) template.HTML
- func LinkSVG() template.HTML
- func LinkSamples(youtube, demozoo, pouet, colors16, github, rels, sites string) string
- func LinkScnr(name string) (string, error)
- func LinkSites(val string) template.HTML
- func LinkWiki(uri, name string) template.HTML
- func LogoText(s string) string
- func Magazine(c echo.Context) error
- func MagazineAZ(c echo.Context) error
- func MimeMagic(s string) string
- func Mod(i any, max int) bool
- func Mod3(i any) bool
- func Month(m any) string
- func Musician(c echo.Context) error
- func OptionsAnsiLove(zipContent string) template.HTML
- func OptionsPreview(zipContent string) template.HTML
- func OptionsReadme(zipContent string) template.HTML
- func Page404(c echo.Context, uri, page string) error
- func PlatformEdit(c echo.Context) error
- func PlatformTagInfo(c echo.Context) error
- func PostDesc(c echo.Context, input string) error
- func PostFilename(c echo.Context) error
- func PostIntro(c echo.Context) error
- func PostName(c echo.Context, mode FileSearch) error
- func PouetCache(c echo.Context, data string) error
- func Prefix(s string) string
- func ProdPouet(c echo.Context, id string) error
- func ProdZoo(c echo.Context, id string) error
- func Reader(c echo.Context) error
- func ReadmeDel(c echo.Context, downloadDir string) error
- func ReadmePost(c echo.Context, logger *zap.SugaredLogger, downloadDir string) error
- func ReadmeSuggest(filename, group string, content ...string) string
- func ReadmeToggle(c echo.Context) error
- func Readmes(content ...string) []string
- func RecordReleasers(a, b any) [2]string
- func RecordRels(a, b any) string
- func RecordToggle(c echo.Context, state bool) error
- func Records(ctx context.Context, db *sql.DB, uri string, page, limit int) (models.FileSlice, error)
- func RecordsSub(uri string) string
- func Releaser(c echo.Context) error
- func Releaser404(c echo.Context, id string) error
- func ReleaserAZ(c echo.Context) error
- func ReleaserEdit(c echo.Context) error
- func ReleaserYear(c echo.Context) error
- func Releasers(c echo.Context, uri string) error
- func SafeHTML(s string) template.HTML
- func SafeJS(s string) template.JS
- func Scener(c echo.Context) error
- func Scener404(c echo.Context, id string) error
- func Sceners(c echo.Context, uri string) error
- func SearchDesc(c echo.Context) error
- func SearchFile(c echo.Context) error
- func SearchReleaser(c echo.Context) error
- func SignOut(c echo.Context) error
- func SignedOut(c echo.Context) error
- func Signin(c echo.Context, clientID, nonce string) error
- func SortContent(content ...string) []string
- func StatusErr(c echo.Context, code int, uri string) error
- func SubTitle(section null.String, s any) template.HTML
- func TagBrief(tag string) string
- func TagEdit(c echo.Context) error
- func TagInfo(c echo.Context) error
- func TagOption(selected, value any) template.HTML
- func TagWithOS(os, tag string) string
- func Thanks(c echo.Context) error
- func TheScene(c echo.Context) error
- func TitleEdit(c echo.Context) error
- func TrimSiteSuffix(s string) string
- func TrimSpace(a any) string
- func Unwanted(c echo.Context, page string) error
- func Updated(t any, s string) string
- func Valid(path string) bool
- func VotePouet(c echo.Context, logger *zap.SugaredLogger, id string) error
- func Website(c echo.Context, open string) error
- func WebsiteIcon(url string) template.HTML
- func Writer(c echo.Context) error
- func YMDEdit(c echo.Context) error
- type Accordion
- type Asset
- type Cache
- type DemozooLink
- type Dirs
- type FileSearch
- type Font
- type Fonts
- type Form
- type Group
- type Groups
- type Interviewee
- type Interviews
- type Links
- type Milestone
- type Milestones
- type Pagination
- type Paths
- type Picture
- type SRI
- type Site
- type Sites
- type Stats
- type Templ
- func (web Templ) ImageSample(unid string) template.HTML
- func (web Templ) Screenshot(unid, desc string) template.HTML
- func (web Templ) TemplateClosures() template.FuncMap
- func (web Templ) TemplateElms() template.FuncMap
- func (web Templ) TemplateFuncMap() template.FuncMap
- func (web Templ) TemplateFuncs() template.FuncMap
- func (web *Templ) Templates() (map[string]*template.Template, error)
- func (web Templ) Thumb(unid, desc string, bottom bool) template.HTML
- func (web Templ) ThumbSample(unid string) template.HTML
- type URI
Constants ¶
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 ¶
var ( ErrCategory = errors.New("unknown artifacts categories") 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") ErrLinkID = errors.New("the id value cannot be a negative number") ErrLinkType = errors.New("the id value is an invalid type") ErrMisMatch = errors.New("token mismatch") 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") )
var Caching = Cache{} //nolint:gochecknoglobals
Caching are values that are used throughout the app or layouts.
var ErrExist = errors.New("file already exists")
Functions ¶
func Artifact404 ¶
Artifact404 renders the error page for the artifact links.
func Artifacts ¶
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 ¶
Artifacts404 renders the files error page for the Artifacts menu and categories. It provides different error messages to the standard error page.
func BBS ¶
func BBS(c echo.Context) error
BBS is the handler for the BBS page ordered by the most files.
func BBSAZ ¶
func BBSAZ(c echo.Context) error
BBSAZ is the handler for the BBS page ordered alphabetically.
func BBSYear ¶
func BBSYear(c echo.Context) error
BBSYear is the handler for the BBS page ordered by the year.
func BadRequestErr ¶
BadRequestErr is the handler for handling Bad Request Errors, caused by invalid user input or a malformed client requests.
func Brief ¶
Brief returns a human readable brief description of a release. Based on the platform, section, year and month.
func ByteFileS ¶
ByteFileS returns a human readable string of the byte count with a named description.
func Categories ¶
func Categories(c echo.Context, logger *zap.SugaredLogger, stats bool) error
Categories is the handler for the artifact categories page.
func DatabaseErr ¶
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 DemozooGetLink ¶
DemozooGetLink returns a HTML link to the Demozoo download links.
func Describe ¶
Describe returns a human readable description of a release. Based on the platform, section, year and month.
func Download ¶
func Download(c echo.Context, logger *zap.SugaredLogger, path string) error
Download is the handler for the Download file record page.
func DownloadErr ¶
DownloadErr is the handler for missing download files and database ID errors.
func FileMissingErr ¶
FileMissingErr is the handler for missing download files and database ID errors.
func ForApproval ¶
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 ¶
ForbiddenErr is the handler for handling Forbidden Errors, caused by clients requesting pages that they do not have permission to access.
func GetDemozooLink ¶
GetDemozooLink 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 GoogleCallback ¶
GoogleCallback is the handler for the Google OAuth2 callback page to verify the Google ID token.
func Inline ¶
func Inline(c echo.Context, logger *zap.SugaredLogger, path string) error
Inline is the handler for the Download file record page.
func InternalErr ¶
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 ¶
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 ¶
LinkDownload creates a URL to link to the file download of the record.
func LinkInterview ¶
LinkInterview returns a SVG arrow icon to indicate an interview link hosted on an external website.
func LinkPreview ¶
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 LinkPreviewHref ¶
LinkPreviewHref creates a URL path to link to the file record in tab, to use as a preview.
A list of supported file types: https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types
func LinkPreviewTip ¶
LinkPreviewTip returns a tooltip to describe the preview link.
func LinkPreviews ¶
LinkPreviews returns a slice of HTML formatted links for the artifact editor.
func LinkRelFast ¶
LinkRelFast 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 LinkRelations ¶
LinkRelations returns a collection of HTML anchor links that point to artifacts.
The val string is a list of artifact descriptions and their URL ID separated by a semicolon ";". Multiple artifact entries are separated by a pipe "|".
For example, "NFO;9f1c2|Intro;a92116e".
func LinkRelrs ¶
LinkRelrs 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 LinkRemote ¶
LinkRemote returns a HTML link with an embedded SVG icon to an external website.
func LinkSamples ¶
LinkSample returns a collection of HTML formatted links for the artifact editor.
func LinkSites ¶
LinkSites returns a collection of HTML anchor links that point to websites.
The val string is a list of website descriptions and their URL ID separated by a semicolon ";". Multiple website entries are separated by a pipe "|".
For example, "Site;example.com|Documentation;example.com/doc".
func LinkWiki ¶
LinkWiki returns a HTML link with an embedded SVG icon to the Defacto2 wiki on GitHub.
func MagazineAZ ¶
func MagazineAZ(c echo.Context) error
MagazineAZ is the handler for the Magazine page ordered chronologically.
func MimeMagic ¶
MimeMagic overrides some of the default linux file (magic) results. This is intended to be used to provide a more human readable description.
func Musician ¶
func Musician(c echo.Context) error
Musician is the handler for the Musiciansceners page.
func OptionsAnsiLove ¶
OptionsAnsiLove returns a list of possible text or ANSI files in the archive content. In general, all file extensions are valid except for well known archives and executables. Due to the CP/M and DOS platform, 8.3 filename limitations, the file extension is not always reliable.
func OptionsPreview ¶
OptionsPreview returns a list of preview images or textfiles in the archive content.
func OptionsReadme ¶
OptionsReadme returns a list of readme and known textfiles in the archive content.
func Page404 ¶
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) 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 PostFilename ¶
func PostFilename(c echo.Context) error
PostFilename is the handler for the Search for filenames form post page.
func PostIntro ¶
func PostIntro(c echo.Context) error
PostIntro handles the POST request for the intro upload form.
func PostName ¶
func PostName(c echo.Context, mode FileSearch) error
PostName is the handler for the Search for filenames form post page.
func PouetCache ¶
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 Reader ¶
func Reader(c echo.Context) error
Interview is the handler for the People Interviews page.
func ReadmePost ¶
func ReadmePost(c echo.Context, logger *zap.SugaredLogger, downloadDir string) error
ReadmePost handles the post submission for the Readme in archive.
func ReadmeSuggest ¶
ReadmeSuggest returns a suggested readme file name for the record. It prioritizes the filename and group name with a priority extension, such as ".nfo", ".txt", etc. If no priority extension is found, it will return the first textfile in the content list.
The filename should be the name of the file archive artifact. The group should be a name or common abbreviation of the group that released the artifact. The content should be a list of files contained in the artifact.
This is a port of the CFML function, variables.findTextfile found in File.cfc.
func ReadmeToggle ¶
func ReadmeToggle(c echo.Context) error
ReadmeToggle handles the post submission for the Hide readme from view toggle.
func RecordReleasers ¶
func RecordRels ¶
RecordRels returns the groups associated with a release and joins them with a plus sign.
func RecordToggle ¶
RecordToggle handles the post submission for the File artifact is online and public toggle.
func Records ¶
func Records(ctx context.Context, db *sql.DB, uri string, page, limit int) (models.FileSlice, error)
Records returns the records for the artifacts category URI. Note that the record statistics and counts get cached.
func RecordsSub ¶
RecordsSub returns the records for the artifacts category URI.
func Releaser ¶
func Releaser(c echo.Context) error
Releaser is the handler for the releaser page ordered by the most files.
func Releaser404 ¶
Releaser404 renders the files error page for the Groups menu and invalid releasers.
func ReleaserAZ ¶
func ReleaserAZ(c echo.Context) error
ReleaserAZ is the handler for the releaser page ordered alphabetically.
func ReleaserEdit ¶
func ReleaserEdit(c echo.Context) error
ReleaserEdit handles the post submission for the Platform selection field.
func ReleaserYear ¶
func ReleaserYear(c echo.Context) error
ReleaserYear is the handler for the releaser page ordered by year of the first release.
func SafeHTML ¶
SafeHTML returns a string as a template.HTML type. This is intended to be used to prevent HTML escaping.
func SafeJS ¶
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) error
Scener is the handler for the page to list all the sceners.
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 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 SortContent ¶
SortContent sorts the content list by the number of slashes in each string. It prioritizes strings with fewer slashes (i.e., closer to the root). If the number of slashes is the same, it sorts alphabetically.
func StatusErr ¶
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 TagEdit ¶
func TagEdit(c echo.Context) 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 ¶
TagOption returns a HTML option tag with the selected attribute if the selected matches the value.
func TitleEdit ¶
func TitleEdit(c echo.Context) error
TitleEdit handles the post submission for the Delete readme asset button.
func TrimSiteSuffix ¶
TrimSiteSuffix returns a string with the last 4 characters removed if they are " FTP" or " BBS".
func Updated ¶
Updated 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 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 ¶
Website is the handler for the websites page. Open is the ID of the accordion section to open.
func WebsiteIcon ¶
websiteIcon returns a Bootstrap icon name for the given website url.
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.
type Asset ¶
type Asset int
Asset is a relative path to a public facing CSS, JS or WASM file.
const ( ArtifactEditor Asset = iota // ArtifactEditor is the path to the minified Artifact Editor JS file. Bootstrap5 // 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. DosboxJS // DosboxJS is the js-dos v6 default variant compiled with emscripten. DosboxWasm // DosboxWasm is the js-dos v6 WASM binary file. EditAssets // EditAssets is the path to the minified Editor assets JS file. EditArchive // EditArchive is the path to the minified Editor archive JS file. EditForApproval // EditForApproval is the path to the minified Editor for-approval JS file. FA5Pro // FA5Pro is the path to the minified Font Awesome Pro v5 JS file. Htmx // Htmx is the path to the minified htmx AJAX JS 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.
type DemozooLink ¶
type DemozooLink struct { UUID string `json:"uuid"` // UUID is the file production UUID. Filename string `json:"filename"` // Filename is the file name of the download. FileType string `json:"file_type"` // Type is the file type. FileHash string `json:"file_hash"` // Hash is the file integrity hash. Content string `json:"content"` // Content is the file archive content. Readme string `json:"readme"` // Readme is the file readme, text or NFO file. LinkURL string `json:"link_url"` // LinkURL is the download file link used to fetch the file. LinkClass string `json:"link_class"` // LinkClass is the download link class provided by Demozoo. Error string `json:"error"` // Error is the error message if the download or record update failed. Github string `json:"github_repo"` YouTube string `json:"youtube_video"` ID int `json:"id"` // ID is the Demozoo production ID. FileSize int `json:"file_size"` // Size is the file size in bytes. Pouet int `json:"pouet_prod"` Success bool `json:"success"` // Success is the success status of the download and record update. }
DemozooLink is the response from the task of GetDemozooFile.
func (*DemozooLink) ArchiveContent ¶
func (got *DemozooLink) ArchiveContent(c echo.Context, path string) error
func (*DemozooLink) Download ¶
func (got *DemozooLink) Download(c echo.Context, downloadDir string) error
func (*DemozooLink) Stat ¶
func (got *DemozooLink) Stat(c echo.Context, downloadDir string) error
func (DemozooLink) Update ¶
func (got DemozooLink) Update(c echo.Context) error
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 URI string // the URI of the file record }
Dirs contains the directories used by the artifact pages.
func (Dirs) AnsiLovePost ¶
func (dir Dirs) AnsiLovePost(c echo.Context, logger *zap.SugaredLogger) error
AnsiLovePost handles the post submission for the Preview from text in archive.
func (Dirs) Artifact ¶
func (dir Dirs) Artifact(c echo.Context, logger *zap.SugaredLogger, readonly bool) error
Artifact is the handler for the of the file record.
func (Dirs) PreviewDel ¶
PreviewDel handles the post submission for the Delete complementary images button.
func (Dirs) PreviewPost ¶
func (dir Dirs) PreviewPost(c echo.Context, logger *zap.SugaredLogger) error
PreviewPost handles the post submission for the Preview from image in archive.
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. OpenSans // OpenSans is the path to the Open Sans font file. OpenSansWoff // OpenSansWoff is the path to the Open Sans WOFF format font file. OpenSansTT // OpenSansTT is the path to the Open Sans TrueType format font file. )
type Fonts ¶
Fonts are a map of the public facing font files.
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 Links ¶
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 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 ¶
Paths are a map of the public facing CSS, JS and WASM files.
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 { ArtifactEditor string // Artifact Editor JS verification hash. Bootstrap5 string // Bootstrap CSS verification hash. Bootstrap5JS string // Bootstrap JS verification hash. EditAssets string // Editor Assets JS verification hash. EditArchive string // Editor Archive JS verification hash. EditForApproval string // Editor For Approval JS verification hash. FA5Pro string // Font Awesome Pro v5 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. }
SRI are the Subresource Integrity hashes for the layout.
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 Stats ¶
type Stats struct { IntroW model.IntroWindows Record model.Artifacts Ansi model.Ansi AnsiBBS model.AnsiBBS BBS model.BBS BBSText model.BBSText BBStro model.BBStro Demoscene model.Demoscene MsDos model.MsDos Intro model.Intro IntroD model.IntroMsDos Installer model.Installer Java model.Java Linux model.Linux Magazine model.Magazine Macos model.Macos Nfo model.Nfo NfoTool model.NfoTool Proof model.Proof Script model.Script Text model.Text Windows model.Windows }
Stats are the database statistics for the artifacts categories.
func Statistics ¶
func Statistics() Stats
Statistics returns the empty database statistics for the artifacts categories.
type Templ ¶
type Templ struct { Brand []byte // Brand contains to the Defacto2 ASCII logo. Environment config.Config // Environment configurations from the host system environment. Public embed.FS // Public facing files. View embed.FS // Views are Go templates. RecordCount int // RecordCount is the total number of records in the database. Subresource SRI // SRI are the Subresource Integrity hashes for the layout. Version string // Version is the current version of the app. }
Templ is the configuration and status of the web application templates.
func (Templ) ImageSample ¶
ImageSample returns a HTML image tag for the given unid.
func (Templ) Screenshot ¶
Screenshot returns a picture elment with screenshots for the given unid. The unid is the filename of the screenshot image without an extension. The desc is the description of the image used for the alt attribute in the img tag. Supported formats are webp, png, jpg and avif.
func (Templ) TemplateClosures ¶
TemplateClosures returns a map of closures that return converted type or modified strings.
func (Templ) TemplateElms ¶
TemplateElms returns a map of functions that return HTML elements.
func (Templ) TemplateFuncMap ¶
TemplateFuncMap returns a map of all the template functions.
func (Templ) TemplateFuncs ¶
TemplateFuncs 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().