public void createMdNodeWithInnerTagFromMdLine(MdLine input, MdNode expectedInnerMdNode) { var builder = new MdTreeBuilder(input); var mdNode = builder.BuildTree().Root.InnerMdNodes[0]; mdNode.InnerMdNodes.ShouldAllBeEquivalentTo(expectedInnerMdNode); }
public MdTreeBuilder(MdLine mdLine) { currentMdLine = mdLine; sourceString = mdLine.Content; supportedMdTags = mdLine.SupportedMdTags; currentMdTag = MdLineHelper.DetermineCurrentTag(mdLine); }
public void createMdTreeFromMdLine(MdLine input, MdNode expectedMdNode) { var builder = new MdTreeBuilder(input); var tree = builder.BuildTree(); tree.Root.InnerMdNodes[0].ShouldBeEquivalentTo(expectedMdNode); }
public static void HandleEmptyLine(ref MdLine currentLine, string line, List <MdLine> mdLines) { if (currentLine.Content != null) { mdLines.Add(currentLine); currentLine = new TextLine(); } }
public static void HandleHeaderLine(ref MdLine currentLine, string line, List <MdLine> mdLines) { if (currentLine.Content != null) { mdLines.Add(currentLine); } var headerTag = TagHelper.DetermineCurrentTag(line, 0, headerTags); var headerLine = new HeaderLine(headerTag); headerLine.AddContent(line); mdLines.Add(headerLine); currentLine = new TextLine(); }
public static bool IsCodeLine(string line, MdLine currentLine) { var codeTag = new CodeTag(); if (line.Length < codeTag.TagName.Length) { return(false); } if (currentLine is CodeLine && TagHelper.IsSubstringEqualTag(line, 0, codeTag.TagName)) { return(true); } return(TagHelper.IsSubstringEqualTag(line, 0, codeTag.TagName) && !IsEmptyLine(line)); }
public static void HandleCodeLine(ref MdLine currentLine, string line, List <MdLine> mdLines) { if (currentLine is CodeLine) { currentLine.AddContent(line); } else { if (currentLine.Content != null) { mdLines.Add(currentLine); } currentLine = new CodeLine(line); } }
public static void HandleOrderedListLine(ref MdLine currentLine, string line, List <MdLine> mdLines) { if (currentLine is OrderedListsLine) { currentLine.AddContent(line); } else { if (currentLine.Content != null) { mdLines.Add(currentLine); currentLine = new OrderedListsLine(); currentLine.AddContent(line); } else { currentLine = new OrderedListsLine(); currentLine.AddContent(line); } } }
public static MdTag DetermineCurrentTag(MdLine mdLine) { if (mdLine is ListItemLine) { return(new ListItemTag()); } if (mdLine is TextLine) { return(new ParagraphTag()); } if (mdLine is HeaderLine) { return((mdLine as HeaderLine).HeaderTag); } if (mdLine is CodeLine) { return(new CodeTag()); } var startPosition = 0; return(TagHelper.DetermineCurrentTag(mdLine.Content, startPosition, mdLine.SupportedMdTags)); }