Example #1
0
 private List <string> Replace(List <string> transformedMarkdown, ItemMarkdown itemMarkdown,
                               int indexOpenintTags, int indexEndingTag)
 {
     transformedMarkdown[indexOpenintTags] = itemMarkdown.OpeningTag;
     transformedMarkdown[indexEndingTag]   = itemMarkdown.EndingTag;
     return(transformedMarkdown);
 }
Example #2
0
        private string Blocked(ItemMarkdown itemMarkdown)
        {
            var blocedSeparator = "";

            for (int i = 0; i < itemMarkdown.Separator.Length; i++)
            {
                blocedSeparator += '\\' + itemMarkdown.BlockedSeparator[0];
            }
            return(blocedSeparator);
        }
Example #3
0
        public static List <string> PutLineInList(string markdown, ItemMarkdown itemMarkdown)
        {
            var transformedMarkdown = new List <string>()
            {
                markdown
            };

            transformedMarkdown = SelectTags(transformedMarkdown, itemMarkdown.Separator);
            if (itemMarkdown.BlockedSeparator == null)
            {
                return(transformedMarkdown);
            }
            foreach (var separator in itemMarkdown.BlockedSeparator)
            {
                transformedMarkdown = SelectTags(transformedMarkdown, separator, itemMarkdown.Separator);
            }
            return(transformedMarkdown);
        }
Example #4
0
        private string Tagging(List <string> transformedMarkdown, ItemMarkdown itemMarkdown)
        {
            var indexOpeningTags = new Stack <int>();
            var isBlocked        = false;

            for (int i = 0; i < transformedMarkdown.Count; i++)
            {
                if (transformedMarkdown[i] == itemMarkdown.Separator && IsTag(transformedMarkdown, i))
                {
                    if (isBlocked)
                    {
                        transformedMarkdown[i] = Blocked(itemMarkdown);
                        continue;
                    }
                    if (isOpeningTag(transformedMarkdown, i))
                    {
                        indexOpeningTags.Push(i);
                        continue;
                    }
                    if (isEndingTag(transformedMarkdown, i))
                    {
                        if (indexOpeningTags.Count == 0)
                        {
                            continue;
                        }
                        transformedMarkdown = Replace(transformedMarkdown, itemMarkdown, indexOpeningTags.Pop(), i);
                    }
                }
                if (itemMarkdown.BlockedSeparator != null && itemMarkdown.BlockedSeparator.Contains(transformedMarkdown[i]) &&
                    IsTag(transformedMarkdown, i))
                {
                    isBlocked = !isBlocked;
                }
            }
            return(ListToString(transformedMarkdown));
        }