Ejemplo n.º 1
0
        public ElementInfo GetClosingElementInfo(ISpanElement currentSpanElement)
        {
            var position = CurrentPosition;

            for (; position < markdown.Length; position++)
            {
                if (currentSpanElement != null)
                {
                    var elementInfo = GetClosingTag(position, currentSpanElement.GetClosingIndicator());
                    if (elementInfo != null)
                    {
                        var positionToCheck = elementInfo.OpeningIndex + elementInfo.Length;
                        if (positionToCheck < markdown.Length && markdown.ElementAt(positionToCheck) != ' ')
                        {
                            var potentialClosingTag = String.Concat(currentSpanElement.GetClosingIndicator(),
                                                                    markdown.ElementAt(positionToCheck));
                            if (!IsSpanElementClosing(potentialClosingTag, positionToCheck))
                            {
                                return(null);
                            }
                        }

                        return(elementInfo);
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 2
0
        public HtmlTag WrapTag(ElementInfo elementInfo, ISpanElement spanElement)
        {
            var tagContent = markdown.Substring(CurrentPosition, elementInfo.OpeningIndex - CurrentPosition);

            CurrentPosition = elementInfo.ClosingIndex + 1;
            if (tagContent == String.Empty)
            {
                tagContent  = String.Concat(spanElement.GetOpeningIndicator(), spanElement.GetClosingIndicator());
                spanElement = null;
            }
            return(new HtmlTag(tagContent, spanElement));
        }
Ejemplo n.º 3
0
        public ISpanElement DetermineSpanElement()
        {
            var          position           = CurrentPosition;
            ISpanElement currentSpanElement = null;

            foreach (var spanElement in spanElements)
            {
                var elementInfo = GetOpeningTag(position, spanElement.GetOpeningIndicator());
                if (elementInfo != null)
                {
                    if (elementInfo.Length > 0)
                    {
                        currentSpanElement = spanElement;
                        CurrentPosition    = elementInfo.ClosingIndex + 1;
                    }
                }
            }

            return(currentSpanElement);
        }
Ejemplo n.º 4
0
 public bool Contains(ISpanElement spanElement)
 {
     return(false);
 }
Ejemplo n.º 5
0
 public bool Contains(ISpanElement spanElement)
 {
     return(possibleInnerSpanElements.Contains(spanElement.GetType()));
 }
Ejemplo n.º 6
0
 public HtmlTag(string content, ISpanElement spanElement = null)
 {
     Content     = content;
     SpanElement = spanElement;
 }