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())); }
public MdTreeBuilder(MdLine mdLine) { currentMdLine = mdLine; sourceString = mdLine.Content; supportedMdTags = mdLine.SupportedMdTags; currentMdTag = MdLineHelper.DetermineCurrentTag(mdLine); }
private void UpdateCurrentTag() { currentPosition++; if (currentPosition < sourceString.Length) { currentMdTag = TagHelper.DetermineCurrentTag(sourceString, currentPosition, supportedMdTags); } }
private int FindPositionTagEnd() { var offset = currentMdTag.FindTagEnd(sourceString, currentPosition); if (offset == currentPosition) { currentMdTag = new EmptyTag(); offset = currentMdTag.FindTagEnd(sourceString, currentPosition); } return(offset); }
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)); }
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; }
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}"); }
public HeaderLine(MdTag headerTag) { HeaderTag = headerTag; }
public MdNode(MdTag mdTag) { MdTag = mdTag; Content = ""; }
public MdNode(string content, MdTag mdTag) { Content = content; MdTag = mdTag; }
public MdTreeBuilder(string sourceString) { this.sourceString = sourceString; currentMdTag = TagHelper.DetermineCurrentTag(sourceString, currentPosition, supportedMdTags); }