%# ID, title, corpusID, author, pubDate, textClass
<li data-corpus-id="<%= $match->{corpusID} %>" \
data-doc-id="<%= $match->{docID} %>" \
data-match-id="<%= $match->{ID} %>" \
id="<%= $match->{corpusID} %>-<%= $match->{docID} %>-<%= $match->{ID} %>"\
<% if (current_route eq 'match') { %> class="active"<% } =%>
>
%#
%# -- Match information (snippet, morph table, tree information etc.)
  <div>
    <div class="snippet<%= $match->{startMore} ? ' startMore' : '' %><%= $match->{endMore} ? ' endMore' : '' %>"><%== $match->{snippet} %></div>
    <div class="tokenInfo"></div>
%#    <div class="treeInfo"></div>
  </div>
%#
%# -- Reference string
  <p>\
% if ($match->{title}) {
<strong><%= $match->{title} %></strong>\
% };
<%= $match->{author} ? ' by ' . $match->{author}  : '' %><% if ($match->{title} || $match->{author}) { %>;<% } =%>
 published on <%= date_format $match->{pubDate} %>\
 as <%= $match->{docID} %> (<%= $match->{corpusID} %>)\
</p>
%#
%# -- Action buttons
  <ul class="action right">
% if (current_route ne 'match') {
    <li class="close" title="Close"><a href="#"><i class="fa fa-toggle-up"></i></a></li>
%#  <li class="open" title="Open in new tab"><%= link_to 'match', { corpus_id => $match->{corpusID}, doc_id => $match->{docID}, match_id => $match->{ID} }, target => '_blank', begin %><i class="fa fa-external-link-square"></i><% end %></li>
    <li class="open" title="Open in new tab"><a href="#<%= $match->{corpusID} %>-<%= $match->{docID} %>-<%= $match->{ID} %>" target="_blank"><i class="fa fa-external-link-square"></i></a></li>
% };
    <li onclick="showTable(this)" title="Annotations"><i class="fa fa-info-circle"></i></li>
%#    <li onclick="showTree(this, 'xip', 'c')" title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
%#    <li title="Remember"><i class="fa fa-star-o"></i></li>
  </ul>
</li>
