Show tags in every post
[blog.git] / haunt.scm
index 3346228..068f123 100644 (file)
--- a/haunt.scm
+++ b/haunt.scm
                        " "
                        (li (a (@ (class "sc-rss") (target "_blank") (href "/feed.xml")) (i (@ (class "fa fa-rss")))))))))
               (main ,body))))
+
         #:post-template
         (lambda (post)
+          (define (get-tags post)
+            (or (assoc-ref (post-metadata post) 'tags) '()))
+
           `((article (@ (class "single"))
                      (header
                       (h1 ,(post-ref post 'title))
                       (p ,(date->string* (post-date post))))
                      ,(post-sxml post)
                      (div (@ (class "tag-cloud"))
-                          (p (a (@ (href "")) "prueba"))))))
+                          (p
+                           ,@(map (lambda (tag)
+                                    `((a (@ (href "")) ,tag) " "))
+                                  (get-tags post)))))))
+
          #:collection-template
          (lambda (site title posts prefix)
            (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