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, db *sql.DB, uri, page string) error
- func Artifacts404(c echo.Context, uri string) error
- func Artist(c echo.Context, db *sql.DB) error
- func Attribute(write, code, art, music, name string) string
- func BBS(c echo.Context, db *sql.DB) error
- func BBSAZ(c echo.Context, db *sql.DB) error
- func BBSYear(c echo.Context, db *sql.DB) 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, db *sql.DB, logger *zap.SugaredLogger, stats bool) error
- func Checksum(c echo.Context, db *sql.DB, id string) error
- func Coder(c echo.Context, db *sql.DB) error
- func Configurations(cx echo.Context, db *sql.DB, conf config.Config) error
- func DatabaseErr(c echo.Context, uri string, err error) error
- func Day(d any) string
- func Deletions(c echo.Context, db *sql.DB, page string) error
- func Describe(platform, section, year, month any) template.HTML
- func Download(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, path string) error
- func DownloadErr(c echo.Context, uri string, err error) error
- func DownloadJsDos(c echo.Context, db *sql.DB, extraPath, downloadPath string) error
- func EmptyTester(c echo.Context) map[string]interface{}
- func FTP(c echo.Context, db *sql.DB) error
- func FileMissingErr(c echo.Context, uri string, err error) error
- func ForApproval(c echo.Context, db *sql.DB, page string) error
- func ForbiddenErr(c echo.Context, uri string, err error) error
- func GetDemozoo(c echo.Context, db *sql.DB, demozooID int, defacto2UNID, downloadDir string) error
- func GetDemozooParam(c echo.Context, db *sql.DB, downloadDir string) error
- func GetPouet(c echo.Context, db *sql.DB, pouetID int, defacto2UNID, 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, db *sql.DB, 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, securityAlert 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 LinkPreviews(youtube, demozoo, pouet, colors16, github, rels, sites string) []string
- func LinkReleasers(performant, magazine bool, a, b any) template.HTML
- func LinkRels(magazine bool, a, b any) template.HTML
- func LinkRelsPerformant(a, b any) template.HTML
- func LinkRemote(href, name string) template.HTML
- func LinkRunApp(id any) template.HTML
- func LinkScnr(name string) (string, error)
- func LinkWiki(uri, name string) template.HTML
- func LogoText(s string) string
- func Magazine(c echo.Context, db *sql.DB) error
- func MagazineAZ(c echo.Context, db *sql.DB) error
- func Month(m any) string
- func Musician(c echo.Context, db *sql.DB) error
- func New(c echo.Context) error
- func Page404(c echo.Context, uri, page string) error
- func PlatformEdit(c echo.Context, db *sql.DB) error
- func PlatformTagInfo(c echo.Context) error
- func PostDesc(c echo.Context, db *sql.DB, input string) error
- func PostFilename(c echo.Context, db *sql.DB) error
- func PostName(c echo.Context, db *sql.DB, 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 RecordRels(a, b any) string
- func Releaser(c echo.Context, db *sql.DB) error
- func Releaser404(c echo.Context, invalidID string) error
- func ReleaserAZ(c echo.Context, db *sql.DB) error
- func ReleaserYear(c echo.Context, db *sql.DB) error
- func Releasers(c echo.Context, db *sql.DB, logger *zap.SugaredLogger, uri string) error
- func SafeHTML(s string) template.HTML
- func SafeJS(s string) template.JS
- func Scener(c echo.Context, db *sql.DB) error
- func Scener404(c echo.Context, id string) error
- func Sceners(c echo.Context, db *sql.DB, uri string) error
- func SearchDesc(c echo.Context) error
- func SearchFile(c echo.Context) error
- func SearchID(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 StatusErr(c echo.Context, code int, uri string) error
- func SubTitle(section null.String, title any) template.HTML
- func TagBrief(tag string) string
- func TagEdit(c echo.Context, db *sql.DB) error
- func TagInfo(c echo.Context) error
- func TagOption(s, value any) template.HTML
- func TagWithOS(os, tag string) string
- func Thanks(c echo.Context) error
- func TheScene(c echo.Context) error
- func TrimSiteSuffix(s string) string
- func TrimSpace(a any) string
- func URLEncode(a any) string
- func Unwanted(c echo.Context, db *sql.DB, page string) error
- 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, db *sql.DB) error
- func YMDEdit(c echo.Context, db *sql.DB) error
- type Accordion
- type Asset
- type Cache
- 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 Templ
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 the word "TO" is the center of the text. Welcome = `: ` + `·· WELCOME TO DEFACTO2 ··` + ` ·` )
Variables ¶
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") )
var Caching = Cache{} //nolint:gochecknoglobals
Caching are values that are used throughout the app or layouts.
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 Attribute ¶
Attribute returns a formatted string of the roles for the given scener name. For example if the name is "ben", write is "ben" and code is "bianca,ben" then the following would return:
"Writer and programmer attributions"
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 the combined platform and section. For example providing "windows" and "intro" would return:
"a Windows intro"
func ByteFileS ¶
ByteFileS returns a human readable string of the byte count with a named description.
func Categories ¶
Categories is the handler for the artifact categories page.
func Configurations ¶ added in v0.8.0
Configurations is the handler for the Configuration 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 Describe ¶
Describe returns a human readable description of a release. Based on the platform, section, year and month.
For example providing "windows", "intro", 1990 and 1 would return:
"a Windows intro published in Jan, 1990."
func DownloadErr ¶
DownloadErr is the handler for missing download files and database ID errors.
func DownloadJsDos ¶ added in v0.9.0
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 EmptyTester ¶ added in v0.14.0
func EmptyTester(c echo.Context) map[string]interface{}
EmptyTester is a map of defaults for the app template tests.
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 GetDemozoo ¶ added in v0.10.0
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
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
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 GoogleCallback ¶
GoogleCallback is the handler for the Google OAuth2 callback page to verify the Google ID token.
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. The id needs to be a valid integer. If the security alert is not empty, then a strikethrough warning is returned. For example providing 1 and an empty security alert would return:
<a class="card-link" href="/d/9b1c6">Download</a>
func LinkHref ¶
LinkHref creates a URL path to link to the file page for the record. The id needs to be a valid integer.
func LinkInterview ¶
LinkInterview returns a SVG arrow icon to indicate an interview link hosted on an external website. If the href is not a valid URL then an empty string is returned.
func LinkPage ¶
LinkPage creates a URL anchor element to link to the file page for the record. The id needs to be a valid integer. For example providing 1 would return:
<a class="card-link" href="/f/9b1c6">Artifact</a>
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 the platform and filename extension. The id needs to be a valid integer, the name is the filename and the platform is the platform of the release. Any invalid values will return an empty string.
For example providing 1, "readme.txt" and "text" would return:
<a class="card-link" href="/v/9b1c6">Preview</a>
But providing 1, "file.zip" and "text" would return an empty string.
func LinkPreviews ¶
LinkPreviews returns a slice of HTML formatted links for the artifact editor.
func LinkReleasers ¶ added in v0.10.0
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 LinkRelsPerformant ¶ added in v0.10.0
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 ¶
LinkRemote returns a HTML link with an embedded SVG icon to an external website. There are no checks for the href or name values other than they are not empty.
func LinkRunApp ¶ added in v0.10.0
LinkRunApp creates a URL anchor element to link to the artifact page to launch the js-dos emulator. The id needs to be a valid integer. For example providing 1 would return:
<a class="card-link" href="/f/9b1c6#runapp">Run app</a>
func LinkScnr ¶
LinkScnr returns a link to the named scener page. If the name is empty then an empty string is returned with no error. An example of providing "some scener" would return:
"/p/some-scener", nil
func LinkWiki ¶
LinkWiki returns a HTML link with an embedded SVG icon to the Defacto2 wiki on GitHub. The uri must be a valid URI path to a wiki page and the name must not be empty.
func LogoText ¶
LogoText returns a string of text padded with spaces to center it in the logo. If the string is empty then the default logo text is returned. The text is converted to uppercase and truncated if it is longer than the limit. An example of providing "abc" would return:
" : ·· ABC ·· ·"
func MagazineAZ ¶
MagazineAZ is the handler for the Magazine page ordered chronologically.
func Month ¶
Month returns a short string of the month. If the month number is not a valid then an empty string is returned. For example providing 1 would return:
"Jan"
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 ¶
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 ¶
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 ¶
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 ¶
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 RecordRels ¶
RecordRels returns the groups associated with a release and joins them using a plus sign. For example providing "Group 1" and "Group 2" would return:
"Group 1 + Group 2"
func Releaser404 ¶
Releaser404 renders the files error page for the Groups menu and invalid releasers.
func ReleaserAZ ¶
ReleaserAZ is the handler for the releaser page ordered alphabetically.
func ReleaserYear ¶
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 to prevent HTML escaping in the template.
func SafeJS ¶
SafeJS returns a string as a template.JS type to prevent JavaScript escaping in the template.
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 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 SubTitle ¶
SubTitle returns a secondary element with the record title. If the section is "magazine" and the title is a number then it is prefixed with "Issue". For example providing "magazine" and 1 would return:
`<h3 class="card-subtitle mb-2 text-body-secondary fs-6">Issue 1</h3>`
Otherwise providing "text" and "Some Cool Stuff" would return:
`<h3 class="card-subtitle mb-2 text-body-secondary fs-6">Some Cool Stuff</h3>`
func TagBrief ¶
TagBrief returns a small summary of the tag. For example providing "interview" would return:
"Conversations with the personalities of The Scene"
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 a "selected" attribute if the s matches the value. For example providing "interview" and "interview" would return:
`<option value="interview" selected>`
func TagWithOS ¶
TagWithOS returns a small summary of the tag with the operating system. If either the os or tags are unknown then a message is returned. For example providing "dos" and "magazine" would return:
"a Dos magazine"
func TrimSiteSuffix ¶
TrimSiteSuffix returns a string with the last 4 characters removed if they are " FTP" or " BBS". For example providing "My super FTP" would return:
"My super"
func TrimSpace ¶
TrimSpace returns a string with all leading and trailing whitespace removed. If the value is a null.String then the value is checked for validity.
func URLEncode ¶ added in v0.10.0
URLEncode returns a URL encoded string from the given string. This can be used to pass filenames as URL parameters.
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. For example if the url contains "archive.org" then the Bootstrap icon "bank2" svg icon is returned.
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 ( 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, but do not change frequently enough to warrant a database query on every page load.
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.
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 ¶
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 { 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.
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 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
Elements returns a map of functions that return HTML elements.
func (Templ) FuncClosures ¶ added in v0.10.0
FuncClosures returns a map of closures that return converted type or modified strings.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
internal
|
|
extensions
Package extensions provides a list of file extensions used by some functions in app.
|
Package extensions provides a list of file extensions used by some functions in app. |
filerecord
Package filerecord provides functions for the file model which is an artifact record.
|
Package filerecord provides functions for the file model which is an artifact record. |
fileslice
Package fileslice provides functions that return model FileSlices, which are multiple artifact records.
|
Package fileslice provides functions that return model FileSlices, which are multiple artifact records. |
simple
Package simple provides functions for handling string or integer input data.
|
Package simple provides functions for handling string or integer input data. |
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. |