private static IEnumerable <SourceBlock> MergeConsecutiveBlocksOfSameType(IEnumerable <SourceBlock> blocks) { SourceBlock previousBlock = null; foreach (var block in blocks) { if (previousBlock?.Code == block.Code) { previousBlock = new SourceBlock(previousBlock.Lines.Concat(block.Lines)); continue; } else if (previousBlock != null) { yield return(previousBlock); } previousBlock = block; } if (previousBlock != null) { yield return(previousBlock); } }
public SourceDocument(string markdownContent) { Blocks = SourceBlock.GetBlocks(SourceLine.GetSourceLines(markdownContent)) as IReadOnlyList <SourceBlock>; }