protected SpanNode CreateSpanNode()

in sources/Google.Solutions.Mvvm/Format/MarkdownDocument.cs [584:612]


            protected SpanNode CreateSpanNode(Token token, IEnumerable<Token> remainder)
            {
                if (token.Type == TokenType.Text)
                {
                    return new TextNode(token.Value, true);
                }

                if ((token.Value == "_" || token.Value == "*" || token.Value == "**" || token.Value == "`") &&
                    remainder.FirstOrDefault() is Token next &&
                    next != null! &&
                    next.Type == TokenType.Text &&
                    next.Value.Length >= 1 &&
                    !NonLineBreakingWhitespace.Contains(next.Value[0]))
                {
                    return new EmphasisNode(token.Value);
                }
                else if (token.Value == "[" &&
                    remainder
                        .SkipWhile(t => t != new Token(TokenType.Delimiter, "]"))
                        .Skip(1)
                        .FirstOrDefault() == new Token(TokenType.Delimiter, "("))
                {
                    return new LinkNode();
                }
                else
                {
                    return new TextNode(token.Value, false);
                }
            }