% 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};
<li data-match-id="<%= $match->{matchID} %>"
    data-text-sigle="<%= $text_sigle %>"

    %# TODO: This needs to be retrieved per match 
    data-available-info="<%= $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' %>"
    data-info="<%== b(encode_json(\%match_data))->decode->xml_escape %>"
    id="<%= $id %>"\
<% if (current_route eq 'match') { %> class="active"<% } =%>>
  <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>
