diff options
-rw-r--r-- | website/README | 11 | ||||
-rw-r--r-- | website/haunt.scm | 60 |
2 files changed, 67 insertions, 4 deletions
diff --git a/website/README b/website/README index 9112726..5438a5d 100644 --- a/website/README +++ b/website/README @@ -15,10 +15,13 @@ website]] which is implemented in [[https://www.gnu.org/software/guile][Guile]] * Building -In this implementation, links assume =/software/guix= is the root directory of -the website. In order to build the website on your machine, you will want to -modify the values of ‘(current-url-root)’ and ‘(gnu.org-root)’ parameter -objects. +Building the website depends on the static site generator: + + - [[http://haunt.dthompson.us/][Haunt]] + +To build the site, run ‘haunt build’ to compile all of the HTML pages. +To view the results, run ‘haunt serve’ and visit <http://localhost:8080> +in a web browser. * Copying diff --git a/website/haunt.scm b/website/haunt.scm new file mode 100644 index 0000000..ec37fcf --- /dev/null +++ b/website/haunt.scm @@ -0,0 +1,60 @@ +;;; GuixSD website --- GNU's advanced distro website +;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org> +;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GuixSD website. +;;; +;;; GuixSD website is free software; you can redistribute it and/or modify it +;;; under the terms of 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. +;;; +;;; GuixSD website is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GuixSD website. If not, see <http://www.gnu.org/licenses/>. + +;; This is a build file for Haunt. + +(use-modules (haunt site) + (haunt reader) + (haunt page) + (haunt html) + (haunt utils) + (haunt builder assets) + (ice-9 match) + (www) + (www utils)) + +(define %local-test? + ;; True when we're testing locally, as opposed to producing things to + ;; install to gnu.org. + (or (getenv "GUIX_WEB_SITE_LOCAL") + (member "serve" (command-line)))) ;'haunt serve' command + +(when %local-test? + ;; The URLs produced in these pages are only meant for local consumption. + (format #t "~%Producing Web pages for local tests *only*!~%~%")) + +(site #:title "GNU's advanced distro and transactional package manager" + #:domain "//www.gnu.org/software/guix" + #:default-metadata + '((author . "GuixSD Contributors") + (email . "guix-devel@gnu.org")) + #:readers (list sxml-reader) + #:builders + `(,@(map (match-lambda + ((file-name contents) + (lambda (site posts) + (parameterize ((current-url-root (if %local-test? + "" + (current-url-root))) + (gnu.org-root (if %local-test? + "https://www.gnu.org" + (gnu.org-root)))) + (make-page file-name (contents) sxml->html))))) + %web-pages) + ,(static-directory "static"))) |