123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package utils
- import (
- "encoding/json"
- "fmt"
- "github.com/qor5/web"
- "github.com/shurcooL/sanitized_anchor_name"
- . "github.com/theplant/htmlgo"
- )
- func Anchor(h *HTMLTagBuilder, text string) HTMLComponent {
- anchorName := sanitized_anchor_name.Create(text)
- return h.Children(
- Text(text),
- A().Class("anchor").Href(fmt.Sprintf("#%s", anchorName)),
- ).Id(anchorName)
- }
- type Example struct {
- Title string
- DemoPath string
- SourcePath string
- }
- var LiveExamples []*Example
- func Demo(title string, demoPath string, sourcePath string) HTMLComponent {
- ex := &Example{
- Title: title,
- DemoPath: demoPath,
- SourcePath: fmt.Sprintf("https://github.com/qor5/docs/tree/main/docsrc/examples/%s", sourcePath),
- }
- LiveExamples = append(LiveExamples, ex)
- return Div(
- Div(
- A().Text("Check the demo").Href(ex.DemoPath).Target("_blank"),
- Text(" | "),
- A().Text("Source on GitHub").
- Href(ex.SourcePath).
- Target("_blank"),
- ).Class("demo"),
- )
- }
- func ExamplesDoc() HTMLComponent {
- u := Ul()
- for _, le := range LiveExamples {
- u.AppendChildren(
- Li(
- A().Href(le.DemoPath).Text(le.Title).Target("_blank"),
- Text(" | "),
- A().Href(le.SourcePath).Text("Source").Target("_blank"),
- ),
- )
- }
- return u
- }
- func PrettyFormAsJSON(ctx *web.EventContext) HTMLComponent {
- if ctx.R.MultipartForm == nil {
- return nil
- }
- formData, err := json.MarshalIndent(ctx.R.MultipartForm, "", "\t")
- if err != nil {
- panic(err)
- }
- return Pre(
- string(formData),
- )
- }
|