private NavigationItem ParseListItemBlock(ListItemBlock listItemBlock)
        {
            DisplayLink           rootLink = default;
            List <NavigationItem> children = new List <NavigationItem>();

            foreach (var listItemChild in listItemBlock)
            {
                switch (listItemChild)
                {
                case ParagraphBlock paragraphBlock:
                    rootLink = ParseParagraph(paragraphBlock);
                    break;

                case ListBlock listBlock:
                    children.AddRange(ParseListBlock(listBlock));
                    break;

                default:
                    throw new InvalidOperationException(
                              $"Document contains invalid navigation document syntax at {listItemBlock.ToPositionText()}. Expected paragraph.");
                }
            }

            if (rootLink.Equals(default(DisplayLink)))
            {
                return(default);