| % use Mojo::JSON qw/encode_json/; |
| % my $match = stash('match') || {}; |
| % my %match_data = %$match; |
| % delete @match_data{qw/snippet startMore endMore field/}; |
| % my $text_sigle = $match->{textSigle} // join('/', $match->{corpusID}, $match->{docID}, $match->{textID}); |
| % my $id = $text_sigle . '#' . $match->{matchID}; |
| % # Legacy: |
| % my $layer_infos = $match->{layerInfos} // $match->{layerInfo} // 'cnx/c=spans corenlp/ne=tokens corenlp/p=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens tt/l=tokens tt/p=tokens xip/c=spans'; |
| <li data-match-id="<%= $match->{matchID} %>" |
| data-text-sigle="<%= $text_sigle %>" |
| data-available-info="<%= $layer_infos %>" |
| data-info="<%== b(encode_json(\%match_data))->decode->xml_escape %>" |
| id="<%= $id %>"<% if (current_route eq 'match') { %> class="active"<% } =%>> |
| %# This should be done using JavaScript |
| % my ($show_sigle, $flip) = ('', stash('flip') // 'flip'); |
| % if ($text_sigle ne (stash('last_sigle') // '')) { |
| % $show_sigle = $text_sigle; |
| % stash(last_sigle => $text_sigle); |
| % $flip = $flip eq 'flip' ? 'flop' : 'flip'; |
| % stash(flip => $flip); |
| % } |
| <div class="meta <%= $flip %>"><%= $show_sigle %></div> |
| <div class="match-main"> |
| <div class="match-wrap"> |
| %# --- Snippet |
| <div class="snippet<%= $match->{startMore} ? ' startMore' : '' %><%= $match->{endMore} ? ' endMore' : '' %>"><%== $match->{snippet} %></div> |
| </div> |
| </div> |
| %# -- Reference string |
| <p class="ref">\ |
| <% if ($match->{title}) { %><strong><%= $match->{title} %></strong><% }; %>\ |
| <%= $match->{author} ? ' ' . loc('by') . ' ' . $match->{author} : '' %>\ |
| % if ($match->{pubDate}) { |
| (<time datetime="<%= $match->{pubDate} %>"><%= $match->{pubDate} %></time>)\ |
| % }; |
| <span class="sigle">[<%= $text_sigle %>]</span> \ |
| </p> |
| </li> |