|
|
|
@ -160,51 +160,49 @@ internal static partial class MarkdownParser
|
|
|
|
|
|
|
|
|
|
private static readonly IMatcher<MarkdownNode> StandardEmojiNodeMatcher = new RegexMatcher<MarkdownNode>(
|
|
|
|
|
new Regex(
|
|
|
|
|
"""
|
|
|
|
|
(
|
|
|
|
|
# Country flag emoji (two regional indicator surrogate pairs)
|
|
|
|
|
(?:\uD83C[\uDDE6-\uDDFF]){2}|
|
|
|
|
|
# Digit emoji (digit followed by enclosing mark)
|
|
|
|
|
\d\p{Me}|
|
|
|
|
|
# Surrogate pair
|
|
|
|
|
\p{Cs}{2}|
|
|
|
|
|
# Miscellaneous characters
|
|
|
|
|
[
|
|
|
|
|
\u2600-\u2604
|
|
|
|
|
\u260E\u2611
|
|
|
|
|
\u2614-\u2615
|
|
|
|
|
\u2618\u261D\u2620
|
|
|
|
|
\u2622-\u2623
|
|
|
|
|
\u2626\u262A
|
|
|
|
|
\u262E-\u262F
|
|
|
|
|
\u2638-\u263A
|
|
|
|
|
\u2640\u2642
|
|
|
|
|
\u2648-\u2653
|
|
|
|
|
\u265F-\u2660
|
|
|
|
|
\u2663
|
|
|
|
|
\u2665-\u2666
|
|
|
|
|
\u2668\u267B
|
|
|
|
|
\u267E-\u267F
|
|
|
|
|
\u2692-\u2697
|
|
|
|
|
\u2699
|
|
|
|
|
\u269B-\u269C
|
|
|
|
|
\u26A0-\u26A1
|
|
|
|
|
\u26A7
|
|
|
|
|
\u26AA-\u26AB
|
|
|
|
|
\u26B0-\u26B1
|
|
|
|
|
\u26BD-\u26BE
|
|
|
|
|
\u26C4-\u26C5
|
|
|
|
|
\u26C8
|
|
|
|
|
\u26CE-\u26CF
|
|
|
|
|
\u26D1
|
|
|
|
|
\u26D3-\u26D4
|
|
|
|
|
\u26E9-\u26EA
|
|
|
|
|
\u26F0-\u26F5
|
|
|
|
|
\u26F7-\u26FA
|
|
|
|
|
\u26FD
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
""", DefaultRegexOptions),
|
|
|
|
|
@"(" +
|
|
|
|
|
// Country flag emoji (two regional indicator surrogate pairs)
|
|
|
|
|
@"(?:\uD83C[\uDDE6-\uDDFF]){2}|" +
|
|
|
|
|
// Digit emoji (digit followed by enclosing mark)
|
|
|
|
|
@"\d\p{Me}|" +
|
|
|
|
|
// Surrogate pair
|
|
|
|
|
@"\p{Cs}{2}|" +
|
|
|
|
|
// Miscellaneous characters
|
|
|
|
|
@"[" +
|
|
|
|
|
@"\u2600-\u2604" +
|
|
|
|
|
@"\u260E\u2611" +
|
|
|
|
|
@"\u2614-\u2615" +
|
|
|
|
|
@"\u2618\u261D\u2620" +
|
|
|
|
|
@"\u2622-\u2623" +
|
|
|
|
|
@"\u2626\u262A" +
|
|
|
|
|
@"\u262E-\u262F" +
|
|
|
|
|
@"\u2638-\u263A" +
|
|
|
|
|
@"\u2640\u2642" +
|
|
|
|
|
@"\u2648-\u2653" +
|
|
|
|
|
@"\u265F-\u2660" +
|
|
|
|
|
@"\u2663" +
|
|
|
|
|
@"\u2665-\u2666" +
|
|
|
|
|
@"\u2668\u267B" +
|
|
|
|
|
@"\u267E-\u267F" +
|
|
|
|
|
@"\u2692-\u2697" +
|
|
|
|
|
@"\u2699" +
|
|
|
|
|
@"\u269B-\u269C" +
|
|
|
|
|
@"\u26A0-\u26A1" +
|
|
|
|
|
@"\u26A7" +
|
|
|
|
|
@"\u26AA-\u26AB" +
|
|
|
|
|
@"\u26B0-\u26B1" +
|
|
|
|
|
@"\u26BD-\u26BE" +
|
|
|
|
|
@"\u26C4-\u26C5" +
|
|
|
|
|
@"\u26C8" +
|
|
|
|
|
@"\u26CE-\u26CF" +
|
|
|
|
|
@"\u26D1" +
|
|
|
|
|
@"\u26D3-\u26D4" +
|
|
|
|
|
@"\u26E9-\u26EA" +
|
|
|
|
|
@"\u26F0-\u26F5" +
|
|
|
|
|
@"\u26F7-\u26FA" +
|
|
|
|
|
@"\u26FD" +
|
|
|
|
|
@"]" +
|
|
|
|
|
@")", DefaultRegexOptions),
|
|
|
|
|
(_, m) => new EmojiNode(m.Groups[1].Value)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|