toriiMask
untyped stringtoriiMask is the Samouraï Coop mark, redrawn as vectors: a torii gate cut out of a full circle, in a 480x480 box. Everything painted through the mask takes the shape of the mark.
Value
"<mask id=\"torii\"><circle cx=\"238\" cy=\"240\" r=\"240\" fill=\"#fff\"/><g fill=\"#000\"><path d=\"M-10 90 Q238 164 490 90 L490 140 Q238 190 -10 140 Z\"/><path d=\"M102 140 L165 140 L162 206 L96 206 Z\"/><path d=\"M302 140 L364 140 L370 206 L304 206 Z\"/><rect x=\"-10\" y=\""...
heroText
typeValue
home.heroText
heroSVG
func(h home.heroText) stringheroSVG draws the page banner: the mark set in a red sun on the right, the text stack on the left.
- OID
- 0b48b9…12c2:3
heroSVG details
heroImage
func() string- OID
- 0b48b9…12c2:5
heroImage details
gh
untyped stringdefaultCrew seeds the roster at deploy time: everyone who contributed to gno with samcrew over the last four years, team by team, in the order the cards appear. Former members are in the alumni team, drawn in grey. Cards link to a public page until LinkProfile ties a member to their gno.land identity.
Value
"https://github.com/"
aboutCrew
untyped stringdefaultCrew seeds the roster at deploy time: everyone who contributed to gno with samcrew over the last four years, team by team, in the order the cards appear. Former members are in the alumni team, drawn in grey. Cards link to a public page until LinkProfile ties a member to their gno.land identity.
Value
"https://www.samourai.world/about/"
defaultCrew
func() []struct{...}- OID
- 0b48b9…12c2:6
defaultCrew details
defaultProfiles
func() []struct{...}defaultProfiles are the members already on chain.
- OID
- 0b48b9…12c2:8
defaultProfiles details
memba
untyped stringValue
"https://memba.samourai.app/mainnet"
hero
home.heroText- OID
- 0b48b9…12c2:10
hero details
defaultSlots
func() []struct{...}defaultSlots and defaultGalleries seed the page at deploy time. They are functions, not package variables, so the seed text is stored once (in the slot and gallery trees) instead of twice. After deploy the chain is the source of truth: edit with Set and SetGallery, not by redeploying.
- OID
- 0b48b9…12c2:11
defaultSlots details
yt
untyped stringValue
"https://www.youtube.com/watch?v="
ghsw
untyped stringValue
"https://github.com/samouraiworld/"
defaultGalleries
func() []struct{...}- OID
- 0b48b9…12c2:12
defaultGalleries details
maxCrew
untyped bigint// each card costs render gas; keeps Render("") far below the query ceiling
Value
(96 <untyped> bigint)
maxIDLen
untyped bigintValue
(32 <untyped> bigint)
maxHandleLen
untyped bigintValue
(32 <untyped> bigint)
maxRoleLen
untyped bigintValue
(40 <untyped> bigint)
maxLineLen
untyped bigintValue
(160 <untyped> bigint)
member
typeValue
home.member
crew
*v0.Tree// id -> \*member
- OID
- 0b48b9…12c2:14
crew details
byAddr
*v0.Tree// address string -> id, for SetLine
- OID
- 0b48b9…12c2:17
byAddr details
nextOrder
intValue
16
oneLine
func(field string, s string, max int)oneLine rejects text that would break out of its markdown or SVG slot.
- OID
- 0b48b9…12c2:20
oneLine details
validURL
func(u string) bool- OID
- 0b48b9…12c2:22
validURL details
mdEscape
func(s string) stringmdEscape turns member-written text into plain text: every character that markdown could read as a link, image, emphasis, code or HTML is escaped.
- OID
- 0b48b9…12c2:23
mdEscape details
addMember
func(id string, handle string, role string, team string, url string)- OID
- 0b48b9…12c2:24
addMember details
setIdentity
func(m *home.member, handle string, role string, team string, url string)- OID
- 0b48b9…12c2:25
setIdentity details
mustMember
func(id string) *home.member- OID
- 0b48b9…12c2:26
mustMember details
AddMember
func(id string, handle string, role string, team string, url string)AddMember puts someone on the roster, in a team, linked to a public page.
- OID
- 0b48b9…12c2:27
AddMember details
UpdateMember
func(id string, handle string, role string, team string, url string)UpdateMember changes a member's handle, role, team and public link.
- OID
- 0b48b9…12c2:28
UpdateMember details
LinkProfile
func(id string, addr .uverse.address, home string)LinkProfile ties a member to their gno.land identity. home is their home realm path ("/r/..."), or "" to link to /u/\<addr>. From then on the member can write their own line with SetLine.
- OID
- 0b48b9…12c2:29
LinkProfile details
ClearLine
func(id string)ClearLine removes a member's line, for moderation.
- OID
- 0b48b9…12c2:30
ClearLine details
RemoveMember
func(id string)RemoveMember takes someone off the roster.
- OID
- 0b48b9…12c2:31
RemoveMember details
SetLine
func(line string)SetLine lets a crew member with a linked profile write their own line. It renders as plain text: markdown in it is escaped.
- OID
- 0b48b9…12c2:32
SetLine details
IsMember
func(addr .uverse.address) boolIsMember reports whether addr is linked to a crew profile.
- OID
- 0b48b9…12c2:33
IsMember details
CrewSize
func() intCrewSize returns the number of members on the roster.
- OID
- 0b48b9…12c2:34
CrewSize details
teamTitles
map[string]stringteamTitles names the known teams; any other team shows its raw name.
- OID
- 0b48b9…12c2:36
teamTitles details
teamKinds
map[string]stringteamKinds picks the poster style of a team's cards.
- OID
- 0b48b9…12c2:38
teamKinds details
crewTable
func() stringcrewTable shows the roster team by team, teams in the order their first member joined, members in the order they joined: one poster each, then the lines they wrote themselves.
- OID
- 0b48b9…12c2:39
crewTable details
galleryPrefix
untyped stringValue
"gallery."
cardsPerRow
untyped bigintValue
(3 <untyped> bigint)
maxCards
untyped bigintValue
(48 <untyped> bigint)
maxTitleLen
untyped bigintValue
(80 <untyped> bigint)
maxMetaLen
untyped bigintValue
(80 <untyped> bigint)
maxDescLen
untyped bigintValue
(200 <untyped> bigint)
card
typeValue
home.card
galleries
*v0.Tree// name -> \[]card
- OID
- 0b48b9…12c2:41
galleries details
style
typeValue
home.style
styles
map[string]home.style- OID
- 0b48b9…12c2:44
styles details
styleOf
func(kind string) home.style- OID
- 0b48b9…12c2:60
styleOf details
SetGallery
func(name string, spec string)SetGallery replaces a whole gallery from its line format.
- OID
- 0b48b9…12c2:62
SetGallery details
DeleteGallery
func(name string)DeleteGallery removes a gallery.
- OID
- 0b48b9…12c2:63
DeleteGallery details
parseGallery
func(spec string) []home.card- OID
- 0b48b9…12c2:64
parseGallery details
renderGallery
func(name string) (string, bool)renderGallery lays cards out cardsPerRow to a row, each one a poster that links to its target.
- OID
- 0b48b9…12c2:65
renderGallery details
linkTitle
func(desc string) stringlinkTitle renders an optional markdown link title, which gnoweb emits as the link's hover text.
- OID
- 0b48b9…12c2:66
linkTitle details
mdText
func(s string) stringmdText keeps a title from closing the markdown image alt text early.
- OID
- 0b48b9…12c2:67
mdText details
xmlText
func(s string) string- OID
- 0b48b9…12c2:68
xmlText details
wrap
func(s string, width int) []stringwrap splits s into at most two lines of about width runes; the second line is cut with an ellipsis when the title is longer.
- OID
- 0b48b9…12c2:69
wrap details
runeLen
func(s string) int- OID
- 0b48b9…12c2:70
runeLen details
clip
func(s string, n int) stringclip cuts s to at most n runes, ending with an ellipsis when it had to cut.
- OID
- 0b48b9…12c2:71
clip details
posterURI
func(c home.card) string- OID
- 0b48b9…12c2:72
posterURI details
poster
func(c home.card) stringposter draws a 320x180 card: a dark gradient, a rising sun in the kind's accent (a play button for videos), a large kanji watermark, the kind label, the title on up to two lines and a meta line.
- OID
- 0b48b9…12c2:73
poster details
itoa
func(n int) string- OID
- 0b48b9…12c2:74
itoa details
layoutSlug
untyped stringValue
"layout"
maxSlugLen
untyped bigintValue
(64 <untyped> bigint)
slot
typeValue
home.slot
admin
.uverse.address// samcrew namespace, 2-of-3
Value
<gnolang.StringValue>
pendingAdmin
.uverse.addressValue
<zero>
slots
*v0.Tree// slug -> \*slot
- OID
- 0b48b9…12c2:78
slots details
rev
intValue
17
reservedSlugs
[]string- OID
- 0b48b9…12c2:82
reservedSlugs details
init.72
func()- OID
- 0b48b9…12c2:83
init.72 details
assertAdmin
func()- OID
- 0b48b9…12c2:85
assertAdmin details
Admin
func() .uverse.address- OID
- 0b48b9…12c2:86
Admin details
ProposeAdmin
func(next .uverse.address)ProposeAdmin starts a handover. Nothing changes until the new address calls AcceptAdmin, so a typo cannot lock the page.
- OID
- 0b48b9…12c2:87
ProposeAdmin details
AcceptAdmin
func()AcceptAdmin completes a handover started by ProposeAdmin.
- OID
- 0b48b9…12c2:88
AcceptAdmin details
validSlug
func(slug string) bool- OID
- 0b48b9…12c2:89
validSlug details
assertWritableSlug
func(slug string)- OID
- 0b48b9…12c2:90
assertWritableSlug details
Set
func(slug string, body string)Set creates or replaces one slot.
- OID
- 0b48b9…12c2:91
Set details
Delete
func(slug string)Delete removes a slot. Deleting "layout" falls back to the built-in layout.
- OID
- 0b48b9…12c2:92
Delete details
Get
func(slug string) stringGet returns a slot body, or "" when the slot does not exist.
- OID
- 0b48b9…12c2:93
Get details
realmPath
untyped stringValue
"gno.land/r/samcrew/home"
webPath
untyped stringValue
"/r/samcrew/home"
fallbackLayout
untyped stringValue
"# samcrew\n\n:intro:\n\n## The crew\n\n:crew:\n"
Render
func(path string) stringRender serves: "" the team page "slots" the slot index "slots/<slug>" one slot's raw markdown
- OID
- 0b48b9…12c2:94
Render details
renderPage
func() string- OID
- 0b48b9…12c2:96
renderPage details
fill
func(s string) stringfill replaces every :slug: in s, in one left-to-right pass. Replacement text is never rescanned, and an unknown placeholder stays verbatim.
- OID
- 0b48b9…12c2:97
fill details
lookup
func(slug string) (string, bool)- OID
- 0b48b9…12c2:98
lookup details
renderIndex
func() string- OID
- 0b48b9…12c2:99
renderIndex details
renderSlot
func(slug string) string- OID
- 0b48b9…12c2:100