/// <summary> /// Checks if all text elements inside the given container are superscript. /// </summary> /// <returns> <c>true</c> if all text is superscript (level 1); <c>false</c> otherwise. </returns> private bool AllTextIsSuperscript(IInlineContainer container, int superscriptLevel = 0) { foreach (var inline in container.Inlines) { if (inline is SuperscriptTextInline textInline) { // Remove any nested superscripts. if (AllTextIsSuperscript(textInline, superscriptLevel + 1) == false) { return(false); } } else if (inline is IInlineContainer) { // Remove any superscripts. if (AllTextIsSuperscript((IInlineContainer)inline, superscriptLevel) == false) { return(false); } } else if (inline is IInlineLeaf && !ParseHelpers.IsMarkdownBlankOrWhiteSpace(((IInlineLeaf)inline).Text)) { if (superscriptLevel != 1) { return(false); } } } return(true); }