anchor.diff:  (defmethod process-change ((status (eql :modified)) path &key)
     (let ((old (find-content-by-path path))
           (new (construct ctype (read-content path))))
  -    (setf (gethash (page-url old) coleslaw::*site*) new)
  +    (delete-document old)
       ;; TODO:
  -    ;; Iterate over tags in new, setting old to new in each tag index's content.
  -    ;; If there are new tags/date, add it to relevant indices.
  -    ;; If tags/date are removed, remove from relevant indices.
  -    ))
  +    ;; Iterate over tags in new, replacing old with new in each tag index's content.
  +    ;; If there are new tags/date, add it to relevant indices (or create them).
  +    ;; If tags/date are removed, remove from relevant indices (or delete them).
  +    (add-document new)
  +    (write-document new)))
   
   (defmethod process-change ((status (eql :added)) path &key ctype)
  -  (let ((new (construct ctype (read-content path))))
  +  (let* ((new (construct ctype (read-content path)))
  +         (tags (content-tags new))
  +         (month (subseq (content-date new) 0 7)))
  +    (maybe-add-month-index new month)
  +    (dolist (tag tags)
  +      (maybe-add-tag-index new tag))
       (add-document new)
       ;; FIXME: New posts won't have prev/next links populated.
       (write-document new)))
  -
  -(defun delete-document (document)
  -  "Given a DOCUMENT, delete it from the staging directory and in-memory DB."
  -  (let ((url (page-url document)))
  -    (delete-file (rel-path (staging-dir *config*) (namestring url)))
  -    (remhash (page-url document) coleslaw::*site*)))
   
   (defun coleslaw::compile-blog (staging)
     "lulz. Do it live. DO IT ALL LIVE."
  
positive.code: 
  ;;;; Utils
  
  (defun find-tag-index (tag)
    (find (tag-slug tag) (find-all 'tag-index) :key #'index-slug :test #'equal))
  
  
negative.code:         (when-let (ctype (find extension ctypes :test #'class-name-p))
            (call-next-method status path :ctype ctype))))))
  
  ;; TODO: If the last content from a given month or with a given tag
  ;; is deleted, delete the index. Unfortunately, the tag/month links
  ;; won't be updated on all indexes since we only regenerate them for new posts.
  
  (defmethod process-change ((status (eql :deleted)) path &key)
    (let* ((old (find-content-by-path path))
  