<commit_before><li class="playlist listitem level<%= recursive_level %> listitem<%= item.id %>" id="playlist_item_<%= item.id %>" data-itemid="<%= item.id %>">
<% if item.actual_object.present? -%>
  <!-- actual_object_type <%= item.actual_object_type %> -->
  <!-- this is the H3 that the javascript TOC preview uses -->
  <h3 class="scale1-5 new-h<%= recursive_level+1 %>">
    <span class="number"><a name="playlist_item_<%= item.id %>"><%= parent_index == '' ? "#{index}" : "#{parent_index}.#{index}" %></a></span>
    <span class="hcontent"><%= item.name %></span>
  </h3>
  <% if item.actual_object_type == 'Default' %>
    <%= link_to item.actual_object.url, item.actual_object.url, :target => '_blank' %>
  <% end -%>
  <% if item.actual_object_type == 'Media' %>
    <%= link_to media_url(item.actual_object), media_url(item.actual_object), :target => '_blank' %>
  <% end -%>
  <div class="item_description scale0-8"><%= raw item.formatted(:description) %></div>
  <% if item.notes.to_s != '' && item.public_notes -%>
    <div class="notes scale0-8">
      <b class="scale0-8">Notes:</b>
      <%= item.formatted(:notes) %>
    </div>
  <% end -%>
  <div class="clear"></div>
  <% if item.actual_object_type == 'TextBlock' -%>
    <%= render :partial => 'shared/objects/textblock_print', :locals => { :text_block => item.actual_object } %>
    <div class="page-break"></div>
  <% elsif item.actual_object_type == 'Collage' -%>
    <%= render :partial => 'shared/objects/collage_print', :locals => { :collage => @preloaded_collages["collage#{item.actual_object_id}"] } %>
    <div class="page-break"></div>
  <% elsif item.actual_object_type == 'Case' -%>
    <%= render :partial => 'shared/objects/case_obj_print', :locals => { :case_obj => @preloaded_cases["case#{item.actual_object_id}"] } %>
    <div class="page-break"></div>
  <% elsif item.actual_object_type == 'Playlist' && recursive_level < 5 && item.actual_object.present? -%>
    <section class="playlists">
      <ul>
        <% item.actual_object.playlist_items.each_with_index do |nested_item, nested_index| -%>
          <%= render :partial => 'shared/objects/playlist_item_print',
            :locals => { :item => nested_item,
            :parent_index => parent_index == '' ? index : "#{parent_index}.#{index}",
            :index => nested_index + 1,
            :recursive_level => recursive_level + 1 } %>
        <% end -%>
      </ul>
    </section>
  <% end -%>
<% else -%>
  <h3 class="missing_item"><!-- TODO: See above change for new-h? -->
  <span class="number"><%= parent_index == '' ? "#{index}" : "#{parent_index}.#{index}" %></span>
  <%= item.name %>
  <span class="missing_item">[This resource no longer exists on H2O because its owner deleted it.]</span>
  </h3>
<% end -%>
</li><commit_msg>Enforce new H tag levels to fix the print export TOC<commit_after><li class="playlist listitem level<%= recursive_level %> listitem<%= item.id %>" id="playlist_item_<%= item.id %>" data-itemid="<%= item.id %>">
<% h_tag = "h#{recursive_level+1}" %>
<% if item.actual_object.present? -%>
  <!-- actual_object_type <%= item.actual_object_type %> -->
  <!-- this is the H3 that the javascript TOC preview uses -->
  <<%= h_tag %> class="scale1-5 new-<%= h_tag %>">
    <span class="number"><a name="playlist_item_<%= item.id %>"><%= parent_index == '' ? "#{index}" : "#{parent_index}.#{index}" %></a></span>
    <span class="hcontent"><%= item.name %></span>
  </<%= h_tag %>>
  <% if item.actual_object_type == 'Default' %>
    <%= link_to item.actual_object.url, item.actual_object.url, :target => '_blank' %>
  <% end -%>
  <% if item.actual_object_type == 'Media' %>
    <%= link_to media_url(item.actual_object), media_url(item.actual_object), :target => '_blank' %>
  <% end -%>
  <div class="item_description scale0-8"><%= raw item.formatted(:description) %></div>
  <% if item.notes.to_s != '' && item.public_notes -%>
    <div class="notes scale0-8">
      <b class="scale0-8">Notes:</b>
      <%= item.formatted(:notes) %>
    </div>
  <% end -%>
  <div class="clear"></div>
  <% if item.actual_object_type == 'TextBlock' -%>
    <%= render :partial => 'shared/objects/textblock_print', :locals => { :text_block => item.actual_object } %>
    <div class="page-break"></div>
  <% elsif item.actual_object_type == 'Collage' -%>
    <%= render :partial => 'shared/objects/collage_print', :locals => { :collage => @preloaded_collages["collage#{item.actual_object_id}"] } %>
    <div class="page-break"></div>
  <% elsif item.actual_object_type == 'Case' -%>
    <%= render :partial => 'shared/objects/case_obj_print', :locals => { :case_obj => @preloaded_cases["case#{item.actual_object_id}"] } %>
    <div class="page-break"></div>
  <% elsif item.actual_object_type == 'Playlist' && recursive_level < 5 && item.actual_object.present? -%>
    <section class="playlists">
      <ul>
        <% item.actual_object.playlist_items.each_with_index do |nested_item, nested_index| -%>
          <%= render :partial => 'shared/objects/playlist_item_print',
            :locals => { :item => nested_item,
            :parent_index => parent_index == '' ? index : "#{parent_index}.#{index}",
            :index => nested_index + 1,
            :recursive_level => recursive_level + 1 } %>
        <% end -%>
      </ul>
    </section>
  <% end -%>
<% else -%>
  <<%= h_tag %> class="missing_item">
  <span class="number"><%= parent_index == '' ? "#{index}" : "#{parent_index}.#{index}" %></span>
  <%= item.name %>
  <span class="missing_item">[This resource no longer exists on H2O because its owner deleted it.]</span>
  </<%= h_tag %>>
<% end -%>
</li>
{'fraction_non_alphanumeric': 0.21646557842441447, 'fraction_numerical': 0.0056777856635912, 'mean_word_length': 3.769035532994924, 'pattern_counts': {'":': 0, '<': 153, '<?xml version=': 0, '>': 185, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3829880', 'n_tokens_mistral': 2060, 'n_tokens_neox': 1948, 'n_words': 359}