fancl 1 år sedan
förälder
incheckning
b282b2a31b
4 ändrade filer med 231 tillägg och 7 borttagningar
  1. 7 3
      element/element.go
  2. 1 1
      render.go
  3. 14 2
      render_test.go
  4. 209 1
      theme/default.go

+ 7 - 3
element/element.go

@@ -4,6 +4,8 @@ import (
 	"git.nspix.com/golang/pgenr/internal/pool"
 	"golang.org/x/net/html/atom"
 	"html"
+	"strconv"
+	"strings"
 )
 
 type (
@@ -28,10 +30,12 @@ func renderTag(tag string, attrs Attrs, content string) string {
 	br.WriteString("<" + tag)
 	if len(attrs) > 0 {
 		for k, v := range attrs {
-			if atom.Lookup([]byte(k)) == 0 {
-				continue
+			if !strings.HasPrefix(k, "data-") {
+				if atom.Lookup([]byte(k)) == 0 {
+					continue
+				}
 			}
-			br.WriteString(" " + k + "=\"" + v + "\" ")
+			br.WriteString(" " + k + "=" + strconv.Quote(v))
 		}
 	}
 	br.WriteString(">")

+ 1 - 1
render.go

@@ -33,7 +33,7 @@ func Render(page *Page, cbs ...RenderOption) (str string, err error) {
 	)
 	opts := &RenderOptions{
 		Theme:     &theme.Default{},
-		InlineCss: true,
+		InlineCss: false,
 	}
 	for _, cb := range cbs {
 		cb(opts)

+ 14 - 2
render_test.go

@@ -1,16 +1,18 @@
 package pgenr
 
 import (
+	"encoding/base64"
 	"fmt"
 	"git.nspix.com/golang/pgenr/element"
 	"golang.org/x/net/html/atom"
 	"io/ioutil"
+	"strconv"
 	"testing"
 	"time"
 )
 
 func TestAtom(t *testing.T) {
-	fmt.Println(atom.Lookup([]byte("zzz")).String())
+	fmt.Println(strconv.Quote(`{"a":"b"}`))
 }
 
 func TestRender(t *testing.T) {
@@ -31,7 +33,17 @@ func TestRender(t *testing.T) {
 	table.FixedColumn = true
 	table.SetHead(element.NewText("Name"), element.NewText("Age"), element.NewText("Price"), element.NewText("School"), element.NewText("Job"))
 	table.AddCell(element.NewText("ZhanSan"), element.NewText("31"), element.NewText("185.6"), element.NewText("185.6"), element.NewText("185.6"))
-	table.AddCell(element.NewText("Lisi"), element.NewText("35"), element.NewText("102.6"), element.NewText("102.6"), element.NewText("102.6"))
+	table.AddCell(element.NewText("Lisi"), element.NewText("35"), element.NewText("102.6"), element.NewText("102.6"),
+		element.NewElement(atom.A, "link",
+			element.WithAttribute("class", "ajax-request"),
+			element.WithAttribute("data-method", "get"),
+			element.WithAttribute("data-url", "https://vrgo.nspix.com/healthy"),
+			element.WithAttribute("data-success", "hello hello"),
+			element.WithAttribute("data-reload", "hello hello"),
+			element.WithAttribute("class", "ajax-request"),
+			element.WithAttribute("data-data", base64.StdEncoding.EncodeToString([]byte(`{"a":"aaa","b":"as","c":222}`))),
+		),
+	)
 	page.AddTable(table)
 	//page.AddButtonAction("To get started with Hermes, please click here:", NewButton("Confirm your account", "https://example-hermes.com/"))
 	//page.AddInviteCodeAction("To get started with Hermes, please click here:", "950038")

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 209 - 1
theme/default.go


Vissa filer visades inte eftersom för många filer har ändrats