add static license page
authorAmin Bandali <bandali@gnu.org>
Fri, 29 Nov 2019 08:13:16 +0000 (03:13 -0500)
committerAmin Bandali <bandali@gnu.org>
Fri, 29 Nov 2019 08:13:34 +0000 (03:13 -0500)
TODO: flexible footer

haunt.scm

index 49db025..2bf1ce1 100644 (file)
--- a/haunt.scm
+++ b/haunt.scm
@@ -33,7 +33,9 @@
         (a (@ (href "license.html")) "license.html")
         " for license conditions. Please copy and share."))))))
 
-(define (bandali-post-template post)
+(define my-date-format "~B ~d, ~Y")
+
+(define (my-post-template post)
   `((header
      (h1 ,(post-ref post 'title))
      (address "By "
                  ,(post-ref post 'author))
               " <" ,(post-ref post 'email) ">")
      (p (@ (class "date"))
-        ,(date->string (post-date post) "~B ~d, ~Y")))
+        ,(date->string (post-date post) my-date-format)))
     ,(post-sxml post)))
 
-(define (bandali-collection-template site title posts prefix)
+(define (my-collection-template site title posts prefix)
   (define (post-uri post)
     (string-append (or prefix "") "/"
                    (site-post-slug site post) ".html"))
@@ -55,7 +57,7 @@
               `(li
                 (a (@ (href ,(post-uri post)))
                    ,(post-ref post 'title))
-                " — " ,(date->string (post-date post) "~B ~d, ~Y")))
+                " — " ,(date->string (post-date post) my-date-format)))
             posts))))
 
 (define bandali-theme
          (lambda (site title body)
            (base-layout site body
                         #:title title))
-         #:post-template bandali-post-template
-         #:collection-template bandali-collection-template))
+         #:post-template my-post-template
+         #:collection-template my-collection-template))
+
+(define (static-page title file-name body)
+  (lambda (site posts)
+    (make-page file-name
+               (with-layout bandali-theme site title body)
+               sxml->html)))
 
 (define (index-material site posts)
   `(div
             (td (a (@ (href ,(post-uri post)))
                    ,(post-ref post 'title)))
             (td (@ (style "font-size: 0.875em;"))
-             ,(date->string (post-date post) "~B ~d, ~Y"))))
+             ,(date->string (post-date post) my-date-format))))
         (take-up-to 10 (posts/reverse-chronological posts)))))))
 
 (define (index-page site posts)
    (base-layout site (index-material site posts))
    sxml->html))
 
+(define license-page
+  (static-page
+   "Licensing Information"
+   "license.html"
+   `((h1 "License information for bandali.eu.org")
+     (p "I strongly believe in "
+        (a (@ (href "https://questioncopyright.org/what_is_free_culture"))
+           "free culture")
+        " and that all creative works everywhere should be "
+        (a (@ (href "https://freedomdefined.org/Definition")) "free"
+           "."))
+     (p "Unless otherwise noted material on this site is licensed "
+        "under the GNU General Public License as published by the "
+        "Free Software Foundation, either version 3 of the License, "
+        "or (at your option) any later version.  A copy of the "
+        "license is included at "
+        (a (@ (href "gpl-3.0.html")) "gpl-3.0.html") ".")
+     (p "Some resources on free software and licenses:")
+     (ul
+      (li (a (@ (href "https://www.gnu.org/philosophy/free-sw.html"))
+             "What is free software?"))
+      (li (a (@ (href "https://www.gnu.org/licenses/license-list.html"))
+             "Various Licenses and Comments about Them"))
+      (li (a (@ (href "https://www.gnu.org/proprietary/proprietary.html"))
+             "Proprietary Software Is Often Malware"))))))
+
 (define my-domain "bandali.eu.org")
 
 (site #:title "Amin Bandali"
                         #:prefix "tags")
                        (rss-feed
                         #:file-name "feed.rss")
+                       license-page
                        (static-directory "static" "")))