From 09e3c8bff91e9af7dbce3ecc7e585e1df7c0c0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 14 Apr 2021 23:17:37 +0200 Subject: Add /people. * projects.scm: New file, with code formerly... * software.sxml: ... here. Include it. * people.sxml: New file. * haunt.scm (static-pages): Add it. * posts/kickoff.md, index.md: Refer to it. --- projects.scm | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 projects.scm (limited to 'projects.scm') diff --git a/projects.scm b/projects.scm new file mode 100644 index 0000000..9551582 --- /dev/null +++ b/projects.scm @@ -0,0 +1,224 @@ +(use-modules (ice-9 match) + (srfi srfi-9) + (srfi srfi-69) + (haunt utils)) + +(define-record-type + (project id name url logo members) + project? + (id project-id) + (name project-name) + (url project-url) + (logo project-logo) + (members project-members set-project-members!)) + +(define-record-type + (make-person name url avatar) + person? + (name person-name) + (url person-url) + (avatar person-avatar)) + +(define* (person name #:optional url avatar) + (make-person name url avatar)) + +(define %projects + (let ((table (make-hash-table)) + (placeholder-logo "/static/images/logos/placeholder.svg")) + (for-each + (match-lambda + ((id name url logo) + (hash-table-set! table id + (project id name url logo (list)))) + ((id name url) + (hash-table-set! table id + (project id name url placeholder-logo (list))))) + '((8sync + "8sync" + "https://www.gnu.org/software/8sync/" + "/static/images/logos/8sync.png") + (adns + "GNU adns" + "https://www.gnu.org/software/adns/") + (archimedes + "GNU Archimedes" + "https://www.gnu.org/software/archimedes/") + (binutils + "binutils" + "https://www.gnu.org/software/binutils/") + (classpath + "GNU Classpath" + "https://www.gnu.org/software/classpath/") + (dominion + "GNU Dominion" + "https://savannah.gnu.org/projects/dominion") + (gcc + "GNU Compiler Collection (GCC)" + "https://gcc.gnu.org" + "/static/images/logos/gcc.png") + (gdb + "GDB" + "https://www.gnu.org/software/gdb/" + "/static/images/logos/gdb.svg") + (glibc + "GNU C Library" + "https://www.gnu.org/software/libc/" + "/static/images/logos/glibc.jpg") + (gneural + "GNU Gneural Network" + "https://www.gnu.org/software/gneuralnetwork/" + "/static/images/logos/gneural_network.png") + (gnucobol + "GnuCOBOL" + "https://gnucobol.sourceforge.io/" + "/static/images/logos/gnucobol.png") + (gnupg + "GnuPG" + "https://gnupg.org" + "/static/images/logos/gnupg.png") + (gsl + "GNU Scientific Library" + "https://www.gnu.org/software/gsl/") + (guile + "GNU Guile" + "https://www.gnu.org/software/guile/" + "/static/images/logos/guile.svg") + (guile-debbugs + "Guile-Debbugs" + "https://savannah.gnu.org/projects/guile-debbugs/" + "/static/images/logos/guile.svg") + (guile-gnome + "Guile-GNOME" + "https://www.gnu.org/software/guile-gnome/" + "/static/images/logos/guile.svg") + (guile-opengl + "Guile-OpenGL" + "https://www.gnu.org/software/guile-opengl/" + "/static/images/logos/guile.svg") + (guile-rpc + "GNU Guile-RPC" + "https://www.gnu.org/software/guile-rpc/" + "/static/images/logos/guile.svg") + (guix + "GNU Guix" + "https://guix.gnu.org" + "/static/images/logos/guix.png") + (gwl + "Guix Workflow Language" + "https://guixwl.org" + "/static/images/logos/gwl.png") + (hurd + "GNU Hurd" + "https://hurd.gnu.org" + "/static/images/logos/hurd.png") + (indent + "GNU indent" + "https://www.gnu.org/software/indent/") + (libgcrypt + "GNU Libgcrypt" + "https://gnupg.org/related_software/libgcrypt/" + "/static/images/logos/gnupg.png") + (libtasn1 + "GNU Libtasn1" + "https://www.gnu.org/software/libtasn1/") + (lilypond + "GNU LilyPond" + "https://lilypond.org/" + "/static/images/logos/lilypond.png") + (liquid-war-6 + "Liquid War 6" + "https://www.gnu.org/software/liquidwar6/") + (mcsim + "GNU MCSim" + "https://www.gnu.org/software/mcsim/" + "/static/images/logos/mcsim.png") + (mediagoblin + "GNU MediaGoblin" + "https://mediagoblin.org/" + "/static/images/logos/mediagoblin.svg") + (mes + "GNU Mes" + "https://www.gnu.org/software/mes/") + (mpc + "GNU MPC" + "http://www.multiprecision.org/mpc/") + (nano-archimedes + "GNU Nano-Archimedes" + "https://www.gnu.org/software/archimedes/") + (shepherd + "GNU Shepherd" + "https://www.gnu.org/software/shepherd/") + (source-highlight + "GNU Source Highlight" + "https://www.gnu.org/software/src-highlite/") + (userv + "GNU userv" + "https://www.gnu.org/software/userv/"))) + table)) + +(define-syntax-rule (define-member person projects ...) + (let ((p person)) + (for-each (lambda (project-id) + (let ((project + (hash-table-ref %projects project-id + (lambda () + (error (format #false + "Unknown project ~a for ~a~%" + project-id name)))))) + (set-project-members! + project (cons p (project-members project))))) + (quote (projects ...))))) + +(define-member (person "Carlos O'Donell") + glibc gcc) +(define-member (person "Mark J. Wielaard" + "https://gnu.wildebeest.org/blog/mjw/") + classpath gcc glibc) +(define-member (person "Andy Wingo" + "https://wingolog.org") + guile guile-gnome guile-opengl) +(define-member (person "Ludovic Courtès" + "https://people.bordeaux.inria.fr/lcourtes/") + guix guile shepherd guile-rpc) +(define-member (person "Frederic Y. Bois") + mcsim) +(define-member (person "Andrej Shadura") + indent) +(define-member (person "Werner Koch") + gnupg libgcrypt) +(define-member (person "Mark Galassi") + gsl dominion) +(define-member (person "Jean Michel Sellier") + archimedes nano-archimedes gneural) +(define-member (person "Christopher Webber" + "https://dustycloud.org") + 8sync mediagoblin) +(define-member (person "Ian Jackson") + adns userv) +(define-member (person "Samuel Thibault") + hurd) +(define-member (person "Jan Nieuwenhuizen") + mes lilypond) +(define-member (person "Christian Mauduit") + liquid-war-6) +(define-member (person "Nikos Mavrogiannopoulos") + libtasn1) +(define-member (person "Andreas Enge") + mpc) +(define-member (person "Han-Wen Nienhuys") + lilypond) +(define-member (person "Tobias Geerinckx-Rice") + guix) +(define-member (person "Bernard Giroud") + gnucobol) +(define-member (person "Tom Tromey") + source-highlight) +(define-member (person "Jeff Law") + gcc) +(define-member (person "David Malcolm") + gcc) +(define-member (person "Ricardo Wurmus" + "https://elephly.net") + guix gwl guile-debbugs) +(define-member (person "Marius Bakke") + guix) -- cgit v1.2.1