MarkdownDeep.Markdown.SplitUserSections C# (CSharp) Method

SplitUserSections() public static method

public static SplitUserSections ( string markdown ) : List
markdown string
return List
        public static List<string> SplitUserSections(string markdown)
        {
            // Build blocks
            var md = new MarkdownDeep.Markdown();
            md.UserBreaks = true;

            // Process blocks
            var blocks = md.ProcessBlocks(markdown);

            // Create sections
            var Sections = new List<string>();
            int iPrevSectionOffset = 0;
            for (int i = 0; i < blocks.Count; i++)
            {
                var b = blocks[i];
                if (b.blockType==BlockType.user_break)
                {
                    // Get the offset of the section
                    int iSectionOffset = b.lineStart;

                    // Add section
                    Sections.Add(markdown.Substring(iPrevSectionOffset, iSectionOffset - iPrevSectionOffset).Trim());

                    // Next section starts on next line
                    if (i + 1 < blocks.Count)
                    {
                        iPrevSectionOffset = blocks[i + 1].lineStart;
                        if (iPrevSectionOffset==0)
                            iPrevSectionOffset = blocks[i + 1].contentStart;
                    }
                    else
                        iPrevSectionOffset = markdown.Length;
                }
            }

            // Add the last section
            if (markdown.Length > iPrevSectionOffset)
            {
                Sections.Add(markdown.Substring(iPrevSectionOffset).Trim());
            }

            return Sections;
        }