public string ToHtml(Card card) { var html = new StringBuilder(); switch (LayoutType) { case Models.LayoutType.Important: html.Append("<p><strong>"); break; case Models.LayoutType.Block: html.Append("<p>"); break; case Models.LayoutType.Inline: default: break; } html.Append(EffectType.Html()); var prefix = string.Empty; foreach (var token in Tokens) { if (token.TokenType != EffectTokenType.Inline_Text) { html.Append(prefix); } html.Append(token.ToHtml(card)); if (token.TokenType == EffectTokenType.Inline_Prefix) { prefix = string.Empty; } else { prefix = " "; } } switch (LayoutType) { case Models.LayoutType.Important: html.Append("</strong></p>"); break; case Models.LayoutType.Block: html.Append("</p>"); break; case Models.LayoutType.Inline: default: break; } return(html.ToString()); }