Better post summaries
[blog.git] / haunt.scm
index 3346228..07b2a79 100644 (file)
--- a/haunt.scm
+++ b/haunt.scm
            (define (post-uri post)
              (string-append "/" (or prefix "")
                             (site-post-slug site post) ".html"))
+
+          (define (get-paragraphs sxml count)
+            (let ((pars (filter
+                         (lambda (e) (and (pair? e) (eq? (car e) 'p)))
+                         sxml)))
+              (list-head pars (min count (length pars)))))
+                    
            (define (post-summary post)
              (or (post-ref post 'summary)
-                 (let get-first-par ((sxml (cdr (post-sxml post))))
-                   (cond ((null? sxml) "")
-                         ((and (pair? (car sxml))
-                               (eq? (caar sxml) 'p)) (car sxml))
-                         (else (get-first-par (cdr sxml)))))))
+                (get-paragraphs (cdr (post-sxml post)) 3)))
+
            `(
             ,@(map (lambda (post)
                      `(article