]> git.jsancho.org Git - blog.git/blobdiff - haunt.scm
Merge branch 'master' into english
[blog.git] / haunt.scm
index 82f6f7f0df7a83447c79ce83758ceb39bf757921..3554f3594aa3319bbfa21efabc0b22fcafa6e2ae 100644 (file)
--- a/haunt.scm
+++ b/haunt.scm
 (define (get-tags post)
   (or (assoc-ref (post-metadata post) 'tags) '()))
 
+(define (post-date-and-tags date tags)
+  (let ((div `(div (@ (class "date-and-tags"))
+                  (time (@ (datetime ,(date->string date "~Y-~m-~dT~H:~M:~S")))
+                        ,(date->string date "~Y-~m-~d")))))
+    (cond ((> (length tags) 0)
+          (append div
+                  `(" "
+                    (span (@ (style "margin: 0 3px")) ⦿)
+                    (span (@ (class "tags"))
+                          ,@(drop-right
+                              (apply
+                               append
+                               (map (lambda (tag)
+                                      `((a (@ (href ,(format #f "tags/~a.html" tag))) ,tag) ", "))
+                                    tags))
+                              1)))))
+         (else
+          div))))
+
 (define flex-theme
   (theme #:name "Flex"
          #:layout
@@ -36,6 +55,7 @@
                (link (@ (rel "stylesheet") (href "https://fonts.googleapis.com/css?family=Merriweather+Sans:400,300,300italic,400italic,700,700italic,800,800italic|Merriweather:400,300,300italic,400italic,700,700italic,900,900italic|Source+Code+Pro:200,300,400,500,600,700,900")))
                ,(stylesheet "application.min")
                ,(stylesheet "pygments.min")
+               ,(stylesheet "custom")
                (meta (@ (name "viewport") (content "width=device-width, initial-scale=1.0"))))
               (body
                ,(let ((metadata (site-default-metadata site)))
@@ -46,7 +66,8 @@
                                  (li (@ (id "blog-title-header"))
                                      (a (@ (href "index.html"))
                                         (h1 ,(assoc-ref metadata 'author)))))
-                             (ul (@ (class "navigation-items center")))
+                             (ul (@ (class "navigation-items center"))
+                                 (li (a (@ (href "https://www.jsancho.org/")) "in spanish")))
                              (ul (@ (class "navigation-items right"))
                                  ,@(map (lambda (page)
                                           `(li (a (@ (href ,(cdr page))) ,(car page))))
 
         #:post-template
         (lambda (post)
-          `((article (@ (class "single"))
+          `((article (@ (class "inline"))
                      (header
-                      (h1 ,(post-ref post 'title))
-                      (p "Posted on " ,(date->string (post-date post) "~B ~d, ~Y")))
-                     ,(post-sxml post)
-                     (div (@ (class "tag-cloud"))
-                          (p
-                           ,@(map (lambda (tag)
-                                    `((a (@ (href "")) ,tag) " "))
-                                  (get-tags post)))))))
+                      (h1 (@ (class "title")) ,(post-ref post 'title))
+                      ,(post-date-and-tags (post-date post) (get-tags post)))
+                     ,(post-sxml post))))
 
          #:collection-template
          (lambda (site title posts 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 (getp sxml count res)
+               (cond ((or (= count 0) (null? sxml))
+                      res)
+                     ((and (pair? (car sxml)) (eq? (caar sxml) 'p))
+                      (getp (cdr sxml) (- count 1) (cons (car sxml) res)))
+                     (else
+                      (getp (cdr sxml) count (cons (car sxml) res)))))
+             (reverse (getp sxml count '())))
                     
            (define (post-summary post)
              (or (post-ref post 'summary)
-                (get-paragraphs (cdr (post-sxml post)) 3)))
+                (get-paragraphs (cdar (post-sxml post)) 3)))
 
            `(
             ,@(map (lambda (post)
                                 (h2 (@ (class "title"))
                                     (a (@ (href ,(post-uri post)))
                                        ,(post-ref post 'title)))
-                                (div (@ (class "date-and-tags"))
-                                     (time (@ (datetime ,(date->string (post-date post) "~Y-~m-~dT~H:~M:~S")))
-                                           ,(date->string (post-date post) "~Y-~m-~d"))
-                                     " "
-                                     ,(let ((tags (get-tags post)))
-                                        (cond ((= (length tags) 0)
-                                               `(span (@ (style "margin: 0 3px")) ⦿)
-                                               `(span (@ (class "tags"))
-                                                     ,@(map (lambda (tag)
-                                                              `((a (@ (href (format #f "tags/~a.html" ,tag))) ,tag) " "))
-                                                            tags)))))))
+                                ,(post-date-and-tags (post-date post) (get-tags post)))
                                ,(post-summary post)
                                (footer (@ (class "read-more"))
-                                          (a (@ (href ,(post-uri post))) "...more..."))))
+                                          (a (@ (href ,(post-uri post))) "...read more..."))))
                    (posts/reverse-chronological posts))))))
 
 (define about-page
   (static-page
    "About me"
    "about.html"
-   `((h2 "hi."))))
+   `((div
+      (article
+       (header (h2 "About me"))
+       (img (@ (src "images/jsancho.jpg") (width "150") (height "150") (align "left") (style "margin: 10px;")))
+       (p "My name is Javier Sancho, and I am a programmer and a free software evangelist. I live in Castellón, Spain.")
+       (p "I met GNU/Linux and free software while I was studying Computer Science at " (a (@ (href "http://www.uji.es/")) "Universitat Jaume I") " and, since then, my commitment with these ideas hasn't stopped growing.")
+       (p "It was in 2003 when I started as an activist, participating in events related with free software, demonstrations against software patents, talks and information sessions at install parties, schools, etc.")
+       (p "I enjoy programming and I use the programming language that better fits my needs (Python, PHP, Golang, Erlang, ...). For many years my favorite language was C, although over time that privileged place has been occupied by Lisp y Scheme. I'm in love with the functional paradigm.")
+       (p "I'm married with a wonderful woman and we have a kid that amaze us every day. They are the best of my life.")
+       (p "Besides this blog, sometimes I share thoughts in " (a (@ (href "https://twitter.com/jsancho_gpl")) "Twitter") ". You can email me at " (a (@ (href "mailto:jsf@jsancho.org")) "jsf@jsancho.org") "."))))))
 
 (define %collections
   `(("Home" "index.html" ,posts/reverse-chronological)))