From 2feba3ffb6d16bc0ccfc334454a81774e0dff94f Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Thu, 9 Feb 2023 15:49:02 +0100 Subject: [PATCH] feat: consider json translations --- application/source/command.go | 6 +- application/source/go.mod | 11 ++- application/source/go.sum | 39 +------- application/source/html/cut.go | 2 +- application/source/html/generate.go | 15 ++- application/source/html/sync.go | 2 +- application/source/template/prepare.go | 51 +++++++++- application/source/types/page-data.go | 21 +++-- .../examples/example1/html/de/test1.html | 87 +++++++++++++++++ .../examples/example1/html/en/test2.html | 69 ++++++++++++++ .../examples/example1/html/en/test3.html | 69 ++++++++++++++ development/examples/example1/html/test.html | 1 + .../examples/example1/original/test1.html | 12 +++ .../examples/example1/template/data.yaml | 94 +++++++++++++++++-- .../examples/example1/template/test1.html | 83 ++++++++++++++++ .../examples/example1/template/test2.html | 71 ++++++++++++++ .../examples/example1/template/test3.html | 71 ++++++++++++++ 17 files changed, 644 insertions(+), 60 deletions(-) create mode 100644 development/examples/example1/html/de/test1.html create mode 100644 development/examples/example1/html/en/test2.html create mode 100644 development/examples/example1/html/en/test3.html create mode 100644 development/examples/example1/template/test1.html create mode 100644 development/examples/example1/template/test2.html create mode 100644 development/examples/example1/template/test3.html diff --git a/application/source/command.go b/application/source/command.go index 780eaae..7885063 100644 --- a/application/source/command.go +++ b/application/source/command.go @@ -2,9 +2,9 @@ package main import ( "fmt" - html2 "gitlab.schukai.com/oss/bob.git/html" - template2 "gitlab.schukai.com/oss/bob.git/template" - "gitlab.schukai.com/oss/bob.git/types" + html2 "gitlab.schukai.com/oss/bob/html" + template2 "gitlab.schukai.com/oss/bob/template" + "gitlab.schukai.com/oss/bob/types" "gitlab.schukai.com/oss/libraries/go/application/xflags" "gopkg.in/yaml.v3" "os" diff --git a/application/source/go.mod b/application/source/go.mod index e1fd6bb..7a68da1 100644 --- a/application/source/go.mod +++ b/application/source/go.mod @@ -1,13 +1,14 @@ -module gitlab.schukai.com/oss/bob.git +module gitlab.schukai.com/oss/bob -go 1.19 + +go 1.20 require ( github.com/andybalholm/cascadia v1.3.1 gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.2 gitlab.schukai.com/oss/libraries/go/markup/html v0.3.0 - golang.org/x/crypto v0.4.0 - golang.org/x/net v0.4.0 + golang.org/x/crypto v0.6.0 + golang.org/x/net v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -28,7 +29,7 @@ require ( gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0 // indirect gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2 // indirect golang.org/x/exp v0.0.0-20221023144134-a1e5550cf13e // indirect - golang.org/x/sys v0.3.0 // indirect + golang.org/x/sys v0.5.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect ) diff --git a/application/source/go.sum b/application/source/go.sum index 3ac2f3d..281ce45 100644 --- a/application/source/go.sum +++ b/application/source/go.sum @@ -1,24 +1,16 @@ github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/r3labs/diff/v3 v3.0.0 h1:ZhPwNxn9gW5WLPBV9GCYaVbMdLOSmJ0DeKdCiSbOLUI= github.com/r3labs/diff/v3 v3.0.0/go.mod h1:wCkTySAiDnZao1sZrVTDIzuzgLZ+cNPGn3LC8DlIg5g= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -26,53 +18,34 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/volker-schukai/tokenizer v1.0.0 h1:wF4haFoCodq7lgAk8c+th/DZmpFpL2WVD8wDzAGU1mA= github.com/volker-schukai/tokenizer v1.0.0/go.mod h1:LPw7lLIxUnZgeg96818N7IvwLE1x8ya31J/Aa0aCq9M= -gitlab.schukai.com/oss/libraries/go/application/configuration v1.14.0 h1:cuS7BxTe5pS5iUD6eJKNcErRx6NHGNAGeZx8tOED9pk= gitlab.schukai.com/oss/libraries/go/application/configuration v1.14.0/go.mod h1:me1BS/adhucf6h8t2ew0ifaNVio2vunQIYfpofUBbF8= -gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.0 h1:nTnuGzAOzUTlmrst8tPrLp5EFOwC+6vozsxOcnGVfQk= -gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.0/go.mod h1:EEYPy5RYR4ahK9J6CTKSLFHUhP+ndHBWVdQMtGCFqDo= gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.2 h1:3nRDFUs629qL8EGxeX3gzNUqIR/04uUvXiW0G7qJ8Jk= gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.2/go.mod h1:EEYPy5RYR4ahK9J6CTKSLFHUhP+ndHBWVdQMtGCFqDo= -gitlab.schukai.com/oss/libraries/go/markup/html v0.2.1 h1:d08SBGYHXHWOCJqaLh1Cfh6rOYmHoRJxM63GhF2klCo= -gitlab.schukai.com/oss/libraries/go/markup/html v0.2.1/go.mod h1:h0+dJUwXfF1QeaBxFiidgxA2I3A9qIPE+zhfs88pKV8= gitlab.schukai.com/oss/libraries/go/markup/html v0.3.0 h1:RvEQgV6yj8M1SjmR/FZwmwykfJSbHrDk8m7IIlujhxY= gitlab.schukai.com/oss/libraries/go/markup/html v0.3.0/go.mod h1:h0+dJUwXfF1QeaBxFiidgxA2I3A9qIPE+zhfs88pKV8= -gitlab.schukai.com/oss/libraries/go/network/http-negotiation v1.3.0 h1:SZG0BW5ll3WK5ZIOTogjqX8oVHCTxANTDLPxUs7Rnx8= gitlab.schukai.com/oss/libraries/go/network/http-negotiation v1.3.0/go.mod h1:RS2rKf5O+rmSBshHLOgjG7dxg5N2MhNYokZOBcuXdX8= gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0 h1:JVxMHiA8zFVjJDhNl65XeYrhdMkzB+5dyrBUEZ982WU= gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0/go.mod h1:BsR4Y9jsvISplkW6UoLFRGxQX69/AUmP1SXRwWhx31o= -gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.3.1 h1:oyElaqEiyr2XgaE1CYwD8LoeHsuR/vQD/p6k3jYbJFs= -gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.3.1/go.mod h1:UvdD4NAf3gLKYafabJD7e9ZCOetzM9JZ9y4GkZukPVU= -gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.0 h1:LsKHjuiEzOS3W5UqtqLmHEDYGVQ7qddf88rmD1HmI4M= -gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.0/go.mod h1:UvdD4NAf3gLKYafabJD7e9ZCOetzM9JZ9y4GkZukPVU= gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2 h1:R+dL2NJCM+AQNPK4DPDmfvx1eomi1Xb1dl0XKEFj7Ek= gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2/go.mod h1:UvdD4NAf3gLKYafabJD7e9ZCOetzM9JZ9y4GkZukPVU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= -golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= -golang.org/x/exp v0.0.0-20221023144134-a1e5550cf13e h1:SkwG94eNiiYJhbeDE018Grw09HIN/KB9NlRmZsrzfWs= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/exp v0.0.0-20221023144134-a1e5550cf13e/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -80,11 +53,9 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/application/source/html/cut.go b/application/source/html/cut.go index 7f0bfe3..00f9b8d 100644 --- a/application/source/html/cut.go +++ b/application/source/html/cut.go @@ -2,7 +2,7 @@ package html import ( "github.com/andybalholm/cascadia" - "gitlab.schukai.com/oss/bob.git/types" + "gitlab.schukai.com/oss/bob/types" "gitlab.schukai.com/oss/libraries/go/markup/html/engine" "golang.org/x/net/html" "gopkg.in/yaml.v3" diff --git a/application/source/html/generate.go b/application/source/html/generate.go index 0739aa7..32a0dd7 100644 --- a/application/source/html/generate.go +++ b/application/source/html/generate.go @@ -1,7 +1,8 @@ package html import ( - "gitlab.schukai.com/oss/bob.git/types" + "encoding/json" + "gitlab.schukai.com/oss/bob/types" "gitlab.schukai.com/oss/libraries/go/markup/html/engine" "gopkg.in/yaml.v3" "os" @@ -81,6 +82,18 @@ func Generate(data *types.PageData, name string) (string, error) { dataset["text"].(map[any]any)[v.Id] = map[any]any{"text": v.Text} } + dataset["translations"] = make(map[string]any, 0) + for _, v := range data.Translations { + j, err := json.Marshal(v.KeyValues) + if err != nil { + return "", err + } + dataset["translations"].(map[string]any)[v.Id] = map[string]string{ + "content": string(j), + } + + } + e := engine.New(dataset) template, err := os.ReadFile(name) diff --git a/application/source/html/sync.go b/application/source/html/sync.go index a15aabd..1784580 100644 --- a/application/source/html/sync.go +++ b/application/source/html/sync.go @@ -3,7 +3,7 @@ package html import ( "fmt" "github.com/andybalholm/cascadia" - "gitlab.schukai.com/oss/bob.git/types" + "gitlab.schukai.com/oss/bob/types" "gitlab.schukai.com/oss/libraries/go/markup/html/engine" "golang.org/x/net/html" "gopkg.in/yaml.v3" diff --git a/application/source/template/prepare.go b/application/source/template/prepare.go index 1afea22..6da81c0 100644 --- a/application/source/template/prepare.go +++ b/application/source/template/prepare.go @@ -1,9 +1,11 @@ package template import ( + "encoding/json" + "fmt" "github.com/andybalholm/cascadia" - "gitlab.schukai.com/oss/bob.git/types" - "gitlab.schukai.com/oss/bob.git/util" + "gitlab.schukai.com/oss/bob/types" + "gitlab.schukai.com/oss/bob/util" "golang.org/x/net/html" "golang.org/x/net/html/atom" "path" @@ -215,6 +217,49 @@ func prepareImages(node *html.Node, storage *types.PageData) { } +func prepareTranslationJson(node *html.Node, storage *types.PageData) { + selector, err := cascadia.Parse("script[data-monster-role=translation]") + if err != nil { + return + } + + list := cascadia.QueryAll(node, selector) + if list == nil { + return + } + + for _, n := range list { + + id := util.GetAttribute(n.Attr, "id") + typ := util.GetAttribute(n.Attr, "type") + + n.Attr = removeAttribute(n.Attr, attributeReplace) + n.Attr = append(n.Attr, html.Attribute{Key: attributeReplace, Val: "path:translations." + id + ".content"}) + + content := "" + for c := n.FirstChild; c != nil; c = c.NextSibling { + if c.Type == html.TextNode { + content += c.Data + } + } + + content = strings.TrimSpace(content) + + t := make(map[string]any) + err := json.Unmarshal([]byte(content), &t) + if err != nil { + fmt.Println(err) + } + + storage.Translations = append(storage.Translations, types.Translations{ + Id: id, + Type: typ, + KeyValues: t, + }) + + } +} + func prepareTextNodes(node *html.Node, storage *types.PageData) { selector, err := cascadia.Parse("body") @@ -307,6 +352,8 @@ func PrepareHtmlFile(from, to string, storage types.PageDataStorage) error { prepareAnchors(node, pd) prepareTextNodes(node, pd) + prepareTranslationJson(node, pd) + pd.Export = path.Join(pd.Lang, path.Base(from)) to = path.Join(to, path.Base(from)) diff --git a/application/source/types/page-data.go b/application/source/types/page-data.go index 5113746..18b3fe1 100644 --- a/application/source/types/page-data.go +++ b/application/source/types/page-data.go @@ -19,14 +19,21 @@ type Anchor struct { Title string } +type Translations struct { + Id string `yaml:"id"` + Type string `yaml:"type"` + KeyValues map[string]any `yaml:"translations"` +} + type PageData struct { - Lang string `yaml:"lang"` - Title string `yaml:"title"` - Meta map[string]string `yaml:"meta"` - Images []Image `yaml:"images"` - Anchors []Anchor `yaml:"anchors"` - Text []Text `yaml:"text"` - Export string `yaml:"export"` + Export string `yaml:"export"` + Lang string `yaml:"lang"` + Title string `yaml:"title"` + Meta map[string]string `yaml:"meta"` + Images []Image `yaml:"images"` + Anchors []Anchor `yaml:"anchors"` + Text []Text `yaml:"text"` + Translations []Translations `yaml:"translations"` } func NewPageData() *PageData { diff --git a/development/examples/example1/html/de/test1.html b/development/examples/example1/html/de/test1.html new file mode 100644 index 0000000..3ff51ee --- /dev/null +++ b/development/examples/example1/html/de/test1.html @@ -0,0 +1,87 @@ +<!DOCTYPE html> +<html lang="de"> +<head> + + <style> + *:not(:defined) { + visibility: hidden; + } + </style> + + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + + <meta name="robots" content="noindex"/> + + <link rel="icon" type="image/x-icon" href="/asset/icon/favicon.svg"/> + <meta name="theme-color" content="#c10000"/> + <link rel="apple-touch-icon" sizes="180x180" href="/asset/icon/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/asset/icon/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/asset/icon/favicon-16x16.png"/> + <link rel="mask-icon" href="/asset/icon/safari-pinned-tab.svg" color="#fd1d1d"/> + <meta name="msapplication-TileImage" content="/asset/icon/mstile-144x144.png"/> + <meta name="msapplication-TileColor" content="#fd1d1d"/> + + <title>TESTx</title> + <meta name="description" content="The request was malformed or invalid."/> + <meta name="author" content="schukai GmbH"/> + + <link rel="icon" href="/favicon.ico"/> + <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + + <script id="translations" type="application/json" data-monster-role="translation">{ + "key1": "value1 gfgf66", + "key2": "value2 gg", + "key3": { + "one": "value3 tgtgt", + "two": "value4 trzrtz" + } + }</script> + + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> +</head> + +<body> +<header> + <div class="gradient"></div> +</header> + +<monster-state> + <img width="16" height="16" alt="tick" title="yes" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" + id="tickyesdata-image-gi-4013311193"/> + <h1 class="deco">Bad xxxx</h1> + <p>The request was incorrect, the server could not process it.</p> + <p> + </p> + <div class="infobox"> + <div> + + <ul> + + <li>Try submitting your<a id="yes-a-html" href="/a.html" title="Yes" hreflang="">request</a> again + (sometimes this helps). + </li> + <li>Contact support if you continue to have problems.</li> + + <li>If you received this message as a result of a request to the server API, then check the structure + against the documentation. + </li> + + + </ul> + + <p>You can try the following steps:</p> + + </div> + </div> + + +</monster-state> + + +</body> +</html> \ No newline at end of file diff --git a/development/examples/example1/html/en/test2.html b/development/examples/example1/html/en/test2.html new file mode 100644 index 0000000..ecd0791 --- /dev/null +++ b/development/examples/example1/html/en/test2.html @@ -0,0 +1,69 @@ +<!DOCTYPE html><html lang="en"><head> + + <style> + *:not(:defined) { + visibility: hidden; + } + </style> + + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + + <meta name="robots" content="noindex"/> + + <link rel="icon" type="image/x-icon" href="/asset/icon/favicon.svg"/> + <meta name="theme-color" content="#c10000"/> + <link rel="apple-touch-icon" sizes="180x180" href="/asset/icon/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/asset/icon/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/asset/icon/favicon-16x16.png"/> + <link rel="mask-icon" href="/asset/icon/safari-pinned-tab.svg" color="#fd1d1d"/> + <meta name="msapplication-TileImage" content="/asset/icon/mstile-144x144.png"/> + <meta name="msapplication-TileColor" content="#fd1d1d"/> + + <title>TEST2</title> + <meta name="description" content="The 2request was malformed or invalid."/> + <meta name="author" content="sch2ukai GmbH"/> + + <link rel="icon" href="/favicon.ico"/> + <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> +</head> + +<body> +<header> + <div class="gradient"></div> +</header> + +<monster-state> + <img width="16" height="16" alt="tick" title="yes" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" id="tickyesdata-image-gi-4013311193"/> + <h1 class="deco">Bad xxxx</h1> + <p>The request was incorrect, the server could not process it.</p><p> +</p><div class="infobox"> + <div> + + <ul> + + <li>Try submitting your<a id="yes-a-html" href="/a.html" title="Yes" hreflang="">request</a> again (sometimes this helps).</li> + <li>Contact support if you continue to have problems.</li> + + <li>If you received this message as a result of a request to the server API, then check the structure + against the documentation.</li> + + + </ul> + + <p>You can try the following steps:</p> + + </div> +</div> + + +</monster-state> + + + +</body></html> \ No newline at end of file diff --git a/development/examples/example1/html/en/test3.html b/development/examples/example1/html/en/test3.html new file mode 100644 index 0000000..a628f9e --- /dev/null +++ b/development/examples/example1/html/en/test3.html @@ -0,0 +1,69 @@ +<!DOCTYPE html><html lang="en"><head> + + <style> + *:not(:defined) { + visibility: hidden; + } + </style> + + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + + <meta name="robots" content="noindex"/> + + <link rel="icon" type="image/x-icon" href="/asset/icon/favicon.svg"/> + <meta name="theme-color" content="#c10000"/> + <link rel="apple-touch-icon" sizes="180x180" href="/asset/icon/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/asset/icon/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/asset/icon/favicon-16x16.png"/> + <link rel="mask-icon" href="/asset/icon/safari-pinned-tab.svg" color="#fd1d1d"/> + <meta name="msapplication-TileImage" content="/asset/icon/mstile-144x144.png"/> + <meta name="msapplication-TileColor" content="#fd1d1d"/> + + <title>TEST3</title> + <meta name="description" content="The 3request was malformed or invalid."/> + <meta name="author" content="schukai3 GmbH"/> + + <link rel="icon" href="/favicon.ico"/> + <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> +</head> + +<body> +<header> + <div class="gradient"></div> +</header> + +<monster-state> + <img width="16" height="16" alt="tick" title="yes" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" id="tickyesdata-image-gi-4013311193"/> + <h1 class="deco">Bad xxxx</h1> + <p>The request was incorrect, the server could not process it.</p><p> +</p><div class="infobox"> + <div> + + <ul> + + <li>Try submitting your<a id="yes-a-html" href="/a.html" title="Yes" hreflang="">request</a> again (sometimes this helps).</li> + <li>Contact support if you continue to have problems.</li> + + <li>If you received this message as a result of a request to the server API, then check the structure + against the documentation.</li> + + + </ul> + + <p>You can try the following steps:</p> + + </div> +</div> + + +</monster-state> + + + +</body></html> \ No newline at end of file diff --git a/development/examples/example1/html/test.html b/development/examples/example1/html/test.html index b697ce0..0cfe2ec 100644 --- a/development/examples/example1/html/test.html +++ b/development/examples/example1/html/test.html @@ -29,6 +29,7 @@ <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> <script src="/script/main.mjs" type="module"></script> + </head> <body> diff --git a/development/examples/example1/original/test1.html b/development/examples/example1/original/test1.html index c458fdd..319730b 100644 --- a/development/examples/example1/original/test1.html +++ b/development/examples/example1/original/test1.html @@ -28,6 +28,18 @@ <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + <script id="translations" type="application/json" data-monster-role="translation"> + { + "key1": "value1", + "key2": "value2", + "key3": { + "one": "value3", + "two": "value4" + } + } + </script> + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> </head> diff --git a/development/examples/example1/template/data.yaml b/development/examples/example1/template/data.yaml index 518cba7..09114f2 100755 --- a/development/examples/example1/template/data.yaml +++ b/development/examples/example1/template/data.yaml @@ -1,6 +1,7 @@ -test.html: - lang: en - title: Bad Request +test1.html: + export: de/test1.html + lang: de + title: TESTx meta: author: schukai GmbH description: The request was malformed or invalid. @@ -14,12 +15,92 @@ test.html: title: "yes" anchors: - id: yes-a-html - href: /b.html + href: /a.html + hreflang: "" + title: "Yes" + text: + - text: Bad xxxx + id: bad-xxxx + - text: The request was incorrect, the server could not process it. + id: the-request-was-inco-2640993422 + - text: Try submitting your + id: try-submitting-your + - text: Contact support if you continue to have problems. + id: contact-support-if-y-3404332025 + - text: |- + If you received this message as a result of a request to the server API, then check the structure + against the documentation. + id: if-you-received-this-423958995 + - text: 'You can try the following steps:' + id: you-can-try-the-foll-3363859033 + translations: + - id: translations + type: application/json + translations: + key1: value1 gfgf66 + key2: value2 gg + key3: + one: value3 tgtgt + two: value4 trzrtz +test2.html: + export: en/test2.html + lang: en + title: TEST2 + meta: + author: sch2ukai GmbH + description: The 2request was malformed or invalid. + images: + - id: tickyesdata-image-gi-4013311193 + source: |- + data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7 + alt: tick + title: "yes" + anchors: + - id: yes-a-html + href: /a.html + hreflang: "" + title: "Yes" + text: + - text: Bad xxxx + id: bad-xxxx + - text: The request was incorrect, the server could not process it. + id: the-request-was-inco-2640993422 + - text: Try submitting your + id: try-submitting-your + - text: Contact support if you continue to have problems. + id: contact-support-if-y-3404332025 + - text: |- + If you received this message as a result of a request to the server API, then check the structure + against the documentation. + id: if-you-received-this-423958995 + - text: 'You can try the following steps:' + id: you-can-try-the-foll-3363859033 + translations: [] +test3.html: + export: en/test3.html + lang: en + title: TEST3 + meta: + author: schukai3 GmbH + description: The 3request was malformed or invalid. + images: + - id: tickyesdata-image-gi-4013311193 + source: |- + data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7 + alt: tick + title: "yes" + anchors: + - id: yes-a-html + href: /a.html hreflang: "" title: "Yes" text: - - text: Bad Request - id: bad-request + - text: Bad xxxx + id: bad-xxxx - text: The request was incorrect, the server could not process it. id: the-request-was-inco-2640993422 - text: Try submitting your @@ -32,3 +113,4 @@ test.html: id: if-you-received-this-423958995 - text: 'You can try the following steps:' id: you-can-try-the-foll-3363859033 + translations: [] diff --git a/development/examples/example1/template/test1.html b/development/examples/example1/template/test1.html new file mode 100644 index 0000000..cecbc1b --- /dev/null +++ b/development/examples/example1/template/test1.html @@ -0,0 +1,83 @@ +<!DOCTYPE html><html lang="de" data-attributes="lang path:lang"><head> + + <style> + *:not(:defined) { + visibility: hidden; + } + </style> + + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + + <meta name="robots" content="noindex"/> + + <link rel="icon" type="image/x-icon" href="/asset/icon/favicon.svg"/> + <meta name="theme-color" content="#c10000"/> + <link rel="apple-touch-icon" sizes="180x180" href="/asset/icon/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/asset/icon/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/asset/icon/favicon-16x16.png"/> + <link rel="mask-icon" href="/asset/icon/safari-pinned-tab.svg" color="#fd1d1d"/> + <meta name="msapplication-TileImage" content="/asset/icon/mstile-144x144.png"/> + <meta name="msapplication-TileColor" content="#fd1d1d"/> + + <title data-replace="path:title">TESTx</title> + <meta name="description" content="The request was malformed or invalid." data-attributes="content path:meta.description"/> + <meta name="author" content="schukai GmbH" data-attributes="content path:meta.author"/> + + <link rel="icon" href="/favicon.ico"/> + <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + + <script id="translations" type="application/json" data-monster-role="translation" data-replace="path:translations.translations.content"> + { + "key1": "value1", + "key2": "value2", + "key3": { + "one": "value3", + "two": "value4" + } + } + </script> + + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> +</head> + +<body> +<header> + <div class="gradient"></div> +</header> + +<monster-state> + <img width="16" height="16" alt="tick" title="yes" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" id="tickyesdata-image-gi-4013311193" data-attributes="src path:content.tickyesdata-image-gi-4013311193.src,alt path:content.tickyesdata-image-gi-4013311193.alt,title path:content.tickyesdata-image-gi-4013311193.title"/> + <h1 class="deco"><span id="bad-xxxx" data-replace-self="path:text.bad-xxxx.text">Bad xxxx</span></h1> + <p><span id="the-request-was-inco-2640993422" data-replace-self="path:text.the-request-was-inco-2640993422.text">The request was incorrect, the server could not process it. + </span></p><p> +</p><div class="infobox"> + <div> + + <ul> + + <li><span id="try-submitting-your" data-replace-self="path:text.try-submitting-your.text">Try submitting your </span><a href="/a.html" title="Yes" id="yes-a-html" data-attributes="href path:anchors.yes-a-html.href,title path:anchors.yes-a-html.title,hreflang path:anchors.yes-a-html.hreflang">request</a> again (sometimes this helps).</li> + <li><span id="contact-support-if-y-3404332025" data-replace-self="path:text.contact-support-if-y-3404332025.text">Contact support if you continue to have problems.</span></li> + + <li><span id="if-you-received-this-423958995" data-replace-self="path:text.if-you-received-this-423958995.text">If you received this message as a result of a request to the server API, then check the structure + against the documentation. + </span></li> + + + </ul> + + <p><span id="you-can-try-the-foll-3363859033" data-replace-self="path:text.you-can-try-the-foll-3363859033.text">You can try the following steps:</span></p> + + </div> +</div> + + +</monster-state> + + + +</body></html> \ No newline at end of file diff --git a/development/examples/example1/template/test2.html b/development/examples/example1/template/test2.html new file mode 100644 index 0000000..39adaf5 --- /dev/null +++ b/development/examples/example1/template/test2.html @@ -0,0 +1,71 @@ +<!DOCTYPE html><html lang="en" data-attributes="lang path:lang"><head> + + <style> + *:not(:defined) { + visibility: hidden; + } + </style> + + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + + <meta name="robots" content="noindex"/> + + <link rel="icon" type="image/x-icon" href="/asset/icon/favicon.svg"/> + <meta name="theme-color" content="#c10000"/> + <link rel="apple-touch-icon" sizes="180x180" href="/asset/icon/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/asset/icon/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/asset/icon/favicon-16x16.png"/> + <link rel="mask-icon" href="/asset/icon/safari-pinned-tab.svg" color="#fd1d1d"/> + <meta name="msapplication-TileImage" content="/asset/icon/mstile-144x144.png"/> + <meta name="msapplication-TileColor" content="#fd1d1d"/> + + <title data-replace="path:title">TEST2</title> + <meta name="description" content="The 2request was malformed or invalid." data-attributes="content path:meta.description"/> + <meta name="author" content="sch2ukai GmbH" data-attributes="content path:meta.author"/> + + <link rel="icon" href="/favicon.ico"/> + <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> +</head> + +<body> +<header> + <div class="gradient"></div> +</header> + +<monster-state> + <img width="16" height="16" alt="tick" title="yes" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" id="tickyesdata-image-gi-4013311193" data-attributes="alt path:content.tickyesdata-image-gi-4013311193.alt,src path:content.tickyesdata-image-gi-4013311193.src,title path:content.tickyesdata-image-gi-4013311193.title"/> + <h1 class="deco"><span id="bad-xxxx" data-replace-self="path:text.bad-xxxx.text">Bad xxxx</span></h1> + <p><span id="the-request-was-inco-2640993422" data-replace-self="path:text.the-request-was-inco-2640993422.text">The request was incorrect, the server could not process it. + </span></p><p> +</p><div class="infobox"> + <div> + + <ul> + + <li><span id="try-submitting-your" data-replace-self="path:text.try-submitting-your.text">Try submitting your </span><a href="/a.html" title="Yes" id="yes-a-html" data-attributes="href path:anchors.yes-a-html.href,title path:anchors.yes-a-html.title,hreflang path:anchors.yes-a-html.hreflang">request</a> again (sometimes this helps).</li> + <li><span id="contact-support-if-y-3404332025" data-replace-self="path:text.contact-support-if-y-3404332025.text">Contact support if you continue to have problems.</span></li> + + <li><span id="if-you-received-this-423958995" data-replace-self="path:text.if-you-received-this-423958995.text">If you received this message as a result of a request to the server API, then check the structure + against the documentation. + </span></li> + + + </ul> + + <p><span id="you-can-try-the-foll-3363859033" data-replace-self="path:text.you-can-try-the-foll-3363859033.text">You can try the following steps:</span></p> + + </div> +</div> + + +</monster-state> + + + +</body></html> \ No newline at end of file diff --git a/development/examples/example1/template/test3.html b/development/examples/example1/template/test3.html new file mode 100644 index 0000000..b374b70 --- /dev/null +++ b/development/examples/example1/template/test3.html @@ -0,0 +1,71 @@ +<!DOCTYPE html><html lang="en" data-attributes="lang path:lang"><head> + + <style> + *:not(:defined) { + visibility: hidden; + } + </style> + + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + + <meta name="robots" content="noindex"/> + + <link rel="icon" type="image/x-icon" href="/asset/icon/favicon.svg"/> + <meta name="theme-color" content="#c10000"/> + <link rel="apple-touch-icon" sizes="180x180" href="/asset/icon/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/asset/icon/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/asset/icon/favicon-16x16.png"/> + <link rel="mask-icon" href="/asset/icon/safari-pinned-tab.svg" color="#fd1d1d"/> + <meta name="msapplication-TileImage" content="/asset/icon/mstile-144x144.png"/> + <meta name="msapplication-TileColor" content="#fd1d1d"/> + + <title data-replace="path:title">TEST3</title> + <meta name="description" content="The 3request was malformed or invalid." data-attributes="content path:meta.description"/> + <meta name="author" content="schukai3 GmbH" data-attributes="content path:meta.author"/> + + <link rel="icon" href="/favicon.ico"/> + <link rel="icon" href="/favicon.svg" type="image/svg+xml"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + + <script id="mainscript" src="/script/main22.mjs" type="module"></script> +</head> + +<body> +<header> + <div class="gradient"></div> +</header> + +<monster-state> + <img width="16" height="16" alt="tick" title="yes" src="data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2Cm + V1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQ + PbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" id="tickyesdata-image-gi-4013311193" data-attributes="alt path:content.tickyesdata-image-gi-4013311193.alt,src path:content.tickyesdata-image-gi-4013311193.src,title path:content.tickyesdata-image-gi-4013311193.title"/> + <h1 class="deco"><span id="bad-xxxx" data-replace-self="path:text.bad-xxxx.text">Bad xxxx</span></h1> + <p><span id="the-request-was-inco-2640993422" data-replace-self="path:text.the-request-was-inco-2640993422.text">The request was incorrect, the server could not process it. + </span></p><p> +</p><div class="infobox"> + <div> + + <ul> + + <li><span id="try-submitting-your" data-replace-self="path:text.try-submitting-your.text">Try submitting your </span><a href="/a.html" title="Yes" id="yes-a-html" data-attributes="href path:anchors.yes-a-html.href,title path:anchors.yes-a-html.title,hreflang path:anchors.yes-a-html.hreflang">request</a> again (sometimes this helps).</li> + <li><span id="contact-support-if-y-3404332025" data-replace-self="path:text.contact-support-if-y-3404332025.text">Contact support if you continue to have problems.</span></li> + + <li><span id="if-you-received-this-423958995" data-replace-self="path:text.if-you-received-this-423958995.text">If you received this message as a result of a request to the server API, then check the structure + against the documentation. + </span></li> + + + </ul> + + <p><span id="you-can-try-the-foll-3363859033" data-replace-self="path:text.you-can-try-the-foll-3363859033.text">You can try the following steps:</span></p> + + </div> +</div> + + +</monster-state> + + + +</body></html> \ No newline at end of file -- GitLab