<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Late to the Party: Google Sitemap generation with Rails</title>
    <link>http://cwilliams.textdriven.com/articles/2005/07/18/google-sitemap-generation-with-rails</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Ruby. Rails. Stuff.</description>
    <item>
      <title>Google Sitemap generation with Rails</title>
      <description>&lt;p&gt;Tristan at IP Angels, has a nice little post on &lt;a href="http://blog.ipangels.com/blog/_archives/2005/6/18/951620.html"&gt;generating Google sitemaps with Ruby on Rails&lt;/a&gt;. The post gives a great example of generating a sitemap for a blog. I can&amp;rsquo;t get access to the latest Typo snapshot to create a patch yet, but here&amp;rsquo;s what I think it would look like to add this into &lt;a href="http://typo.leetsoft.com/trac/"&gt;Typo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First, edit the xml_controller.rb to add a new action, sitemap.&lt;/p&gt;
&lt;code&gt;
&lt;pre&gt;&lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;sitemap&lt;/span&gt;
    &lt;span class="attribute"&gt;@headers&lt;/span&gt;&lt;span class="punct"&gt;['&lt;/span&gt;&lt;span class="string"&gt;Content-Type&lt;/span&gt;&lt;span class="punct"&gt;']&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;text/xml; charset=utf-8&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
    &lt;span class="attribute"&gt;@articles&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Article&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;find&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:all&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:conditions&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;published=1&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="symbol"&gt;:order&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;created_at DESC&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Next, create a sitemap.rxml file in app/views/xml.&lt;/p&gt;&lt;pre&gt;&lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;instruct!&lt;/span&gt; &lt;span class="symbol"&gt;:xml&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:version=&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;1.0&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="symbol"&gt;:encoding&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;UTF-8&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
&lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;urlset&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:xmlns&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;http://www.google.com/schemas/sitemap/0.84&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
  &lt;span class="comment"&gt;# First entry is the main entry to the site&lt;/span&gt;
  &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;url&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;loc&lt;/span&gt; &lt;span class="ident"&gt;server_url_for&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:controller&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;articles&lt;/span&gt;&lt;span class="punct"&gt;")&lt;/span&gt;
    &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;changefreq&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;daily&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
    &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;priority&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;0.9&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;

  &lt;span class="keyword"&gt;for&lt;/span&gt; &lt;span class="ident"&gt;entry&lt;/span&gt; &lt;span class="keyword"&gt;in&lt;/span&gt; &lt;span class="attribute"&gt;@articles&lt;/span&gt;
    &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;url&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
      &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;loc&lt;/span&gt; &lt;span class="ident"&gt;article_url&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;entry&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
      &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;changefreq&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;weekly&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
      &lt;span class="ident"&gt;xml&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;priority&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;0.5&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
    &lt;span class="keyword"&gt;end&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;
&lt;p&gt;And remember, I just whipped this up without trying it.&amp;nbsp; So..&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"Beware of bugs in the above code; I have only proved it correct, not tried it" - Donald E. Knuth &lt;/em&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 18 Jul 2005 15:43:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:83638157c197e60f038c13d943d236fe</guid>
      <author>cwilliams</author>
      <link>http://cwilliams.textdriven.com/articles/2005/07/18/google-sitemap-generation-with-rails</link>
      <category>Programming</category>
      <category>Web design</category>
      <category>Ruby</category>
      <category>Rails</category>
      <category>google</category>
      <category>sitemap</category>
      <category>Rails</category>
      <category>ruby</category>
      <category>typo</category>
    </item>
    <item>
      <title>"Google Sitemap generation with Rails" by David</title>
      <description>Works great here: &lt;a&gt;http://www.dancin.co.uk/xml/sitemap/&lt;/a&gt;</description>
      <pubDate>Fri, 14 Apr 2006 12:13:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:9d04fff9-2c4f-4238-bc91-3e0c879bf7cd</guid>
      <link>http://cwilliams.textdriven.com/articles/2005/07/18/google-sitemap-generation-with-rails#comment-319</link>
    </item>
    <item>
      <title>"Google Sitemap generation with Rails" by Matt</title>
      <description>Hmm, couldnt get it to work;

&lt;a&gt;http://www.matthewhutchinson.net/xml/sitemap/&lt;/a&gt;</description>
      <pubDate>Fri, 17 Mar 2006 15:23:34 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:49291c68-a67b-4aca-8e4d-c99e0d666bdf</guid>
      <link>http://cwilliams.textdriven.com/articles/2005/07/18/google-sitemap-generation-with-rails#comment-246</link>
    </item>
  </channel>
</rss>
