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. --- people.sxml | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 people.sxml (limited to 'people.sxml') diff --git a/people.sxml b/people.sxml new file mode 100644 index 0000000..e9ab88b --- /dev/null +++ b/people.sxml @@ -0,0 +1,49 @@ +(use-modules (srfi srfi-1)) + +(include "projects.scm") + +(define %members + ;; List of member/projects tuples. + (let ((table (make-hash-table eq? hashq))) + (hash-table-fold %projects + (lambda (key project lst) + (for-each (lambda (member) + (let ((projects (hash-table-ref/default + table member '()))) + (hash-table-set! table member + (cons project + projects)))) + (project-members project))) + '()) + (sort (delete-duplicates + (hash-table-fold table alist-cons '())) + (match-lambda* + (((member1 . _) (member2 . _)) + (stringdate* "2021-04-14 23:00")) + + (content + ((h2 "People") + (p "The following maintainers and contributors participate in " + "the GNU Assembly and have endorsed the " + (a (@ (href "/en/documents/social-contract")) + "Social Contract") ":") + + (ul ;; (@ (class "projects")) + ,@(map (match-lambda + ((person projects ...) + `(li (@ (class "person")) + ,(let ((home-page (person-url person))) + (if home-page + `(a (@ (href ,home-page)) + ,(person-name person)) + (person-name person))) + " (" + ,(string-join (map project-name projects) + ", ") + ")"))) + %members))))) -- cgit v1.2.1