anchor.diff:                                          (member tag x :test #'string=
                                                         :key #'post-tags))
                                         posts)))
  +            (write-index posts (format nil "tag/~a.html" tag))))))
  +
  +(defun render-by-month ()
  +  ;; TODO: Make this actually work. Add to render-indices.
  +  (let ((months (remove-duplicates (mapcar #'post-date *posts*) :test #'string=)))
  +    (loop for month in months
  +       do (let ((posts (remove-if-not (lambda (x)
  +                                        (from-month month x)
  +                                        posts))))
               (render-index posts)))))
  -
  -(defun render-by-month ())
   
   (defun render-indices ()
     (render-by-20)
  -  (render-by-tag)
  -  (render-by-month))
  +  (render-by-tag))
  
positive.code:        collect (list :url (format nil "~a/month/~a.html" (domain *config*) month)
                       :name month))))
  
  (defun render-index (posts)
    (loop for post in posts
       collect (list :url (format nil "~a/posts/~a.html"
                                  (domain *config*) (post-slug post))
                     :title (post-title post)
                     :date (post-date post)
                     :contents (post-contents post))))
  
  (defun render-by-20 ()
    (flet ((by-20 (posts start)
  
negative.code:     (let ((posts (sort *posts* #'string> :key #'post-date)))
        (loop for i from 1 then (1+ i)
           until (> (* (1- i) 20) (length posts))
           do (write-index (by-20 posts i) (format nil "~d.html" i))))))
  
  (defun render-by-tag ()
    (let ((tags (remove-duplicates (mapcan #'post-tags *posts*) :test #'string=)))
  