summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--haunt.scm106
1 files changed, 77 insertions, 29 deletions
diff --git a/haunt.scm b/haunt.scm
index 105e44e..2f9276c 100644
--- a/haunt.scm
+++ b/haunt.scm
@@ -176,39 +176,86 @@ free culture works available under the " ,%cc-by-sa-link " license.")
`(pre (@ ,@attrs)
,(maybe-highlight-code source)))))
-(define (about-page site posts)
+(define (static-page title file-name body)
+ (lambda (site posts)
+ (make-page file-name
+ (with-layout dthompson-theme site title body)
+ sxml->html)))
+
+(define* (project-page #:key name file-name description usage requirements
+ installation documentation license repo)
(define body
- `((h2 "Hi.")
- (p "I am a professional software developer and free software
+ `((h1 ,name)
+ ,description
+ (h2 "Usage")
+ ,usage
+ (h2 "Documentation")
+ ,documentation
+ (h2 "Releases")
+ (h2 "Requirements")
+ ,requirements
+ (h2 "Installation")
+ ,installation
+ (h2 "License")
+ (p ,license)
+ (h2 "Source Code")
+ ,@(let ((url (string-append "https://git.dthompson.us/" repo ".git")))
+ `((p ,name " is developed using the Git version control
+system. The official repository is hosted at "
+ ,(anchor url url))
+ (h3 "Anonymous clone")
+ (pre "git clone " ,url)))
+ (h2 "Community")
+ (p "Real-time discussion for Guile-SDL2 can be found on the "
+ (code "#guile")
+ " channel on the Freenode IRC network.")
+ (h2 "Contributing")
+ (p "Send patches and bug reports to "
+ ,(anchor "davet@gnu.org" "mailto:davet@gnu.org")
+ ".")))
+
+ (static-page name (string-append "projects/" file-name) body))
+
+(define about-page
+ (static-page
+ "About Me"
+ "about.html"
+ `((h2 "Hi.")
+ (p "I am a professional software developer and free software
activist based in Massachusetts.")
- (p "I graudated from "
- ,(anchor "Worcester State University" "http://worcester.edu")
- " in 2012 with a BS in Computer Science.")
- (p "I am currently a web developer with a focus on operations
+ (p "I graudated from "
+ ,(anchor "Worcester State University" "http://worcester.edu")
+ " in 2012 with a BS in Computer Science.")
+ (p "I am currently a web developer with a focus on operations
at "
- ,(anchor "Vista Higher Learning" "http://vistahigherlearning.com")
- ", and formerly a web developer at the "
- ,(anchor "Free Software Foundation." "https://fsf.org"))
- (p "You can follow me on "
- ,(anchor "GNU Social" "https://quitter.se/davexunit") " and "
- ,(anchor "Twitter" "https://twitter.com/davexunit") ".")))
-
- (make-page "about.html"
- (with-layout dthompson-theme site "About Me" body)
- sxml->html))
-
-(define (projects-page site posts)
- (define body
- `((h1 "Projects")
- (p ,(anchor "Guile-SDL2" "#") " — SDL2 bindings for Guile Scheme")
- (p ,(anchor "Haunt" "#") " — Functional, hackable static site generator")
- (p ,(anchor "Shroud" "#") " — GPG-based password manager")
- (p ,(anchor "Sly" "#") " — Functional reactive game engine")
- (p ,(anchor "srt2vtt" "#") " — SRT to WebVTT subtitle converter")))
+ ,(anchor "Vista Higher Learning" "http://vistahigherlearning.com")
+ ", and formerly a web developer at the "
+ ,(anchor "Free Software Foundation." "https://fsf.org"))
+ (p "You can follow me on "
+ ,(anchor "GNU Social" "https://quitter.se/davexunit") " and "
+ ,(anchor "Twitter" "https://twitter.com/davexunit") "."))))
+
+(define projects-page
+ (static-page
+ "Projects"
+ "projects.html"
+ `((h1 "Projects")
+ (p ,(anchor "Guile-SDL2" "#") " — SDL2 bindings for Guile Scheme")
+ (p ,(anchor "Haunt" "#") " — Functional, hackable static site generator")
+ (p ,(anchor "Shroud" "#") " — GPG-based password manager")
+ (p ,(anchor "Sly" "#") " — Functional reactive game engine")
+ (p ,(anchor "srt2vtt" "#") " — SRT to WebVTT subtitle converter"))))
- (make-page "projects.html"
- (with-layout dthompson-theme site "Projects" body)
- sxml->html))
+(define sly-page
+ (project-page #:name "Sly"
+ #:file-name "sly.html"
+ #:description "game engine"
+ #:documentation "read a book"
+ #:usage "meh"
+ #:requirements "a computer"
+ #:installation "guix package -i sly"
+ #:license "GNU GPLv3+"
+ #:repo "sly"))
(site #:title "dthompson"
#:domain "dthompson.us"
@@ -221,6 +268,7 @@ at "
(atom-feeds-by-tag)
about-page
projects-page
+ sly-page
(static-directory "css")
(static-directory "fonts")
(static-directory "images")