/// <summary> /// Used to construct a non-list item node. /// </summary> /// <param name="parser">The parent parser.</param> /// <param name="type">Identifies the block type.</param> /// <param name="text">The block text (without any leading wikitext characters).</param> public WikipediaBlock(WikipediaParser parser, WikipediaBlockType type, string text) { this.parser = parser; this.Type = type; this.Text = text; this.Indent = 0; this.NodeDepth = 0; this.Children = new List <WikipediaBlock>(); }
/// <summary> /// Determines whether a block type is a list. /// </summary> /// <param name="type">The block type.</param> /// <returns><c>true</c> for lists.</returns> private static bool IsListType(WikipediaBlockType type) { switch (type) { case WikipediaBlockType.RootList: case WikipediaBlockType.BulletList: case WikipediaBlockType.NumberedList: case WikipediaBlockType.Definition: return(true); default: return(false); } }
/// <summary> /// Returns the list type required for the given list item type. /// </summary> /// <param name="itemType">The item type.</param> /// <returns>The parent node type.</returns> private static WikipediaBlockType GetParentType(WikipediaBlockType itemType) { switch (itemType) { case WikipediaBlockType.Bullet: return(WikipediaBlockType.BulletList); case WikipediaBlockType.Numbered: return(WikipediaBlockType.NumberedList); case WikipediaBlockType.Term: case WikipediaBlockType.Definition: return(WikipediaBlockType.DefinitionList); default: // Should never happen. throw new AssertException(); } }