public string Encode(string input) { if (input.IsEmpty()) { return(String.Empty); } var arrays = FencedStrings(input); var outputBuilder = new StringBuilder(); arrays.Each(output => { if (output.IndexOf(Ticks, StringComparison.Ordinal) == 0 && output.EndsWith(Ticks) == false) { output = _paragraphEndLocator.LocateAndReplace(output); } output = _encoder.Encode(output); outputBuilder.Append(output); }); var items = _itemParser.ParseContent(outputBuilder.ToString()).ToArray(); var paragraphedItems = _paragraphAggregator.CollapseContentItems(items); return(_itemHtmlRenderer.Render(paragraphedItems)); }
public IDictionary <string, object> Parse(string input) { if (input.IsEmpty()) { return(new Dictionary <string, object>()); } var arrays = FencedStrings(input); var outputBuilder = new StringBuilder(); arrays.Each(output => { // Carrier added a \t for paragraphs for the look and feel // but this doesn't play well with Markdown formatting output = output.Replace("\n\n\t", "\n"); if (output.IndexOf(Ticks, StringComparison.Ordinal) == 0 && output.EndsWith(Ticks) == false) { output = _paragraphEndLocator.LocateAndReplace(output); } output = _encoder.Encode(output); outputBuilder.Append(output); }); var emailLog = _itemParser.ParseEmailLogForJson(outputBuilder.ToString()); return(_objectRenderer.Render(emailLog)); }