mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 20:26:35 +08:00
0736611423
The hidden tags are usually filtered out by the serializer, but the noscript view uses the topic objects instead of the serialized objects.
160 lines
6.1 KiB
Plaintext
160 lines
6.1 KiB
Plaintext
<%- if include_crawler_content? %>
|
|
|
|
<%= server_plugin_outlet "topic_list_header" %>
|
|
|
|
<%- if SiteSetting.tagging_enabled && @tag_id %>
|
|
<h1>
|
|
<%= link_to "#{Discourse.base_url}/tag/#{@tag_id}", itemprop: 'item' do %>
|
|
<span itemprop='name'><%= @tag_id %></span>
|
|
<% end %>
|
|
</h1>
|
|
<% end %>
|
|
|
|
<% if @category %>
|
|
<h1>
|
|
<% if @category.parent_category %>
|
|
<%= link_to @category.parent_category.url, itemprop: 'item' do %>
|
|
<span itemprop='name'><%= @category.parent_category.name %></span>
|
|
<% end %>
|
|
|
|
<% end %>
|
|
|
|
<%= link_to @category.url, itemprop: 'item' do %>
|
|
<span itemprop='name'><%= @category.name %></span>
|
|
<% end %>
|
|
</h1>
|
|
<br/>
|
|
|
|
<% if params[:page].to_i == 0 && @subcategories.present? %>
|
|
<% @subcategories.each do |subcategory| %>
|
|
<a href='<%= subcategory.url %>'>
|
|
<span itemprop='name'><%= subcategory.name %></span>
|
|
</a>
|
|
<% if subcategory.description.present? %>
|
|
<span itemprop='description'><%= subcategory.description_text %></span>
|
|
<% end %>
|
|
<% end %>
|
|
<br/>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<div class="topic-list-container" itemscope itemtype='http://schema.org/ItemList'>
|
|
<meta itemprop='itemListOrder' content='http://schema.org/ItemListOrderDescending'>
|
|
|
|
<table class='topic-list'>
|
|
|
|
<thead>
|
|
<tr>
|
|
<th><%= t 'js.topic.title' %></th>
|
|
<th></th>
|
|
<th class="replies"><%= t 'js.replies' %></th>
|
|
<th class="views"><%= t 'js.views' %></th>
|
|
<th><%= t 'js.activity' %></th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<% @list.topics.each_with_index do |t,i| %>
|
|
<tr class="topic-list-item">
|
|
<td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
|
<meta itemprop='position' content='<%= i + 1 %>'>
|
|
<span class="link-top-line">
|
|
<a itemprop='url' href='<%= t.url %>' class='title raw-link raw-topic-link'><%= t.title %></a>
|
|
</span>
|
|
<div class="link-bottom-line">
|
|
<% if (!@category || @category.has_children?) && t.category && !t.category.uncategorized? %>
|
|
<a href='<%= t.category.url %>' class='badge-wrapper bullet'>
|
|
<span class='badge-category-bg' style='background-color: #<%= t.category.color %>'></span>
|
|
<span class='badge-category clear-badge'>
|
|
<span class='category-name'><%= t.category.name %></span>
|
|
</span>
|
|
</a>
|
|
<% end %>
|
|
<% if tags = t.visible_tags(guardian) %>
|
|
<div class="discourse-tags">
|
|
<% tags.each_with_index do |tag, index| %>
|
|
<a href='<%= tag.full_url %>' class='discourse-tag'><%= tag.name %></a>
|
|
<% if index < tags.size - 1 %>, <% end %>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<% if t.pinned_until && (t.pinned_until > Time.zone.now) && (t.pinned_globally || @list.category) && t.excerpt %>
|
|
<p class='excerpt'>
|
|
<%= t.excerpt.html_safe %>
|
|
</p>
|
|
<% end %>
|
|
</td>
|
|
<td class='posters'>
|
|
<% t.posters.each do |poster| %>
|
|
<a href="<%= Discourse.base_url %>/u/<%= poster.user.username %>" class="<%= poster.extras %>">
|
|
<img width="25" height="25" src="<%= poster.user.avatar_template.gsub('{size}', '25') %>" class="avatar" title='<%= h(poster.name_and_description) %>' aria-label='<%= h(poster.name_and_description) %>'>
|
|
</a>
|
|
<% end %>
|
|
</td>
|
|
<td class="replies">
|
|
<span class='posts' title='<%= t 'posts' %>'><%= t.posts_count - 1 %></span>
|
|
</td>
|
|
<td class="views">
|
|
<span class='views' title='<%= t 'views' %>'><%= t.views %></span>
|
|
</td>
|
|
<td>
|
|
<%= I18n.l(t.last_posted_at || t.created_at, format: :date_only) %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
</tbody>
|
|
|
|
</table>
|
|
</div>
|
|
|
|
<% if @list.topics.length > 0 && @list.more_topics_url %>
|
|
<div class="navigation" role='navigation' itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
|
<% if params[:page].to_i > 0 %>
|
|
<span itemprop='name'><a href='<%= @list.prev_topics_url %>' rel='prev' itemprop='url'><%= t 'prev_page' %></a> </span>
|
|
<% end %>
|
|
<% if @list.topics.size == @list.per_page %>
|
|
<span itemprop='name'><b><a href='<%= @list.more_topics_url %>' rel='next' itemprop='url'><%= t 'next_page' %></a></b></span>
|
|
<% end %>
|
|
</div>
|
|
|
|
<% content_for :head do %>
|
|
<% if params[:page].to_i > 0 %>
|
|
<link rel="prev" href="<%= @list.prev_topics_url -%>">
|
|
<% end %>
|
|
<link rel="next" href="<%= @list.more_topics_url -%>">
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<%- end %> <!-- include_crawler_content? -->
|
|
|
|
<% if @rss %>
|
|
<% content_for :head do %>
|
|
<%= auto_discovery_link_tag(:rss, "#{Discourse.base_url}/posts.rss", title: I18n.t("rss_description.posts")) %>
|
|
<%= auto_discovery_link_tag(:rss, { action: "#{@rss}_feed", params: @params || {} }, title: I18n.t("rss_description.#{@rss_description}")) %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @category %>
|
|
<% content_for :head do %>
|
|
<%= auto_discovery_link_tag(:rss, { action: :category_feed }, rel: 'alternate nofollow', title: t('rss_topics_in_category', category: @category.name)) %>
|
|
<%= raw crawlable_meta_data(title: @category.name, description: @category.description, image: @category.uploaded_logo&.url.presence) %>
|
|
<% end %>
|
|
<% elsif @tag_id %>
|
|
<% content_for :head do %>
|
|
<%= raw crawlable_meta_data(title: @title, description: @description_meta) %>
|
|
<% end %>
|
|
<% else %>
|
|
<% content_for :head do %>
|
|
<%= raw crawlable_meta_data(title: SiteSetting.title, description: SiteSetting.site_description) %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @title %>
|
|
<% content_for :title do %><%= @title %><% end %>
|
|
<% elsif @category %>
|
|
<% content_for :title do %><%= @category.name %> - <%= SiteSetting.title %><% end %>
|
|
<% elsif params[:page].to_i > 1 %>
|
|
<% content_for :title do %><%=t 'page_num', num: params[:page].to_i + 1 %> - <%= SiteSetting.title %><% end %>
|
|
<% end %>
|