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));
        }
Beispiel #2
0
        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));
        }