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);
}
}