%# 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"<% } %>
    >
  <div>
    <div class="snippet"><%== $match->{snippet} %></div>
    <div class="tokenInfo"></div>
%#    <div class="treeInfo"></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->{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>
