%# ID, title, corpusID, author, pubDate, textClass
<li data-corpus-id="<%= $match->{corpusID} %>"
    data-doc-id="<%= $match->{docID} %>"
    data-match-id="<%= $match->{ID} %>"
    id="<%= $match->{ID} %>"
<% if (current_route eq 'match') { %>class="active"<% } %>
    >
  <div>
    <div class="snippet"><%== $match->{snippet} %></div>
    <div class="tokenInfo"></div>
  </div>
  <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>
  <ul class="action right">
% if (current_route ne 'match') {
    <li class="close" title="Close"><a href="#"><i class="fa fa-toggle-up"></a></i></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->{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 title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
%#    <li title="Remember"><i class="fa fa-star-o"></i></li>
  </ul>
</li>
