mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 04:42:25 -05:00
[feature] Allow user to choose "gallery" style layout for web view of profile (#3917)
* [feature] Allow user to choose "gallery" style web layout * find a bug and squish it up and all day long you'll have good luck * just a sec * [performance] reindex public timeline + tinker with query a bit * fiddling * should be good now * last bit of finagling, i'm done now i prommy * panic normally
This commit is contained in:
parent
f46e490c30
commit
b6e481d63e
82 changed files with 2921 additions and 1171 deletions
|
|
@ -76,6 +76,10 @@ func LoadTemplates(engine *gin.Engine) error {
|
|||
|
||||
// Set additional "include" functions to render
|
||||
// provided template name using the base template.
|
||||
|
||||
// Include renders the given template with the given data.
|
||||
// Unlike `template`, `include` can be chained with `indent`
|
||||
// to produce nicely-indented HTML.
|
||||
funcMap["include"] = func(name string, data any) (template.HTML, error) {
|
||||
var buf strings.Builder
|
||||
err := tmpl.ExecuteTemplate(&buf, name, data)
|
||||
|
|
@ -85,6 +89,25 @@ func LoadTemplates(engine *gin.Engine) error {
|
|||
return noescape(buf.String()), err
|
||||
}
|
||||
|
||||
// includeIndex is like `include` but an index can be specified at
|
||||
// `.Index` and data will be nested at `.Item`. Useful when ranging.
|
||||
funcMap["includeIndex"] = func(name string, data any, index int) (template.HTML, error) {
|
||||
var buf strings.Builder
|
||||
withIndex := struct {
|
||||
Item any
|
||||
Index int
|
||||
}{
|
||||
Item: data,
|
||||
Index: index,
|
||||
}
|
||||
err := tmpl.ExecuteTemplate(&buf, name, withIndex)
|
||||
|
||||
// Template was already escaped by
|
||||
// ExecuteTemplate so we can trust it.
|
||||
return noescape(buf.String()), err
|
||||
}
|
||||
|
||||
// includeAttr is like `include` but for element attributes.
|
||||
funcMap["includeAttr"] = func(name string, data any) (template.HTMLAttr, error) {
|
||||
var buf strings.Builder
|
||||
err := tmpl.ExecuteTemplate(&buf, name, data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue