-*- mode: org -*- #+TITLE: GuixSD website This directory contains the source files for the GuixSD website, available at https://www.gnu.org/software/guix/. - =www.scm= and =www= provide the =(www)= guile module which offers services for building the website locally. - =static= contains images and css for the website. - =mockup.svg= illustrates a homepage aimed at average users. This is for use when GuixSD is getting closer to a production-ready system. - =mockup-techie.svg= illustrates a homepage aimed at skilled devs and sysadmins. This is for use during the alpha phase of development. * Dependencies To be able to work on the website, you need the following software: - [[https://www.gnu.org/software/guile/][GNU Guile]] (programming language) - [[https://gnutls.org/][GnuTLS]] (Transport Layer Security Library) - [[http://haunt.dthompson.us/][Haunt]] (static site generator) - [[http://savannah.nongnu.org/projects/guile-json/][Guile-JSON]] (to produce the =packages.json= file) Additionally, [[https://www.gnu.org/software/guix/][GNU Guix]] source code is needed to generate the package-related pages of the website. You can clone the latest source as follows: #+BEGIN_EXAMPLE $ cd path/to/directory/of/your/choice $ git clone git://git.savannah.gnu.org/guix.git #+END_EXAMPLE * Building and running To try out the website locally while you work on it, run the following commands: #+BEGIN_EXAMPLE $ cd path/to/guix-artwork/website $ GUIX_WEB_SITE_LOCAL=yes haunt build $ haunt serve #+END_EXAMPLE Then, visit http://localhost:8080/ in a web browser. * Building and running special pages Currently, there are two pages, [[https://www.gnu.org/software/guix/packages][packages]] and [[https://www.gnu.org/software/guix/packages/issues.html][issues]], that are not built using *Haunt*. To build them, and try them out locally, do the following: 1. Add the directory containing the source code of GNU Guix to the ~GUILE_LOAD_PATH~ environment variable. 2. Build the part of the website that builds with *Haunt*: #+BEGIN_EXAMPLE $ cd path/to/guix-artwork/website $ GUIX_WEB_SITE_LOCAL=yes haunt build #+END_EXAMPLE 3. Copy the ~static~ directory to the build directory: #+BEGIN_EXAMPLE $ mkdir -p site/software/guix $ cp -avr static site/software/guix #+END_EXAMPLE 4. Open the [[https://www.gnu.org/software/guile/manual/html_node/The-REPL.html#The-REPL][Guile REPL]] to import the ~packages~ module and build Packages and Issues pages: #+BEGIN_EXAMPLE $ guile scheme@(guile-user)> (use-modules (www) (www packages)) scheme@(guile-user)> (export-web-page (packages-page) "site/packages/index.html") scheme@(guile-user)> (export-web-page (issues-page) "site/packages/issues.html") scheme@(guile-user)> ,q #+END_EXAMPLE 5. Serve the whole website with *Haunt*: #+BEGIN_EXAMPLE $ haunt serve #+END_EXAMPLE Now you can try the special pages out: - http://localhost:8080/packages/ - http://localhost:8080/packages/issues.html * Deploying Like the pages of many GNU websites, this website is managed through Savannah CVS. To deploy the website it should be copied to the CVS tree and then checked in. The website will be updated automatically once the files have been checked into CVS. See https://savannah.gnu.org/cvs/?group=guix for information on how to access Savannah CVS. * Copying ** Guile code See [[file:COPYING][COPYING]]. ** Graphics Public domain 2015 [[mailto:felipe.lopez@openmailbox.org][Luis Felipe López Acevedo]] All the graphics in this directory are dedicated to the public domain, except for the Guix System Distribution logo, which can be used under the Creative Commons Attribution-ShareAlike 4.0 International License. You can find information about authors and copyright in the metadata of SVG files. If you are using Inkscape, you can access the Document metadata from the File menu.