Ctrl K
ComunidadGuías…

store/custom_icon.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package store

import (
	"strings"

	"github.com/pkg/errors"

	"github.com/usememos/memos/markdown/parser"
)

func validateEmojiIcon(emoji string) error {
	if !parser.IsEmoji(emoji) {
		return errors.New("icon must contain one fully qualified emoji")
	}
	return nil
}

func validateLucideIcon(name string) error {
	if len(name) == 0 || len(name) > 128 {
		return errors.New("icon name must contain 1 to 128 bytes")
	}
	for part := range strings.SplitSeq(name, "-") {
		if part == "" {
			return errors.New("icon name must use lowercase kebab-case")
		}
		for _, char := range part {
			if (char < 'a' || char > 'z') && (char < '0' || char > '9') {
				return errors.New("icon name must use lowercase kebab-case")
			}
		}
	}
	return nil
}