Example #1
0
        private void AddNotClosedInnerTag(Dictionary <string, int> tagToPosition, MdTag innerTag, MdNode mdNode)
        {
            var lenght = sourceString.Length - tagToPosition[innerTag.TagName];

            mdNode.InnerMdNodes.Add(new MdNode(sourceString.Substring(tagToPosition[innerTag.TagName], lenght),
                                               new EmptyTag()));
        }
Example #2
0
 public MdTreeBuilder(MdLine mdLine)
 {
     currentMdLine   = mdLine;
     sourceString    = mdLine.Content;
     supportedMdTags = mdLine.SupportedMdTags;
     currentMdTag    = MdLineHelper.DetermineCurrentTag(mdLine);
 }
Example #3
0
 private void UpdateCurrentTag()
 {
     currentPosition++;
     if (currentPosition < sourceString.Length)
     {
         currentMdTag = TagHelper.DetermineCurrentTag(sourceString, currentPosition, supportedMdTags);
     }
 }
Example #4
0
        private int FindPositionTagEnd()
        {
            var offset = currentMdTag.FindTagEnd(sourceString, currentPosition);

            if (offset == currentPosition)
            {
                currentMdTag = new EmptyTag();
                offset       = currentMdTag.FindTagEnd(sourceString, currentPosition);
            }
            return(offset);
        }
Example #5
0
        private MdNode GetMdNodeWithInnerNodes()
        {
            var start = currentPosition;
            var mdNodeWithInnerNodes = GetInnerNodes();

            substringStartPosition = currentPosition;
            if (IsTagСorrectlyClosed(start))
            {
                currentMdTag = TagHelper.DetermineCurrentTag(sourceString, currentPosition, supportedMdTags);
                return(mdNodeWithInnerNodes);
            }
            return(CreateRightMdNode(mdNodeWithInnerNodes));
        }
Example #6
0
        private void AddInnerMdNode(Dictionary <string, int> tagToPosition, MdTag innerTag, int position, MdNode mdNode)
        {
            var start     = tagToPosition[innerTag.TagName] + innerTag.TagName.Length;
            var lenghtTag = (innerTag.TagName.Length == 0) ? 1 : innerTag.TagName.Length;
            var lenght    = position - start;

            if (innerTag is EmptyTag)
            {
                lenght++;
            }
            mdNode.InnerMdNodes.Add(new MdNode(sourceString.Substring(start, lenght), innerTag));
            currentPosition = position + lenghtTag;
        }
Example #7
0
        private string WrapMdNodeWithoutInnerTag(string words, MdTag tag)
        {
            var htmlTag = typeMdToHtml[tag.GetType()];

            htmlTag.AddCssProperties(css);

            if (tag is HyperlinkTag)
            {
                var index = words.IndexOf("](", StringComparison.Ordinal);
                var text  = words.Substring(0, index);
                var href  = words.Substring(index + 2);
                htmlTag.AddHref(href, basicUri);
                words = text;
            }

            var startTag = htmlTag.StartTag;
            var endTag   = htmlTag.EndTag;

            return($"{startTag}{words}{endTag}");
        }
Example #8
0
 public HeaderLine(MdTag headerTag)
 {
     HeaderTag = headerTag;
 }
Example #9
0
 public MdNode(MdTag mdTag)
 {
     MdTag   = mdTag;
     Content = "";
 }
Example #10
0
 public MdNode(string content, MdTag mdTag)
 {
     Content = content;
     MdTag   = mdTag;
 }
Example #11
0
 public MdTreeBuilder(string sourceString)
 {
     this.sourceString = sourceString;
     currentMdTag      = TagHelper.DetermineCurrentTag(sourceString, currentPosition, supportedMdTags);
 }