ProcessBlocks() private method

private ProcessBlocks ( string str ) : List
str string
return List
Example #1
0
        // Split the markdown into sections, one section for each
        // top level heading
        public static List <string> SplitSections(string markdown)
        {
            // Build blocks
            var md = new Markdown();

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

            // Create sections
            var sections      = new List <string>();
            var sectionOffset = 0;

            foreach (var b in blocks)
            {
                if (!md.IsSectionHeader(b))
                {
                    continue;
                }
                // Get the offset of the section
                var iSectionOffset = b.LineStart;

                // Add section
                sections.Add(markdown.Substring(sectionOffset, iSectionOffset - sectionOffset));

                sectionOffset = iSectionOffset;
            }

            // Add the last section
            if (markdown.Length > sectionOffset)
            {
                sections.Add(markdown.Substring(sectionOffset));
            }

            return(sections);
        }
Example #2
0
        // Split the markdown into sections, one section for each
        // top level heading
        public static List <string> SplitSections(string markdown)
        {
            // Build blocks
            var md = new Markdown();

            // 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 (md.IsSectionHeader(b))
                {
                    // Get the offset of the section
                    int iSectionOffset = b.lineStart;

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

                    iPrevSectionOffset = iSectionOffset;
                }
            }

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

            return(Sections);
        }
Example #3
0
        // Split the markdown into sections, one section for each
        // top level heading
        public static List <string> SplitUserSections(string markdown)
        {
            // Build blocks
            var md = new Markdown {
                UserBreaks = true
            };

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

            // Create sections
            var sections      = new List <string>();
            var sectionOffset = 0;

            for (var i = 0; i < blocks.Count; i++)
            {
                var b = blocks[i];
                if (b.BlockType != BlockType.user_break)
                {
                    continue;
                }
                // Get the offset of the section
                var iSectionOffset = b.LineStart;

                // Add section
                sections.Add(markdown.Substring(sectionOffset, iSectionOffset - sectionOffset).Trim());

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

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

            return(sections);
        }
Example #4
0
        // Split the markdown into sections, one section for each
        // top level heading
        public static List <string> SplitUserSections(string markdown)
        {
            // Build blocks
            var md = new 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);
        }
Example #5
0
        // Split the markdown into sections, one section for each
        // top level heading
        public static List<string> SplitUserSections(string markdown)
        {
            // Build blocks
            var md = new 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;
        }
Example #6
0
        // Split the markdown into sections, one section for each
        // top level heading
        public static List<string> SplitSections(string markdown)
        {
            // Build blocks
            var md = new Markdown();

            // 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 (md.IsSectionHeader(b)) {
                    // Get the offset of the section
                    int iSectionOffset = b.lineStart;

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

                    iPrevSectionOffset = iSectionOffset;
                }
            }

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

            return Sections;
        }