private void ParseLineGroup(
            ParseInput input
            )
        {
            ParseResult result;

            if (MarkdownHeading.CanParseFrom(input))
            {
                result = MarkdownHeading.ParseFrom(input);
            }
            else if (MarkdownHorizontalRule.CanParseFrom(input))
            {
                result = MarkdownHorizontalRule.ParseFrom(input);
            }
            else if (MarkdownQuote.CanParseFrom(input))
            {
                result = MarkdownQuote.ParseFrom(input);
            }
            else if (MarkdownList.CanParseFrom(input))
            {
                result = MarkdownList.ParseFrom(input);
            }
            else
            {
                result = MarkdownParagraph.ParseFrom(input);
            }
            foreach (IHtmlable entry in result.GetContent())
            {
                Content.AddLast(entry);
            }
        }
            public static ParseResult ParseFrom(
                ParseInput lines,
                bool innerParagraph
                )
            {
                ParseResult result = new ParseResult();
                ParseResult innerResult;
                IHtmlable   returnedElement;

                // If the list items content contains another list
                if (MarkdownList.CanParseFrom(lines))
                {
                    innerResult     = MarkdownList.ParseFrom(lines);
                    returnedElement = new MarkdownListItem(
                        innerResult.GetContent()
                        );
                }
                else
                {
                    // Otherwise, if the item content should go in a paragraph
                    if (innerParagraph)
                    {
                        innerResult     = MarkdownParagraph.ParseFrom(lines);
                        returnedElement = new MarkdownListItem(
                            innerResult.GetContent()
                            );
                    }
                    else
                    {
                        // line item content should not go in a paragraph
                        returnedElement = new MarkdownListItem(
                            MarkdownParser.ParseInnerText(lines)
                            );
                    }
                }
                result.Success = true;
                result.AddContent(
                    returnedElement
                    );
                return(result);
            }