sub end()

in lib/ES/DocsParser.pm [118:141]


sub end {
#===================================
    my ( $self, $tag ) = @_;
    return unless $self->{stack};
    my $current = $self->{stack}[-1];

    if ( $current->[0] eq 'breadcrumbs' ) {
        pop @{ $self->{stack} } if $tag eq 'div';
        return;
    }

    if ( $current->[0] eq 'title' ) {
        pop @{ $self->{stack} } if $tag =~ /^h\d/;
        return;
    }
    
    return unless $current->[0] eq 'ignore';
    while ( my $old = pop @{ $current->[-1] } ) {
        last if $old eq $tag;
    }
    if ( @{ $current->[-1] } == 0 ) {
        pop @{ $self->{stack} };
    }
}