all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#43871] [PATCH website] Add community page
@ 2020-10-08 22:38 Julien Lepiller
  2020-10-08 23:16 ` zimoun
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Julien Lepiller @ 2020-10-08 22:38 UTC (permalink / raw)
  To: 43871

[-- Attachment #1: Type: text/plain, Size: 170 bytes --]

Hi Guix!

This patch aims at adding a new page on the website that lists external
resources that talk about guix (conference talks, blog posts and even
academic papers).

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-website-Add-community-page.patch --]
[-- Type: text/x-patch, Size: 31147 bytes --]

From fe6910a5877ad039e2d6cf95efc10a62c0762871 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 9 Oct 2020 00:32:56 +0200
Subject: [PATCH] website: Add community page.

* website/apps/media/templates/community.scm: New file.
* website/apps/media/builder.scm: Add community builder.
* website/apps/base/templates/components.scm: Add it to the menu.
* website/apps/media/templates/components.scm: Add resource->shtml.
* website/apps/media/types.scm: New resource data type.
* website/apps/media/data.scm: Add community resources.
* website/static/base/css/index.css: Add css for new classes.
* website/static/media/css/community.css: New file.
* website/static/media/img/community/carl-dong-bitcoin-security.webp: New file.
---
 website/apps/base/templates/components.scm    |   3 +-
 website/apps/media/builder.scm                |  16 ++++-
 website/apps/media/data.scm                   |  49 ++++++++++++++
 website/apps/media/templates/community.scm    |  34 ++++++++++
 website/apps/media/templates/components.scm   |  24 ++++++-
 website/apps/media/types.scm                  |  63 +++++++++++++++++-
 website/static/base/css/index.css             |  12 ++++
 website/static/media/css/community.css        |  13 ++++
 .../community/carl-dong-bitcoin-security.webp | Bin 0 -> 13952 bytes
 9 files changed, 210 insertions(+), 4 deletions(-)
 create mode 100644 website/apps/media/templates/community.scm
 create mode 100644 website/static/media/css/community.css
 create mode 100644 website/static/media/img/community/carl-dong-bitcoin-security.webp

diff --git a/website/apps/base/templates/components.scm b/website/apps/base/templates/components.scm
index 44d410e..7482503 100644
--- a/website/apps/base/templates/components.scm
+++ b/website/apps/base/templates/components.scm
@@ -413,7 +413,8 @@ manual.
         #:items
         (list
          (C_ "website menu" (menu-item #:label "Videos" #:active-item active-item #:url (guix-url "videos/")))
-         (C_ "website menu" (menu-item #:label "Screenshots" #:active-item active-item #:url (guix-url "screenshots/")))))
+         (C_ "website menu" (menu-item #:label "Screenshots" #:active-item active-item #:url (guix-url "screenshots/")))
+         (C_ "website menu" (menu-item #:label "Community Resources" #:active-item active-item #:url (guix-url "community/")))))
 
       ,(C_ "website menu" (menu-item #:label "Donate" #:active-item active-item #:url (guix-url "donate/")))
 
diff --git a/website/apps/media/builder.scm b/website/apps/media/builder.scm
index 53378e6..c4cb17b 100644
--- a/website/apps/media/builder.scm
+++ b/website/apps/media/builder.scm
@@ -1,11 +1,13 @@
 ;;; GNU Guix web site
 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Initially written by sirgazil who waives all
 ;;; copyright interest on this file.
 
 (define-module (apps media builder)
   #:use-module (apps aux system)
   #:use-module (apps media data)
+  #:use-module (apps media templates community)
   #:use-module (apps media templates screenshot)
   #:use-module (apps media templates screenshots-overview)
   #:use-module (apps media templates video)
@@ -17,6 +19,7 @@
   #:use-module (apps aux web)
   #:use-module (apps media utils)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-19)
   #:export (builder))
 
 
@@ -41,7 +44,8 @@
      A list of page objects that represent the web resources of the
      application. See Haunt <page> objects for more information."
   (flatten
-   (list (screenshots-overview-builder)
+   (list (community-builder)
+         (screenshots-overview-builder)
          (screenshots-builder)
          (videos-builder)
          (video-list-builder))))
@@ -51,6 +55,16 @@
 ;;; Helper builders.
 ;;;
 
+(define (community-builder)
+  "Return a Haunt page representing the community resources page."
+  (make-page "community/index.html"
+             (community-t (sort resources
+                                (lambda (a b)
+                                  (time>=?
+                                    (date->time-utc (resource-date a))
+                                    (date->time-utc (resource-date b))))))
+             sxml->html))
+
 (define (screenshots-builder)
   "Return a list of Haunt pages representing screenshot pages."
   (map
diff --git a/website/apps/media/data.scm b/website/apps/media/data.scm
index 76af25d..89f7a8c 100644
--- a/website/apps/media/data.scm
+++ b/website/apps/media/data.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix web site
 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Initially written by sirgazil who waives all
 ;;; copyright interest on this file.
 
@@ -9,6 +10,7 @@
   #:use-module (apps media types)
   #:use-module (srfi srfi-19)
   #:export (playlists
+            resources
             screenshots))
 
 
@@ -85,6 +87,53 @@ distribution."))
      #:last-updated (string->date "2020-03-28T16:00:00" "~Y-~m-~dT~H:~M:~S")))))
 
 
+(define resources
+  (list
+    (resource
+      #:title (C_ "community resource title" "Everyday use of Guix")
+      #:link "https://media.marusich.info/everyday-use-of-gnu-guix-chris-marusich-seagl-2018.webm"
+      #:type 'video
+      #:language (G_ "English")
+      #:author "Chris Marushich"
+      #:date (string->date "2018-10-10" "~Y-~m-~d"))
+    (resource
+      #:title (C_ "community resource title" "Bitcoin Build System Security")
+      #:link "https://www.youtube.com/watch?v=I2iShmUTEl8"
+      #:type 'video
+      #:language (G_ "English")
+      #:preview (guix-url "static/media/img/community/carl-dong-bitcoin-security.webp")
+      #:author "Carl Dong"
+      #:date (string->date "2019-06-08" "~Y-~m-~d"))
+    (resource
+      #:title (C_ "community resource title" "Reproducible System Administration with GNU Guix")
+      #:link "https://replay.jres.org/videos/watch/c77b3a44-b75f-4c10-9f39-8fb55ae096d7"
+      #:type 'video
+      #:language (G_ "French")
+      #:author "Julien Lepiller"
+      #:date (string->date "2019-12-04" "~Y-~m-~d"))
+    (resource
+      #:title (C_ "community resource title" "Au-delà des conteneurs : environnements logiciels reproductibles avec GNU Guix")
+      #:link "https://webcast.in2p3.fr/video/au-dela-des-conteneurs-environnements-logiciels-reproductibles-avec-gnu-guix-1"
+      #:type 'video
+      #:language (G_ "French")
+      #:author "Ludovic Courtès"
+      #:date (string->date "2019-05-23" "~Y-~m-~d"))
+    (resource
+      #:title (C_ "community resource title" "Code Staging in GNU Guix")
+      #:link "https://arxiv.org/abs/1709.00833"
+      #:type 'article
+      #:language (G_ "English")
+      #:author "Ludovic Courtès"
+      #:date (string->date "2017-09-04" "~Y-~m-~d"))
+    (resource
+      #:title (C_ "community resource title" "Guix: A most advanced operating system")
+      #:link "https://ambrevar.xyz/guix-advance/index.html"
+      #:type 'blog
+      #:language (G_ "English")
+      #:author "Pierre Neidhardt"
+      #:date (string->date "2019-01-14" "~Y-~m-~d"))))
+
+
 (define screenshots
   (list
    (screenshot
diff --git a/website/apps/media/templates/community.scm b/website/apps/media/templates/community.scm
new file mode 100644
index 0000000..6cd51a0
--- /dev/null
+++ b/website/apps/media/templates/community.scm
@@ -0,0 +1,34 @@
+;;; GNU Guix web site
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
+;;; Initially written by sirgazil who waives all
+;;; copyright interest on this file.
+
+(define-module (apps media templates community)
+  #:use-module (apps base templates theme)
+  #:use-module (apps base utils)
+  #:use-module (apps i18n)
+  #:use-module (apps media templates components)
+  #:export (community-t))
+
+(define (community-t community-resources)
+  "Return an SHTML page for all COMMUNITY-RESOURCES."
+  (theme
+   #:title (C_ "webpage title" '("Community"))
+   #:description (G_ "Links to resources created by the community")
+   #:keywords
+   (string-split ;TRANSLATORS: |-separated list of webpage keywords
+    (G_ "GNU|Linux|Unix|Free software|Libre software|Operating \
+system|GNU Hurd|GNU Guix package manager|GNU Guile|Guile \
+Scheme|Transactional upgrades|Functional package \
+management|Reproducibility") #\|)
+   #:active-menu-item (C_ "website menu" "Media")
+   #:css (list (guix-url "static/base/css/index.css")
+               (guix-url "static/base/css/item-preview.css")
+               (guix-url "static/media/css/community.css"))
+   #:content
+   `(main
+     (section
+      (@ (class "page"))
+      (div
+       (@ (class "resource-box"))
+       ,@(map resource->shtml community-resources))))))
diff --git a/website/apps/media/templates/components.scm b/website/apps/media/templates/components.scm
index d928d23..85574ee 100644
--- a/website/apps/media/templates/components.scm
+++ b/website/apps/media/templates/components.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix web site
 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Initially written by sirgazil who waives all
 ;;; copyright interest on this file.
 
@@ -14,7 +15,8 @@
   #:use-module (apps media types)
   #:use-module (apps media utils)
   #:use-module (srfi srfi-19)
-  #:export (screenshot->shtml
+  #:export (resource->shtml
+            screenshot->shtml
             screenshots-box
             video->shtml
             video-content
@@ -25,6 +27,26 @@
 ;;; Components.
 ;;;
 
+(define (resource->shtml resource)
+  `(a
+    (@ (class "community-preview item-preview")
+       (href ,(resource-link resource)))
+    (div
+     (@ (class "community-image"))
+     (div
+      (img
+       (@ (class "responsive-image")
+          (src ,(or (resource-preview resource)
+                    (case (resource-type resource)
+                      ((video) (guix-url "static/base/img/videos-icon.png"))
+                      ((article blog) (guix-url "static/base/img/manual-icon.png")))))
+          (alt "")))))
+    (h3 ,(resource-title resource))
+    (p
+     ,(G_ `(" published " ,(date->string (resource-date resource) "~b ~d, ~Y")
+            " by " ,(resource-author resource)
+            " in " ,(resource-language resource))))))
+
 (define (screenshot->shtml shot)
   "Return an SHTML representation of the given screenshot object.
 
diff --git a/website/apps/media/types.scm b/website/apps/media/types.scm
index 50c0989..ab54af8 100644
--- a/website/apps/media/types.scm
+++ b/website/apps/media/types.scm
@@ -5,7 +5,16 @@
 
 (define-module (apps media types)
   #:use-module (srfi srfi-9)
-  #:export (screenshot
+  #:export (resource
+            resource?
+            resource-author
+            resource-date
+            resource-language
+            resource-link
+            resource-preview
+            resource-title
+            resource-type
+            screenshot
             screenshot?
             screenshot-caption
             screenshot-image
@@ -32,6 +41,58 @@
 ;;; Data types.
 ;;;
 
+;;; Resource (record type)
+;;; ----------------------
+;;;
+;;; A community resource object represents a link to a resource created outside
+;;; of the Guix project, that talks about Guix.
+;;;
+;;; Objects of this type can be created with the "resource" precodure (see
+;;; Helper procedures below).
+;;;
+;;; Fields:
+;;;
+;;; title (string)
+;;;   The title of the resource
+;;;
+;;; link (string)
+;;;   The link to the resource
+;;;
+;;; author (string)
+;;;   The name of the author
+;;;
+;;; date (date)
+;;;   The date of publication
+;;;
+;;; preview (string)
+;;;   A URL to a small size image that represents the resource, or `#f' if
+;;;   it cannot be represented by an image.
+;;;
+;;; language (string)
+;;;   The name of the language in which the resource is written or spoken.
+;;;
+;;; type (symbol)
+;;;   The type of the resource, which can be one of:
+;;;   - 'article: a scientific or journalistic publication
+;;;   - 'blog: a blog post
+;;;   - 'video: a video presentation
+(define-record-type <resource>
+  (make-resource title link author date preview language type)
+  resource?
+  (title    resource-title)
+  (link     resource-link)
+  (author   resource-author)
+  (date     resource-date)
+  (preview  resource-preview)
+  (language resource-language)
+  (type     resource-type))
+
+;;; Helper procedures.
+
+(define* (resource #:key title link author date preview language type)
+  "Return a <screenshot> object with the given attributes."
+  (make-resource title link author date preview language type))
+
 ;;; Screenshot (record type)
 ;;; ------------------------
 ;;;
diff --git a/website/static/base/css/index.css b/website/static/base/css/index.css
index ea52a6d..707091b 100644
--- a/website/static/base/css/index.css
+++ b/website/static/base/css/index.css
@@ -66,6 +66,18 @@ h3 {
     color: #E6E6E6;
 }
 
+.resource-box {
+    padding: 40px 10px 0px 10px;
+    display: flex;
+    flex-direction: row;
+    flex-wrap: wrap;
+}
+
+.community-preview {
+    max-width: 270px;
+    padding: 0.5em;
+}
+
 .screenshots-box {
     padding: 40px 0px 0px 0px;
 }
diff --git a/website/static/media/css/community.css b/website/static/media/css/community.css
new file mode 100644
index 0000000..54de8d7
--- /dev/null
+++ b/website/static/media/css/community.css
@@ -0,0 +1,13 @@
+.community-image {
+  width: 180px;
+  height: 180px;
+  display: flex;
+  margin: auto;
+  flex-direction: row;
+  align-items: center;
+}
+
+.community-image img {
+  max-width: 180px;
+  max-height: 180px;
+}
diff --git a/website/static/media/img/community/carl-dong-bitcoin-security.webp b/website/static/media/img/community/carl-dong-bitcoin-security.webp
new file mode 100644
index 0000000000000000000000000000000000000000..017c00dd5c4b76614102b50a6bdb2f6887145a07
GIT binary patch
literal 13952
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

literal 0
HcmV?d00001

-- 
2.28.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-11-19 14:37 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-08 22:38 [bug#43871] [PATCH website] Add community page Julien Lepiller
2020-10-08 23:16 ` zimoun
2020-10-12 16:41 ` Ludovic Courtès
2020-10-12 19:45   ` Brett Gilio
2020-10-13 12:47   ` Luis Felipe via Guix-patches via
2020-10-13 20:06     ` Ludovic Courtès
2020-10-13 20:46       ` Julien Lepiller
2020-11-04 10:38 ` zimoun
2020-11-04 16:12   ` Luis Felipe via Guix-patches via
2020-11-04 18:31     ` zimoun
2020-11-05  0:36       ` Luis Felipe via Guix-patches via
2021-05-25 14:55 ` Luis Felipe via Guix-patches via
2021-05-25 15:07   ` Julien Lepiller
2021-07-01 13:31   ` Luis Felipe via Guix-patches via
2021-11-19 14:36 ` bug#43871: " Julien Lepiller

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.