public override Node VisitStyle(StyleNode style) { return(style.Style switch { Style.Bold => VisitTag("strong"), Style.Italic => VisitTag("em"), Style.Mono => VisitTag("code"), Style.MultiMono => VisitTag("pre"), Style.Strikethru => VisitTag("del"), Style.Underline => VisitTag("u"), Style.BlockQuote => VisitTag("blockquote"), Style.InlineCode => VisitTag("code"), Style.Spoiler => Visit(() => base.VisitStyle(style), "<span class=\"d-spoiler\">", "</span>"), _ => throw new ArgumentException($"Unknown style: {style}"), });
public Node Visit(Node node) { return(node switch { TextNode text => VisitText(text), StyleNode style => VisitStyle(style), NewlineNode nl => VisitNewline(nl), CodeNode code => VisitCode(code), LinkNode link => VisitLink(link), MentionNode mention => VisitMention(mention), ChannelNode channel => VisitChannel(channel), RoleNode role => VisitRole(role), CustomEmojiNode emoji => VisitCustomEmoji(emoji), ContainerNode container => VisitContainer(container), _ => throw new ArgumentException($"Unknown node type: {node.GetType()}."), });