Refactor backend SVG package and add tests (#26335)
Introduce a well-tested `svg.Normalize` function. Make `RenderHTML` faster and more stable.
This commit is contained in:
parent
12c249c5ca
commit
5db4c8db93
4 changed files with 113 additions and 40 deletions
|
@ -6,28 +6,20 @@ package html
|
|||
// ParseSizeAndClass get size and class from string with default values
|
||||
// If present, "others" expects the new size first and then the classes to use
|
||||
func ParseSizeAndClass(defaultSize int, defaultClass string, others ...any) (int, string) {
|
||||
if len(others) == 0 {
|
||||
return defaultSize, defaultClass
|
||||
}
|
||||
|
||||
size := defaultSize
|
||||
_size, ok := others[0].(int)
|
||||
if ok && _size != 0 {
|
||||
size = _size
|
||||
}
|
||||
|
||||
if len(others) == 1 {
|
||||
return size, defaultClass
|
||||
}
|
||||
|
||||
class := defaultClass
|
||||
if _class, ok := others[1].(string); ok && _class != "" {
|
||||
if defaultClass == "" {
|
||||
class = _class
|
||||
} else {
|
||||
class = defaultClass + " " + _class
|
||||
if len(others) >= 1 {
|
||||
if v, ok := others[0].(int); ok && v != 0 {
|
||||
size = v
|
||||
}
|
||||
}
|
||||
class := defaultClass
|
||||
if len(others) >= 2 {
|
||||
if v, ok := others[1].(string); ok && v != "" {
|
||||
if class != "" {
|
||||
class += " "
|
||||
}
|
||||
class += v
|
||||
}
|
||||
}
|
||||
|
||||
return size, class
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue