调整优化修复bug
This commit is contained in:
parent
a905f59eae
commit
2f456f62c0
|
@ -120,7 +120,7 @@ func StripTagsX(str, allowable string) string {
|
|||
}
|
||||
|
||||
var tagx = regexp.MustCompile(`(</?[a-z0-9]+?)( |>)`)
|
||||
var selfCloseTags = map[string]string{"area": "", "base": "", "basefont": "", "br": "", "col": "", "command": "", "embed": "", "frame": "", "hr": "", "img": "", "input": "", "isindex": "", "link": "", "meta": "", "param": "", "source": "", "track": "", "wbr": ""}
|
||||
var selfCloseTags = map[string]string{"area": "", "base": "", "basefont": "", "br": "", "col": "", "command": "", "fecolormatrix": "", "embed": "", "frame": "", "hr": "", "img": "", "input": "", "isindex": "", "link": "", "fecomposite": "", "fefuncr": "", "fefuncg": "", "fefuncb": "", "fefunca": "", "meta": "", "param": "", "!doctype": "", "source": "", "track": "", "wbr": ""}
|
||||
|
||||
func CloseTag(str string) string {
|
||||
tags := tag.FindAllString(str, -1)
|
||||
|
@ -129,14 +129,18 @@ func CloseTag(str string) string {
|
|||
}
|
||||
var tagss = make([]string, 0, len(tags))
|
||||
for _, s := range tags {
|
||||
ss := strings.TrimSpace(tagx.FindString(s))
|
||||
if ss[len(ss)-1] != '>' {
|
||||
ss = fmt.Sprintf("%s>", ss)
|
||||
if _, ok := selfCloseTags[ss]; ok {
|
||||
continue
|
||||
}
|
||||
ss := strings.Split(s, " ")
|
||||
sss := strings.ReplaceAll(ss[0], "\\", "")
|
||||
if strings.Contains(sss, "<!") {
|
||||
continue
|
||||
}
|
||||
tagss = append(tagss, ss)
|
||||
if sss[len(sss)-1] != '>' {
|
||||
sss = fmt.Sprintf("%s>", sss)
|
||||
}
|
||||
if _, ok := selfCloseTags[strings.Trim(strings.ToLower(sss), "\\/<>")]; ok {
|
||||
continue
|
||||
}
|
||||
tagss = append(tagss, sss)
|
||||
}
|
||||
r := slice.Map(slice.Reverse(UnClosedTag(tagss)), func(s string) string {
|
||||
return fmt.Sprintf("</%s>", strings.Trim(s, "<>"))
|
||||
|
|
|
@ -2,6 +2,7 @@ package html
|
|||
|
||||
import (
|
||||
"html/template"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
@ -181,6 +182,22 @@ func TestCloseHtmlTag(t *testing.T) {
|
|||
args: args{str: `<pre><div>`},
|
||||
want: "</div></pre>",
|
||||
},
|
||||
{
|
||||
name: "t3",
|
||||
args: args{str: func() string {
|
||||
s, err := os.ReadFile("/home/xing/aaa.html")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return string(s)
|
||||
}()},
|
||||
want: "</div></pre>",
|
||||
},
|
||||
{
|
||||
name: "t5",
|
||||
args: args{str: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-dark-grayscale"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0 0.49803921568627"></feFuncR><feFuncG type="table" tableValues="0 0.49803921568627"></feFuncG><feFuncB type="table" tableValues="0 0.49803921568627"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg>`},
|
||||
want: "</div></pre>",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
|
|
@ -49,10 +49,10 @@ func SearchLast[T any](arr []T, fn func(T) bool) (int, T) {
|
|||
return -1, r
|
||||
}
|
||||
|
||||
func Filter[T any](arr []T, fn func(T) bool) []T {
|
||||
func Filter[T any](arr []T, fn func(T, int) bool) []T {
|
||||
var r []T
|
||||
for _, t := range arr {
|
||||
if fn(t) {
|
||||
for i, t := range arr {
|
||||
if fn(t, i) {
|
||||
r = append(r, t)
|
||||
}
|
||||
}
|
||||
|
@ -271,3 +271,12 @@ func Shift[T any](a *[]T) (T, int) {
|
|||
var r T
|
||||
return r, 0
|
||||
}
|
||||
|
||||
func IndexOf[T comparable](a []T, v T) int {
|
||||
for i, t := range a {
|
||||
if t == v {
|
||||
return i
|
||||
}
|
||||
}
|
||||
return -1
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ func TestReduce(t *testing.T) {
|
|||
func TestFilter(t *testing.T) {
|
||||
type args struct {
|
||||
arr []int
|
||||
fn func(int) bool
|
||||
fn func(int, int) bool
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
|
@ -102,7 +102,7 @@ func TestFilter(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
name: "t1",
|
||||
args: args{arr: number.Range(1, 10, 1), fn: func(i int) bool {
|
||||
args: args{arr: number.Range(1, 10, 1), fn: func(i, index int) bool {
|
||||
return i > 4
|
||||
}},
|
||||
want: number.Range(5, 10, 1),
|
||||
|
|
2
internal/pkg/cache/cache.go
vendored
2
internal/pkg/cache/cache.go
vendored
|
@ -128,7 +128,7 @@ func CategoriesTags(ctx context.Context, t ...int) []models.TermsMy {
|
|||
r, err := categoryAndTagsCaches.GetCache(ctx, time.Second, ctx)
|
||||
logs.ErrPrintln(err, "get category err")
|
||||
if len(t) > 0 {
|
||||
return slice.Filter(r, func(my models.TermsMy) bool {
|
||||
return slice.Filter(r, func(my models.TermsMy, i int) bool {
|
||||
return helper.Or(t[0] == constraints.Tag, "post_tag", "category") == my.Taxonomy
|
||||
})
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
)
|
||||
|
||||
func colorSchemeCss(h *wp.Handle) string {
|
||||
s := slice.Filter([]string{calColorSchemeCss(h), calSidebarTextColorCss(h), calHeaderBackgroundColorCss(h)}, func(s string) bool {
|
||||
s := slice.Filter([]string{calColorSchemeCss(h), calSidebarTextColorCss(h), calHeaderBackgroundColorCss(h)}, func(s string, i int) bool {
|
||||
return s != ""
|
||||
})
|
||||
if len(s) < 1 {
|
||||
|
|
|
@ -17,8 +17,7 @@
|
|||
<div id="primary" class="content-area">
|
||||
<main id="main" class="site-main">
|
||||
{{ range $k,$v:=.posts}}
|
||||
<article id="post-{{$v.Id}}"
|
||||
class="post-{{$v.Id}} post {{if $v.Thumbnail.Path}}has-post-thumbnail{{end}} type-post status-publish format-standard hentry category">
|
||||
<article id="post-{{$v.Id}}" class="post-{{$v.Id}} post {{if $v.Thumbnail.Path}}has-post-thumbnail{{end}} type-post status-publish format-standard hentry category">
|
||||
|
||||
<header class="entry-header">
|
||||
<div class="entry-meta">
|
||||
|
|
Loading…
Reference in New Issue
Block a user