コード例 #1
0
        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);
            }
        }
コード例 #2
0
 private void PushTrackerStack(TagBlockTracker tracker)
 {
     _trackerStack.Push(tracker);
 }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 private void PushTrackerStack(TagBlockTracker tracker)
 {
     _currentParentTagName = tracker.TagName;
     _trackerStack.Push(tracker);
 }
コード例 #5
0
 private void PushTrackerStack(TagBlockTracker tracker)
 {
     _currentParentTagName = tracker.TagName;
     _trackerStack.Push(tracker);
 }