mirror of
https://github.com/discourse/discourse.git
synced 2024-12-14 19:13:40 +08:00
d9a02d1336
This reverts commit20780a1eee
. * SECURITY: re-adds accidentally reverted commit: 03d26cd6: ensure embed_url contains valid http(s) uri * when the merge commite62a85cf
was reverted, git chose the2660c2e2
parent to land on instead of the03d26cd6
parent (which contains security fixes)
169 lines
6.4 KiB
Plaintext
169 lines
6.4 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 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='name' content='<%= t.title %>'>
|
|
<meta itemprop='url' content='<%= t.url %>'>
|
|
<% if t.image_url.present? %>
|
|
<meta itemprop='image' content='<%= t.image_url %>'>
|
|
<% end %>
|
|
<meta itemprop='position' content='<%= i + 1 %>'>
|
|
<span class="link-top-line">
|
|
<a 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 t.tags %>
|
|
<div class="discourse-tags">
|
|
<% t.tags.each_with_index do |tag, index| %>
|
|
<a href='<%= tag.full_url %>' class='discourse-tag'><%= tag.name %></a>
|
|
<% if index < t.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| %>
|
|
<% if poster.moreCount %>
|
|
<a class="posters-more-count"><% poster.moreCount %></a>
|
|
<% else %>
|
|
<a href="<%= Discourse.base_url %>/u/<%= poster.user.username %>" class="<%= poster.extraClasses %>">
|
|
<img width="25" height="25" src="<%= poster.user.avatar_template.gsub('{size}', '25') %>" class="avatar" title='<%= h("#{poster.user.username} - #{poster.description}") %>' aria-label='<%= h("#{poster.user.username} - #{poster.description}") %>'>
|
|
</a>
|
|
<% end %>
|
|
<% end %>
|
|
</td>
|
|
<td class="replies">
|
|
<span class='posts' title='<%= t 'posts' %>'><%= t.posts_count %></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 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" }, title: I18n.t("rss_description.#{@rss}")) %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @category %>
|
|
<% content_for :head do %>
|
|
<%= auto_discovery_link_tag(:rss, { action: :category_feed }, 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 %>
|