mirror of https://github.com/usememos/memos.git
Merge e623e0fce6 into b8029c70ef
This commit is contained in:
commit
b4da89bab1
|
|
@ -47,6 +47,17 @@ func isValidTagRune(r rune) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
// Allow marks (non-spacing, spacing combining, enclosing)
|
||||
// This covers variation selectors (e.g. VS16 \uFE0F) and combining marks (e.g. Keycap \u20E3, accents)
|
||||
if unicode.IsMark(r) {
|
||||
return true
|
||||
}
|
||||
|
||||
// Allow Zero Width Joiner (ZWJ) for emoji sequences
|
||||
if r == '\u200D' {
|
||||
return true
|
||||
}
|
||||
|
||||
// Allow specific ASCII symbols for tag structure
|
||||
// Underscore: word separation (snake_case)
|
||||
// Hyphen: word separation (kebab-case)
|
||||
|
|
|
|||
|
|
@ -168,6 +168,18 @@ func TestTagParser(t *testing.T) {
|
|||
expectedTag: "test🚀",
|
||||
shouldParse: true,
|
||||
},
|
||||
{
|
||||
name: "emoji with VS16",
|
||||
input: "#test👁️", // Eye + VS16
|
||||
expectedTag: "test👁️",
|
||||
shouldParse: true,
|
||||
},
|
||||
{
|
||||
name: "emoji with ZWJ sequence",
|
||||
input: "#family👨👩👧👦", // Family ZWJ sequence
|
||||
expectedTag: "family👨👩👧👦",
|
||||
shouldParse: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
|
|
|||
Loading…
Reference in New Issue