private void TrackTagBlock(Block childBlock, int depth) { var tagName = GetTagName(childBlock); // Don't want to track incomplete tags that have no tag name. if (string.IsNullOrWhiteSpace(tagName)) { return; } if (IsEndTag(childBlock)) { var parentTracker = _trackerStack.Count > 0 ? _trackerStack.Peek() : null; if (parentTracker != null && !parentTracker.IsTagHelper && depth == parentTracker.Depth && string.Equals(parentTracker.TagName, tagName, StringComparison.OrdinalIgnoreCase)) { PopTrackerStack(); } } else if (!VoidElements.Contains(tagName) && !IsSelfClosing(childBlock)) { // If it's not a void element and it's not self-closing then we need to create a tag // tracker for it. var tracker = new TagBlockTracker(tagName, isTagHelper: false, depth: depth); PushTrackerStack(tracker); } }
private void PushTrackerStack(TagBlockTracker tracker) { _trackerStack.Push(tracker); }
private void TrackTagBlock(Block childBlock) { var tagName = GetTagName(childBlock); // Don't want to track incomplete tags that have no tag name. if (string.IsNullOrWhiteSpace(tagName)) { return; } if (IsEndTag(childBlock)) { var parentTracker = _trackerStack.Count > 0 ? _trackerStack.Peek() : null; if (parentTracker != null && !parentTracker.IsTagHelper && string.Equals(parentTracker.TagName, tagName, StringComparison.OrdinalIgnoreCase)) { PopTrackerStack(); } } else if (!VoidElements.Contains(tagName) && !IsSelfClosing(childBlock)) { // If it's not a void element and it's not self-closing then we need to create a tag // tracker for it. var tracker = new TagBlockTracker(tagName, isTagHelper: false); PushTrackerStack(tracker); } }
private void PushTrackerStack(TagBlockTracker tracker) { _currentParentTagName = tracker.TagName; _trackerStack.Push(tracker); }