<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>resources/blog.rb</filename>
    </added>
    <added>
      <filename>resources/image.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -15,5 +15,13 @@ class Publisher::Models::Default
   def self.associate( domain ) ; end
 
   def name ; get( :key ) ; end
+  
+  def tags
+    case tags = get(:tags)
+    when Array then tags
+    when String then tags.split(',').map(&amp;:strip)
+    else []
+    end
+  end
 
 end
\ No newline at end of file</diff>
      <filename>models/default.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,10 +8,14 @@ class Publisher::Views::Default &lt; Hoshi::View[:html4_transitional]
   
   def initialize( request )
     @request = request; super
-    file = :db / domain / :theme / singular + '.rb'
+    [ singular, :default ].each { |mixin| site_mixin( mixin ) }
+  end
+  
+  def site_mixin( name )
+    file = :db / domain / :theme / name + '.rb'
     extend( eval( File.read( file ) ) ) if File.exist?( file ) 
   end
-    
+  
   def stylesheet( *paths )
     paths.each do |path|
       href = ( path =~ /^http/ ? path : &quot;/css/#{path}.css&quot; )</diff>
      <filename>views/default.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,12 +2,37 @@ class Publisher::Views::Story &lt; Publisher::Views::Default
 
   def show( story )
     layout {
-      h1 story.title if story.title
-      case story.format
-      when 'html' then raw( story.content )
-      when 'textile' then textile( story.content )
-      else p(&quot;Unsupported format.&quot;)
-      end
+      div( :class =&gt; :story ) {
+        h1 story.title if story.title
+        content( story ) { story.content }
+      }
+    }
+  end
+  
+  def list( stories )
+    layout {
+      ul( :class =&gt; :stories ) {
+        stories.sort_by(&amp;:published).reverse.each { |story|
+          li( :class =&gt; :story ) {
+            h4 { a( story.title, :href =&gt; paths(:story).show(story.key) ) } 
+            byline( story )
+            content( story ) { story.summary }
+            p { a( &quot;Read more ...&quot;, :href =&gt; paths(:story).show(story.key))}
+    }}}}
+  end
+  
+  def content( story )
+    case story.format
+    when 'html' then raw( yield )
+    when 'textile' then textile( yield )
+    else p(&quot;Unsupported format.&quot;)
+    end
+  end
+  
+  def byline( story )
+    p( :class =&gt; :byline ) {
+     raw 'By ' ; span( story.author, :class =&gt; :author )
+     raw ' on ' ; span( story.published.strftime(&quot;%b-%d, %Y&quot;), :class =&gt; :published )
     }
   end
   </diff>
      <filename>views/story.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8d05ddd9d1186b0d1d60792c5c6238e708fb4842</id>
    </parent>
  </parents>
  <author>
    <name>Dan Yoder</name>
    <email>dan@zeraweb.com</email>
  </author>
  <url>http://github.com/dyoder/publisher/commit/93f1bb1d8b922174990d394b636666019be3f9f0</url>
  <id>93f1bb1d8b922174990d394b636666019be3f9f0</id>
  <committed-date>2009-10-05T00:26:39-07:00</committed-date>
  <authored-date>2009-10-05T00:26:39-07:00</authored-date>
  <message>Added support for images and tag-based blogs.</message>
  <tree>d1442cfd29f259222fc53723bd39fa8622716ef8</tree>
  <committer>
    <name>Dan Yoder</name>
    <email>dan@zeraweb.com</email>
  </committer>
</commit>
