Index: dust.rkt
==================================================================
--- dust.rkt
+++ dust.rkt
@@ -21,10 +21,11 @@
 
 ;; Provides common helper functions used throughout the project
 
 (provide maybe-meta     ; Select from (current-metas) or default value ("") if not available
          maybe-attr     ; Return an attribute’s value or a default ("") if not available
+         set-meta!
          here-output-path
          here-source-path
          here-id
          listing-context
          current-series-noun    ; Retrieve noun-singular from current 'series meta, or #f
@@ -62,10 +63,15 @@
 
 (define (maybe-meta m [missing ""])
   (cond [(current-metas) (or (select-from-metas m (current-metas)) missing)]
         [else missing]))
 
+(define (set-meta! key v)
+  (define cur-metas (current-metas))
+  (and cur-metas
+       (current-metas (hash-set! cur-metas key v))))
+
 ;; Return the current source path, relative to (current-project-root)
 (define (here-source-path)
   (match (current-metas)
     [(? hash? m)
      (define-values (_ rel-path-parts)

Index: tags-html.rkt
==================================================================
--- tags-html.rkt
+++ tags-html.rkt
@@ -110,13 +110,21 @@
                      #:block-txexpr-proc detect-newthoughts
                      #:inline-txexpr-proc decode-link-urls
                      #:exclude-tags '(script style pre code)))
   `(body ,@second-pass))
 
-(define (html-title . elements) `(title ,@elements))
-(define (html-excerpt . elements) `(excerpt ,@elements))
-(define (html-excerpt* . elements) `(excerpt* ,@elements))
+(define (html-title . elements)
+  (set-meta! 'title elements)
+  `(title ,@elements))
+
+(define (html-excerpt . elements)
+  (set-meta! 'excerpt elements)
+  "")
+
+(define (html-excerpt* . elements)
+  (set-meta! 'excerpt elements)
+  `(@ ,@elements))
 
 (define (html-blockcode attrs elems)
   (define file (or (assoc 'filename attrs) ""))
   (define codeblock `(pre [[class "code"]] (code ,@elems)))
   (cond [(string>? file "") `(@ (div [[class "listing-filename"]] 128196 " " ,file) ,codeblock)]