From 8294dced6c51472390c13786ab4cace4bcf8c7d4 Mon Sep 17 00:00:00 2001 From: Alexander <alxndr+github@gmail.com> Date: Wed, 18 Dec 2013 11:06:36 -0500 Subject: [PATCH] tweak RSS elements for W3C compatibility installation needs to have contact_email set in the admin settings in order for that installation to have truly valid feeds --- app/views/list/list.rss.erb | 9 ++++----- app/views/topics/show.rss.erb | 11 +++++------ config/routes.rb | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/app/views/list/list.rss.erb b/app/views/list/list.rss.erb index a9c949c14..eaf7c608b 100644 --- a/app/views/list/list.rss.erb +++ b/app/views/list/list.rss.erb @@ -2,22 +2,21 @@ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <% lang = SiteSetting.find_by_name('default_locale').try(:value) %> + <% site_email = SiteSetting.find_by_name('contact_email').try(:value) %> <title><%= @title %></title> <link><%= @link %></link> <description><%= @description %></description> - <% if lang %> - <language><%= lang %></language> - <% end %> + <%= "<language>#{lang}</language>" if lang %> <lastBuildDate><%= @topic_list.topics.first.created_at.rfc2822 %></lastBuildDate> <atom:link href="<%= @atom_link %>" rel="self" type="application/rss+xml" /> <% @topic_list.topics.each do |topic| %> <% topic_url = Discourse.base_url + topic.relative_url -%> <item> <title><%= topic.title %></title> - <author><%= "@#{topic.user.username} (#{topic.user.name})" -%></author> + <author><%= "#{site_email} (@#{topic.user.username}#{" #{topic.user.name}" if topic.user.name.present?})" -%></author> <category><%= topic.category.name %></category> <description><![CDATA[ - <p><%= t('author_wrote', author: link_to(topic.user.name, topic.user)).html_safe %></p> + <p><%= t('author_wrote', author: link_to(topic.user.name, userpage_url(topic.user))).html_safe %></p> <blockquote> <%= topic.posts.first.cooked.html_safe %> </blockquote> diff --git a/app/views/topics/show.rss.erb b/app/views/topics/show.rss.erb index 85d1e2e57..61be3b86a 100644 --- a/app/views/topics/show.rss.erb +++ b/app/views/topics/show.rss.erb @@ -3,23 +3,22 @@ <channel> <% topic_url = Discourse.base_url + @topic_view.relative_url %> <% lang = SiteSetting.find_by_name('default_locale').try(:value) %> + <% site_email = SiteSetting.find_by_name('contact_email').try(:value) %> <title><%= @topic_view.title %></title> <link><%= topic_url %></link> <description><%= @topic_view.posts.first.raw %></description> - <% if lang %> - <language><%= lang %></language> - <% end %> + <%= "<language>#{lang}</language>" if lang %> <lastBuildDate><%= @topic_view.topic.created_at.rfc2822 %></lastBuildDate> <category><%= @topic_view.topic.category.name %></category> <atom:link href="<%= topic_url %>.rss" rel="self" type="application/rss+xml" /> <% @topic_view.recent_posts.each do |post| %> <% next unless post.user %> <item> - <title><%= @topic_view.title %> at <%= post.created_at %></title> - <author><%= "@#{post.user.username} (#{post.user.name})" -%></author> + <title><%= @topic_view.title %></title> + <author><%= "#{site_email} (@#{post.user.username}#{" #{post.user.name}" if post.user.name.present?})" -%></author> <description><![CDATA[ <% post_url = Discourse.base_url + post.url %> - <p><%= t('author_wrote', author: link_to(post.user.name, post.user)).html_safe %></p> + <p><%= t('author_wrote', author: link_to(post.user.name, userpage_url(post.user))).html_safe %></p> <blockquote> <%= post.cooked.html_safe %> </blockquote> diff --git a/config/routes.rb b/config/routes.rb index d91aa1793..36fb3dbcf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -140,7 +140,7 @@ Discourse::Application.routes.draw do get 'user_preferences' => 'users#user_preferences_redirect' get 'users/:username/private-messages' => 'user_actions#private_messages', constraints: {username: USERNAME_ROUTE_FORMAT} get 'users/:username/private-messages/:filter' => 'user_actions#private_messages', constraints: {username: USERNAME_ROUTE_FORMAT} - get 'users/:username' => 'users#show', constraints: {username: USERNAME_ROUTE_FORMAT} + get 'users/:username' => 'users#show', as: 'userpage', constraints: {username: USERNAME_ROUTE_FORMAT} put 'users/:username' => 'users#update', constraints: {username: USERNAME_ROUTE_FORMAT} get 'users/:username/preferences' => 'users#preferences', constraints: {username: USERNAME_ROUTE_FORMAT}, as: :email_preferences get 'users/:username/preferences/email' => 'users#preferences', constraints: {username: USERNAME_ROUTE_FORMAT}