From patchwork Fri Mar 15 15:33:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "ashish.is--- via Guix-patches\" via" X-Patchwork-Id: 61842 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 2CE3127BBE9; Fri, 15 Mar 2024 15:34:52 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id F1EBC27BBEA for ; Fri, 15 Mar 2024 15:34:45 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rl9Zk-0007LL-FH; Fri, 15 Mar 2024 11:34:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rl9Zi-0007KJ-9P for guix-patches@gnu.org; Fri, 15 Mar 2024 11:34:26 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rl9Zh-00046Y-OF for guix-patches@gnu.org; Fri, 15 Mar 2024 11:34:25 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rl9aH-0007Wr-Uz for guix-patches@gnu.org; Fri, 15 Mar 2024 11:35:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69783] [PATCH v2] website: Convert old style sheets into a theme. References: <9cac9566-3716-1079-1d53-215cb7fa547b@zoho.com> In-Reply-To: <9cac9566-3716-1079-1d53-215cb7fa547b@zoho.com> Resent-From: sirgazil@zoho.com Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 15 Mar 2024 15:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69783 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69783@debbugs.gnu.org Cc: Luis Felipe Received: via spool by 69783-submit@debbugs.gnu.org id=B69783.171051689128920 (code B ref 69783); Fri, 15 Mar 2024 15:35:01 +0000 Received: (at 69783) by debbugs.gnu.org; 15 Mar 2024 15:34:51 +0000 Received: from localhost ([127.0.0.1]:53600 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rl9a4-0007WL-Ci for submit@debbugs.gnu.org; Fri, 15 Mar 2024 11:34:51 -0400 Received: from sender3-pp-o98.zoho.com ([136.143.184.98]:25829) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rl9Zz-0007W8-BX for 69783@debbugs.gnu.org; Fri, 15 Mar 2024 11:34:47 -0400 Delivered-To: sirgazil@zoho.com ARC-Seal: i=1; a=rsa-sha256; t=1710516844; cv=none; d=zohomail.com; s=zohoarc; b=GxE2rkKeoHq1MANGSWKze0CmrerF9ChS0aYjzv/MPwQHMGqYFcVFHzCJrMY19aozl/Gvh6BDZBSf5N9YQm79dlmfwPIRkwCjIS/wbaiueL7hb/NffQGzIf+KSzqIv7Cfymr4ZUqLzBrodL6glBqPpoxLsCeqMD3sZ/MJhNn/NSY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710516844; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=d0rcFn9oNwffUe8w6E51ExiQURsIOgkhZLMzvfCJUg8=; b=NlKDy9ql4KwkcuvxZhukaBwhPb3EIGdDVWYr01fyU3nNDfvvPUB8n+OiSejt3XDMWYbtdnGo7PLMrs6Z1hgTBLxxDpNRs/GMflbzPF9k2w0mivA/zcouA9uCi2sEJh8fS9o6wu1hdDuArAxxEHfTHte+TNx8EhmrilQJohLLd8c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=sirgazil@zoho.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1710516844; s=zm2022; d=zoho.com; i=sirgazil@zoho.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Feedback-ID:Message-Id:Reply-To; bh=d0rcFn9oNwffUe8w6E51ExiQURsIOgkhZLMzvfCJUg8=; b=VS2tQu3LNfxh3DFNRy/RGB/s/a4n9dCG59smsjtf0Jb0uygvAADrUhtoYV8z5aGB MTyHy3EOySS2rpdbjQEP+awuo5Y9LdoU/ayzOImaOyOinewfdXEJImN1G4sv85ENWGO sMqh/EPShSdWqSi16+5QHMqdJJtQj8stFyI6hssk= Received: from gnu.tigoune.com.co (191.95.157.147 [191.95.157.147]) by mx.zohomail.com with SMTPS id 1710516842533665.8770423825996; Fri, 15 Mar 2024 08:34:02 -0700 (PDT) Date: Fri, 15 Mar 2024 10:33:32 -0500 Message-ID: <20240315153337.5713-1-sirgazil@zoho.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Feedback-ID: rr08011227051b60be574d700b2b975e920000c68a552c5d97f153895c4f833665c5fa82df420dfafd5d6203:zu08011227e8bc7df906179b8624557eb800001add0f0f8b908d33566ece83347c52697ac077ba7c24a214cf:rf08011226bf0b9bb56308060fc865117b0000d2c7ad70d4820bbed47487badf7df596e953f5a1f06bcea6:ZohoMail X-ZohoMailClient: External X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: sirgazil@zoho.com X-ACL-Warn: , sirgazil--- via Guix-patches X-Patchwork-Original-From: sirgazil--- via Guix-patches via From: "ashish.is--- via Guix-patches\" via" Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From: Luis Felipe This change introduces the concept of website themes to separate the look and feel of the website from unrelated static files and make it easier to update themes, create new ones or switch between them. * website/themes/initial: New theme. * website/haunt.scm (site): Include the "themes" directory. * website/apps/base/utils.scm (guix-website-theme): New variable. (theme-url): New URL shorthand procedure. The following template files were updated to use the new theme URL shorthand: * website/apps/base/templates/about.scm * website/apps/base/templates/components.scm * website/apps/base/templates/contact.scm * website/apps/base/templates/contribute.scm * website/apps/base/templates/cuirass.scm * website/apps/base/templates/donate.scm * website/apps/base/templates/graphics.scm * website/apps/base/templates/help.scm * website/apps/base/templates/home.scm * website/apps/base/templates/irc.scm * website/apps/base/templates/menu.scm * website/apps/base/templates/security.scm * website/apps/base/templates/theme.scm * website/apps/blog/templates/feed.scm * website/apps/blog/templates/post-list.scm * website/apps/blog/templates/post.scm * website/apps/blog/templates/tag.scm * website/apps/download/templates/download-latest.scm * website/apps/download/templates/download.scm * website/apps/media/templates/components.scm * website/apps/media/templates/publication-list.scm * website/apps/media/templates/screenshot.scm * website/apps/media/templates/screenshots-overview.scm * website/apps/media/templates/video-list.scm * website/apps/media/templates/video.scm The following files were moved to the "initial" theme: * website/static/base/css/breadcrumbs.css -> website/themes/initial/css/breadcrumbs.css * website/static/base/css/buttons.css -> website/themes/initial/css/buttons.css * website/static/base/css/code.css -> website/themes/initial/css/code.css * website/static/base/css/common.css -> website/themes/initial/css/common.css * website/static/base/css/contact.css -> website/themes/initial/css/contact.css * website/static/base/css/download.css -> website/themes/initial/css/download.css * website/static/base/css/elements.css -> website/themes/initial/css/elements.css * website/static/base/css/footer.css -> website/themes/initial/css/footer.css * website/static/base/css/index.css -> website/themes/initial/css/index.css * website/static/base/css/item-preview.css -> website/themes/initial/css/item-preview.css * website/static/base/css/manual.css -> website/themes/initial/css/manual.css * website/static/base/css/menu.css -> website/themes/initial/css/menu.css * website/static/base/css/messages.css -> website/themes/initial/css/messages.css * website/static/base/css/navbar.css -> website/themes/initial/css/navbar.css * website/static/base/css/page.css -> website/themes/initial/css/page.css * website/static/blog/css/post.css -> website/themes/initial/css/post.css * website/static/base/css/sidebar.css -> website/themes/initial/css/sidebar.css * website/static/base/img/Guix-logo.png -> website/themes/initial/img/Guix-logo.png * website/static/base/img/Guix.png -> website/themes/initial/img/Guix.png * website/static/base/img/back-btn-bg.png -> website/themes/initial/img/back-btn-bg.png * website/static/base/img/breadcrumbs-bg.png -> website/themes/initial/img/breadcrumbs-bg.png * website/static/base/img/chat-icon.png -> website/themes/initial/img/chat-icon.png * website/static/base/img/checkerboard-bg.png -> website/themes/initial/img/checkerboard-bg.png * website/static/base/img/cookbook-icon.png -> website/themes/initial/img/cookbook-icon.png * website/static/base/img/depression-shadow-top.png -> website/themes/initial/img/depression-shadow-top.png * website/static/base/img/dropdown-bg.png -> website/themes/initial/img/dropdown-bg.png * website/static/base/img/email-icon.png -> website/themes/initial/img/email-icon.png * website/static/base/img/featured-box-bg.png -> website/themes/initial/img/featured-box-bg.png * website/static/base/img/feed-bg-white.png -> website/themes/initial/img/feed-bg-white.png * website/static/base/img/feed.png -> website/themes/initial/img/feed.png * website/static/base/img/feed.svg -> website/themes/initial/img/feed.svg * website/static/base/img/h-separator-dark.png -> website/themes/initial/img/h-separator-dark.png * website/static/base/img/h-separator.png -> website/themes/initial/img/h-separator.png * website/static/base/img/icon.png -> website/themes/initial/img/icon.png * website/static/base/img/icon.svg -> website/themes/initial/img/icon.svg * website/static/base/img/icon-set.svg -> website/themes/initial/img/icon-set.svg * website/static/base/img/language-picker.svg -> website/themes/initial/img/language-picker.svg * website/static/base/img/library-icon.png -> website/themes/initial/img/library-icon.png * website/static/base/img/link-arrow-shaper.svg -> website/themes/initial/img/link-arrow-shaper.svg * website/static/base/img/link-arrow.png -> website/themes/initial/img/link-arrow.png * website/static/base/img/manual-icon.png -> website/themes/initial/img/manual-icon.png * website/static/base/img/manual-latest-icon.png -> website/themes/initial/img/manual-latest-icon.png * website/static/base/img/menu-btn-bg.png -> website/themes/initial/img/menu-btn-bg.png * website/static/base/img/menu-item-active-bg.png -> website/themes/initial/img/menu-item-active-bg.png * website/static/base/img/more-info-bg.png -> website/themes/initial/img/more-info-bg.png * website/static/base/img/noise-bg.png -> website/themes/initial/img/noise-bg.png * website/static/base/img/videos-icon.png -> website/themes/initial/img/videos-icon.png * website/static/base/img/white-star.png -> website/themes/initial/img/white-star.png * website/static/base/img/wiki-icon.png -> website/themes/initial/img/wiki-icon.png * website/static/media/css/publications.css -> website/themes/initial/css/publications.css * website/static/media/css/screenshots.css -> website/themes/initial/css/screenshots.css * website/static/media/css/video-list.css -> website/themes/initial/css/video-list.css * website/static/media/css/video-preview.css -> website/themes/initial/css/video-preview.css * website/static/media/css/video.css -> website/themes/initial/css/video.css * website/static/media/img/playing-icon.svg -> website/themes/initial/img/playing-icon.svg * website/static/media/img/playlist-icon.svg -> website/themes/initial/img/playlist-icon.svg * website/static/media/img/scientific-mark.svg -> website/themes/initial/img/scientific-mark.svg * website/static/packages/css/letter-selector.css -> website/themes/initial/css/letter-selector.css * website/static/packages/css/package-list.css -> website/themes/initial/css/package-list.css * website/static/packages/css/package.css -> website/themes/initial/css/package.css * website/static/packages/img/red-tag.png -> website/themes/initial/img/red-tag.png The following files were removed: * website/static/base/img/GuixSD-logo.png: Delete (obsolete). --- website/apps/base/templates/about.scm | 2 +- website/apps/base/templates/components.scm | 6 +++--- website/apps/base/templates/contact.scm | 6 +++--- website/apps/base/templates/contribute.scm | 4 ++-- website/apps/base/templates/cuirass.scm | 2 +- website/apps/base/templates/donate.scm | 2 +- website/apps/base/templates/graphics.scm | 4 ++-- website/apps/base/templates/help.scm | 20 +++++++++--------- website/apps/base/templates/home.scm | 6 +++--- website/apps/base/templates/irc.scm | 2 +- website/apps/base/templates/menu.scm | 2 +- website/apps/base/templates/security.scm | 2 +- website/apps/base/templates/theme.scm | 18 ++++++++-------- website/apps/base/utils.scm | 20 +++++++++++++++++- website/apps/blog/templates/feed.scm | 2 +- website/apps/blog/templates/post-list.scm | 6 +++--- website/apps/blog/templates/post.scm | 6 +++--- website/apps/blog/templates/tag.scm | 6 +++--- .../download/templates/download-latest.scm | 4 ++-- website/apps/download/templates/download.scm | 4 ++-- website/apps/media/templates/components.scm | 6 +++--- .../apps/media/templates/publication-list.scm | 4 ++-- website/apps/media/templates/screenshot.scm | 4 ++-- .../media/templates/screenshots-overview.scm | 2 +- website/apps/media/templates/video-list.scm | 4 ++-- website/apps/media/templates/video.scm | 4 ++-- website/haunt.scm | 1 + website/static/base/img/GuixSD-logo.png | Bin 6785 -> 0 bytes website/themes/README.org | 6 ++++++ .../initial}/css/breadcrumbs.css | 0 .../base => themes/initial}/css/buttons.css | 0 .../base => themes/initial}/css/code.css | 0 .../base => themes/initial}/css/common.css | 0 .../base => themes/initial}/css/contact.css | 0 .../base => themes/initial}/css/download.css | 0 .../base => themes/initial}/css/elements.css | 0 .../base => themes/initial}/css/footer.css | 0 .../base => themes/initial}/css/index.css | 0 .../initial}/css/item-preview.css | 0 .../initial}/css/letter-selector.css | 0 .../base => themes/initial}/css/manual.css | 0 .../base => themes/initial}/css/menu.css | 0 .../base => themes/initial}/css/messages.css | 0 .../base => themes/initial}/css/navbar.css | 0 .../initial}/css/package-list.css | 0 .../initial}/css/package.css | 0 .../base => themes/initial}/css/page.css | 0 .../blog => themes/initial}/css/post.css | 0 .../initial}/css/publications.css | 2 +- .../initial}/css/screenshots.css | 0 .../base => themes/initial}/css/sidebar.css | 2 +- .../initial}/css/video-list.css | 0 .../initial}/css/video-preview.css | 0 .../media => themes/initial}/css/video.css | 0 .../base => themes/initial}/img/Guix-logo.png | Bin .../base => themes/initial}/img/Guix.png | Bin .../initial}/img/back-btn-bg.png | Bin .../initial}/img/breadcrumbs-bg.png | Bin .../base => themes/initial}/img/chat-icon.png | Bin .../initial}/img/checkerboard-bg.png | Bin .../initial}/img/cookbook-icon.png | Bin .../initial}/img/depression-shadow-top.png | Bin .../initial}/img/dropdown-bg.png | Bin .../initial}/img/email-icon.png | Bin .../initial}/img/featured-box-bg.png | Bin .../initial}/img/feed-bg-white.png | Bin .../base => themes/initial}/img/feed.png | Bin .../base => themes/initial}/img/feed.svg | 0 .../initial}/img/h-separator-dark.png | Bin .../initial}/img/h-separator.png | Bin .../base => themes/initial}/img/icon-set.svg | 0 .../base => themes/initial}/img/icon.png | Bin .../base => themes/initial}/img/icon.svg | 0 .../initial}/img/language-picker.svg | 0 .../initial}/img/library-icon.png | Bin .../initial}/img/link-arrow-shaper.svg | 0 .../initial}/img/link-arrow.png | Bin .../initial}/img/manual-icon.png | Bin .../initial}/img/manual-latest-icon.png | Bin .../initial}/img/menu-btn-bg.png | Bin .../initial}/img/menu-item-active-bg.png | Bin .../initial}/img/more-info-bg.png | Bin .../base => themes/initial}/img/noise-bg.png | Bin .../initial}/img/playing-icon.svg | 0 .../initial}/img/playlist-icon.svg | 0 .../initial}/img/red-tag.png | Bin .../initial}/img/scientific-mark.svg | 0 .../initial}/img/videos-icon.png | Bin .../initial}/img/white-star.png | Bin .../base => themes/initial}/img/wiki-icon.png | Bin 90 files changed, 92 insertions(+), 67 deletions(-) delete mode 100644 website/static/base/img/GuixSD-logo.png create mode 100644 website/themes/README.org rename website/{static/base => themes/initial}/css/breadcrumbs.css (100%) rename website/{static/base => themes/initial}/css/buttons.css (100%) rename website/{static/base => themes/initial}/css/code.css (100%) rename website/{static/base => themes/initial}/css/common.css (100%) rename website/{static/base => themes/initial}/css/contact.css (100%) rename website/{static/base => themes/initial}/css/download.css (100%) rename website/{static/base => themes/initial}/css/elements.css (100%) rename website/{static/base => themes/initial}/css/footer.css (100%) rename website/{static/base => themes/initial}/css/index.css (100%) rename website/{static/base => themes/initial}/css/item-preview.css (100%) rename website/{static/packages => themes/initial}/css/letter-selector.css (100%) rename website/{static/base => themes/initial}/css/manual.css (100%) rename website/{static/base => themes/initial}/css/menu.css (100%) rename website/{static/base => themes/initial}/css/messages.css (100%) rename website/{static/base => themes/initial}/css/navbar.css (100%) rename website/{static/packages => themes/initial}/css/package-list.css (100%) rename website/{static/packages => themes/initial}/css/package.css (100%) rename website/{static/base => themes/initial}/css/page.css (100%) rename website/{static/blog => themes/initial}/css/post.css (100%) rename website/{static/media => themes/initial}/css/publications.css (92%) rename website/{static/media => themes/initial}/css/screenshots.css (100%) rename website/{static/base => themes/initial}/css/sidebar.css (96%) rename website/{static/media => themes/initial}/css/video-list.css (100%) rename website/{static/media => themes/initial}/css/video-preview.css (100%) rename website/{static/media => themes/initial}/css/video.css (100%) rename website/{static/base => themes/initial}/img/Guix-logo.png (100%) rename website/{static/base => themes/initial}/img/Guix.png (100%) rename website/{static/base => themes/initial}/img/back-btn-bg.png (100%) rename website/{static/base => themes/initial}/img/breadcrumbs-bg.png (100%) rename website/{static/base => themes/initial}/img/chat-icon.png (100%) rename website/{static/base => themes/initial}/img/checkerboard-bg.png (100%) rename website/{static/base => themes/initial}/img/cookbook-icon.png (100%) rename website/{static/base => themes/initial}/img/depression-shadow-top.png (100%) rename website/{static/base => themes/initial}/img/dropdown-bg.png (100%) rename website/{static/base => themes/initial}/img/email-icon.png (100%) rename website/{static/base => themes/initial}/img/featured-box-bg.png (100%) rename website/{static/base => themes/initial}/img/feed-bg-white.png (100%) rename website/{static/base => themes/initial}/img/feed.png (100%) rename website/{static/base => themes/initial}/img/feed.svg (100%) rename website/{static/base => themes/initial}/img/h-separator-dark.png (100%) rename website/{static/base => themes/initial}/img/h-separator.png (100%) rename website/{static/base => themes/initial}/img/icon-set.svg (100%) rename website/{static/base => themes/initial}/img/icon.png (100%) rename website/{static/base => themes/initial}/img/icon.svg (100%) rename website/{static/base => themes/initial}/img/language-picker.svg (100%) rename website/{static/base => themes/initial}/img/library-icon.png (100%) rename website/{static/base => themes/initial}/img/link-arrow-shaper.svg (100%) rename website/{static/base => themes/initial}/img/link-arrow.png (100%) rename website/{static/base => themes/initial}/img/manual-icon.png (100%) rename website/{static/base => themes/initial}/img/manual-latest-icon.png (100%) rename website/{static/base => themes/initial}/img/menu-btn-bg.png (100%) rename website/{static/base => themes/initial}/img/menu-item-active-bg.png (100%) rename website/{static/base => themes/initial}/img/more-info-bg.png (100%) rename website/{static/base => themes/initial}/img/noise-bg.png (100%) rename website/{static/media => themes/initial}/img/playing-icon.svg (100%) rename website/{static/media => themes/initial}/img/playlist-icon.svg (100%) rename website/{static/packages => themes/initial}/img/red-tag.png (100%) rename website/{static/media => themes/initial}/img/scientific-mark.svg (100%) rename website/{static/base => themes/initial}/img/videos-icon.png (100%) rename website/{static/base => themes/initial}/img/white-star.png (100%) rename website/{static/base => themes/initial}/img/wiki-icon.png (100%) base-commit: 3101f165670d0361ba85c218029c70d25b33b313 diff --git a/website/apps/base/templates/about.scm b/website/apps/base/templates/about.scm index 1cf2f65..68c8815 100644 --- a/website/apps/base/templates/about.scm +++ b/website/apps/base/templates/about.scm @@ -26,7 +26,7 @@ system|GNU Hurd|GNU Guix package manager") #\|) #:active-menu-item (C_ "website menu" "About") #:css (list - (guix-url "static/base/css/page.css")) + (theme-url "css/page.css")) #:crumbs (list (crumb (C_ "website menu" "About") "./")) #:content `(main diff --git a/website/apps/base/templates/components.scm b/website/apps/base/templates/components.scm index 2a6881e..82f3b85 100644 --- a/website/apps/base/templates/components.scm +++ b/website/apps/base/templates/components.scm @@ -179,8 +179,8 @@ `(img (@ (class "h-separator") ,(if light - `(src ,(guix-url "static/base/img/h-separator.png")) - `(src ,(guix-url "static/base/img/h-separator-dark.png"))) + `(src ,(theme-url "img/h-separator.png")) + `(src ,(theme-url "img/h-separator-dark.png"))) (alt "")))) (define (horizontal-skip) @@ -191,7 +191,7 @@ "Return SHTML for a visible separator to be used in a dropdown menu like a menu item." `(img (@ (class "hline") - (src ,(guix-url "static/base/img/h-separator.png")) + (src ,(theme-url "img/h-separator.png")) (alt "")))) diff --git a/website/apps/base/templates/contact.scm b/website/apps/base/templates/contact.scm index 49d8393..33d4abf 100644 --- a/website/apps/base/templates/contact.scm +++ b/website/apps/base/templates/contact.scm @@ -25,9 +25,9 @@ system|GNU Hurd|GNU Guix package manager|Community|Mailing lists|IRC \ channels|Bug reports|Help") #\|) #:active-menu-item (C_ "website menu" "About") #:css (list - (guix-url "static/base/css/page.css") - (guix-url "static/base/css/buttons.css") - (guix-url "static/base/css/contact.css")) + (theme-url "css/page.css") + (theme-url "css/buttons.css") + (theme-url "css/contact.css")) #:crumbs (list (crumb (C_ "website menu" "Contact") "./")) #:content `(main diff --git a/website/apps/base/templates/contribute.scm b/website/apps/base/templates/contribute.scm index 42ffcb9..703267f 100644 --- a/website/apps/base/templates/contribute.scm +++ b/website/apps/base/templates/contribute.scm @@ -25,8 +25,8 @@ system|GNU Hurd|GNU Guix package manager|Volunteer|Development|\ Translation|I18N|L10N|Artwork") #\|) #:active-menu-item (C_ "website menu" "About") #:css (list - (guix-url "static/base/css/page.css") - (guix-url "static/base/css/item-preview.css")) + (theme-url "css/page.css") + (theme-url "css/item-preview.css")) #:crumbs (list (crumb (C_ "website menu" "Contribute") "./")) #:content `(main diff --git a/website/apps/base/templates/cuirass.scm b/website/apps/base/templates/cuirass.scm index 00fe4b9..b421530 100644 --- a/website/apps/base/templates/cuirass.scm +++ b/website/apps/base/templates/cuirass.scm @@ -21,7 +21,7 @@ (G_ "GNU|Linux|Unix|Free software|Libre software|Operating \ system|GNU Guix package manager|Cuirass|CI") #\|) #:css (list - (guix-url "static/base/css/page.css")) + (theme-url "css/page.css")) #:content `(main (section diff --git a/website/apps/base/templates/donate.scm b/website/apps/base/templates/donate.scm index 5257a57..0a7d796 100644 --- a/website/apps/base/templates/donate.scm +++ b/website/apps/base/templates/donate.scm @@ -25,7 +25,7 @@ system|GNU Hurd|GNU Guix package manager|Donations") #\|) #:active-menu-item (C_ "website menu" "Donate") #:css (list - (guix-url "static/base/css/page.css")) + (theme-url "css/page.css")) #:crumbs (list (crumb (C_ "website menu" "Donate") "./")) #:content `(main diff --git a/website/apps/base/templates/graphics.scm b/website/apps/base/templates/graphics.scm index befbb19..97bfe53 100644 --- a/website/apps/base/templates/graphics.scm +++ b/website/apps/base/templates/graphics.scm @@ -23,7 +23,7 @@ system|GNU Hurd|GNU Guix package manager|Donations|Branding|Logo") #\|) #:active-menu-item (C_ "website menu" "About") #:css (list - (guix-url "static/base/css/page.css")) + (theme-url "css/page.css")) #:crumbs (list (crumb (C_ "website menu" "Graphics") "./")) #:content `(main @@ -40,7 +40,7 @@ system|GNU Hurd|GNU Guix package manager|Donations|Branding|Logo") #\|) ".")) (p (@ (class "centered-text")) - (img (@ (src ,(guix-url "static/base/img/Guix.png")) + (img (@ (src ,(theme-url "img/Guix.png")) ,(G_ `(alt "GNU Guix logotype"))))) ,(G_ `(p diff --git a/website/apps/base/templates/help.scm b/website/apps/base/templates/help.scm index 98bba39..4cacf49 100644 --- a/website/apps/base/templates/help.scm +++ b/website/apps/base/templates/help.scm @@ -27,8 +27,8 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) #:active-menu-item (C_ "website menu" "Help") #:css (list - (guix-url "static/base/css/page.css") - (guix-url "static/base/css/item-preview.css")) + (theme-url "css/page.css") + (theme-url "css/item-preview.css")) #:crumbs (list (crumb (C_ "website menu" "Help") "./")) #:content `(main @@ -43,7 +43,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) (img - (@ (src ,(guix-url "static/base/img/manual-icon.png")) + (@ (src ,(theme-url "img/manual-icon.png")) (alt ""))) ,(G_ `(h3 "GNU Guix Manual " ,(latest-guix-version) "")) ,(G_ @@ -71,7 +71,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) (img - (@ (src ,(guix-url "static/base/img/manual-latest-icon.png")) + (@ (src ,(theme-url "img/manual-latest-icon.png")) (alt ""))) ,(G_ `(h3 "GNU Guix Manual (Latest)")) ,(G_ @@ -86,7 +86,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) - (img (@ (src ,(guix-url "static/base/img/videos-icon.png")) + (img (@ (src ,(theme-url "img/videos-icon.png")) (alt ""))) ,(G_ `(h3 "Videos")) ,(G_ @@ -103,7 +103,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) - (img (@ (src ,(guix-url "static/base/img/cookbook-icon.png")) + (img (@ (src ,(theme-url "img/cookbook-icon.png")) (alt ""))) ,(G_ `(h3 "Cookbook")) ,(G_ @@ -120,7 +120,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) - (img (@ (src ,(guix-url "static/base/img/library-icon.png")) + (img (@ (src ,(theme-url "img/library-icon.png")) (alt ""))) ,(G_ `(h3 "GNU Manuals")) ,(G_ @@ -137,7 +137,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) - (img (@ (src ,(guix-url "static/base/img/wiki-icon.png")) + (img (@ (src ,(theme-url "img/wiki-icon.png")) (alt ""))) ,(G_ `(h3 "Wiki")) ,(G_ @@ -155,7 +155,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) - (img (@ (src ,(guix-url "static/base/img/chat-icon.png")) + (img (@ (src ,(theme-url "img/chat-icon.png")) (alt ""))) ,(G_ `(h3 "IRC Chat")) ,(G_ @@ -176,7 +176,7 @@ system|GNU Hurd|GNU Guix package manager|Help resources") #\|) (div (@ (class "summary-box")) - (img (@ (src ,(guix-url "static/base/img/email-icon.png")) + (img (@ (src ,(theme-url "img/email-icon.png")) (alt ""))) ,(G_ `(h3 "Mailing lists")) ,(G_ diff --git a/website/apps/base/templates/home.scm b/website/apps/base/templates/home.scm index adddd91..aa1fbb5 100644 --- a/website/apps/base/templates/home.scm +++ b/website/apps/base/templates/home.scm @@ -32,9 +32,9 @@ Scheme|Transactional upgrades|Functional package \ management|Reproducibility") #\|) #:active-menu-item (C_ "website menu" "Overview") #:css (list - (guix-url "static/base/css/item-preview.css") - (guix-url "static/base/css/index.css") - (guix-url "static/media/css/video-preview.css")) + (theme-url "css/item-preview.css") + (theme-url "css/index.css") + (theme-url "css/video-preview.css")) #:content `(main ;; Featured content. diff --git a/website/apps/base/templates/irc.scm b/website/apps/base/templates/irc.scm index 13b501f..05dc87a 100644 --- a/website/apps/base/templates/irc.scm +++ b/website/apps/base/templates/irc.scm @@ -23,7 +23,7 @@ (G_ "GNU|Linux|Unix|Free software|Libre software|Operating \ system|GNU Hurd|GNU Guix package manager|IRC|chat") #\|) #:active-menu-item "About" - #:css (list (guix-url "static/base/css/page.css")) + #:css (list (theme-url "css/page.css")) #:crumbs (list (crumb (C_ "webpage title" "Contact") (guix-url "contact/")) (crumb (C_ "webpage title" "IRC") "./")) #:content diff --git a/website/apps/base/templates/menu.scm b/website/apps/base/templates/menu.scm index 5b245f8..db17fc2 100644 --- a/website/apps/base/templates/menu.scm +++ b/website/apps/base/templates/menu.scm @@ -22,4 +22,4 @@ system|GNU Hurd|GNU Guix package manager|GNU Guile|Guile \ Scheme|Transactional upgrades|Functional package \ management|Reproducibility") #\|) #:active-menu-item (C_ "website menu" "Menu") - #:css (list (guix-url "static/base/css/menu.css")))) + #:css (list (theme-url "css/menu.css")))) diff --git a/website/apps/base/templates/security.scm b/website/apps/base/templates/security.scm index 8a72950..09dc5dc 100644 --- a/website/apps/base/templates/security.scm +++ b/website/apps/base/templates/security.scm @@ -30,7 +30,7 @@ system|GNU Hurd|GNU Guix package manager|Security updates") #\|) #:active-menu-item (C_ "website menu" "About") #:css (list - (guix-url "static/base/css/page.css")) + (theme-url "css/page.css")) #:crumbs (list (crumb (C_ "website menu" "Security") "./")) #:content `(main diff --git a/website/apps/base/templates/theme.scm b/website/apps/base/templates/theme.scm index 5f5416f..d410fdc5 100644 --- a/website/apps/base/templates/theme.scm +++ b/website/apps/base/templates/theme.scm @@ -93,13 +93,13 @@ ;; Menu prefetch. (link (@ (rel "prefetch") (href ,(guix-url "menu/index.html")))) ;; Base CSS. - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/elements.css")))) - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/common.css")))) - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/messages.css")))) - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/navbar.css")))) - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/breadcrumbs.css")))) - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/buttons.css")))) - (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/footer.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/elements.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/common.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/messages.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/navbar.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/breadcrumbs.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/buttons.css")))) + (link (@ (rel "stylesheet") (href ,(theme-url "css/footer.css")))) ;; Additional CSS. ,@(map (lambda (style-sheet) `(link (@ (rel "stylesheet") (href ,style-sheet)))) @@ -109,9 +109,9 @@ (title ,(C_ "webpage title" "GNU Guix — Activity Feed")) (href ,(guix-url "feeds/blog.atom")))) (link (@ (rel "icon") (type "image/png") - (href ,(guix-url "static/base/img/icon.png")))) + (href ,(theme-url "img/icon.png")))) (link (@ (rel "icon") (type "image/svg+xml") (sizes "any") - (href ,(guix-url "static/base/img/icon.svg")))) + (href ,(theme-url "img/icon.svg")))) ;; Additional scripts. ,@(map (lambda (script) `(script (@ (src ,script)) "")) diff --git a/website/apps/base/utils.scm b/website/apps/base/utils.scm index bb520be..37ac434 100644 --- a/website/apps/base/utils.scm +++ b/website/apps/base/utils.scm @@ -42,7 +42,8 @@ manual-url-with-language number* paginate - packages-url)) + packages-url + theme-url)) ;;; @@ -65,6 +66,8 @@ path (string-append path "/")))))) +(define guix-website-theme "initial") ; See "themes" directory. + (define latest-guix-version (make-parameter "1.4.0")) @@ -184,6 +187,21 @@ manual. A URL. For example: https://packages.guix.gnu.org/packages/guile/." (string-append "https://packages.guix.gnu.org/" path)) +(define (theme-url subpath) + "Return the URL to a given resource provided by the current website + theme (see 'guix-website-theme' variable). + + SUBPATH (string) + Relative URL path to the resource. For example: 'css/buttons.css'. + + RETURN VALUE (string) + Complete URL to the resource. For example: + 'https://guix.gnu.org/themes/abc/css/buttons.css'." + (string-append (guix-root-url-path) + "themes" "/" + guix-website-theme "/" + subpath)) + ;;; diff --git a/website/apps/blog/templates/feed.scm b/website/apps/blog/templates/feed.scm index 0702318..8284626 100644 --- a/website/apps/blog/templates/feed.scm +++ b/website/apps/blog/templates/feed.scm @@ -30,7 +30,7 @@ (id ,id) (title ,title) (author (name (C_ "feed author name" "GNU Guix")) (uri ,domain)) - (icon ,(guix-url "static/base/img/icon.png")) + (icon ,(theme-url "img/icon.png")) (updated ,(date->string (current-date) "~4")) (link (@ (rel "alternate") (href ,alternate))) diff --git a/website/apps/blog/templates/post-list.scm b/website/apps/blog/templates/post-list.scm index acffce1..6bf81d1 100644 --- a/website/apps/blog/templates/post-list.scm +++ b/website/apps/blog/templates/post-list.scm @@ -33,9 +33,9 @@ management|Reproducibility") #\|) #:index? #false #:active-menu-item (C_ "website menu" "Blog") #:css - (list (guix-url "static/base/css/page.css") - (guix-url "static/base/css/item-preview.css") - (guix-url "static/base/css/sidebar.css")) + (list (theme-url "css/page.css") + (theme-url "css/item-preview.css") + (theme-url "css/sidebar.css")) #:crumbs (list (crumb (C_ "website menu" "Blog") (guix-url "blog/")) (crumb (G_ (string-append "Page " page-number "")) diff --git a/website/apps/blog/templates/post.scm b/website/apps/blog/templates/post.scm index 0e6ad0d..5183d5b 100644 --- a/website/apps/blog/templates/post.scm +++ b/website/apps/blog/templates/post.scm @@ -29,9 +29,9 @@ #:keywords tags #:active-menu-item (C_ "website menu" "Blog") #:css - (list (guix-url "static/base/css/page.css") - (guix-url "static/base/css/code.css") - (guix-url "static/blog/css/post.css")) + (list (theme-url "css/page.css") + (theme-url "css/code.css") + (theme-url "css/post.css")) #:crumbs (list (crumb (C_ "website menu" "Blog") (guix-url "blog/")) (crumb (post-ref post 'title) diff --git a/website/apps/blog/templates/tag.scm b/website/apps/blog/templates/tag.scm index 0145e63..92b9ee3 100644 --- a/website/apps/blog/templates/tag.scm +++ b/website/apps/blog/templates/tag.scm @@ -37,9 +37,9 @@ management|Reproducibility") #\|) #:index? #false #:active-menu-item (C_ "website menu" "Blog") #:css - (list (guix-url "static/base/css/page.css") - (guix-url "static/base/css/item-preview.css") - (guix-url "static/base/css/sidebar.css")) + (list (theme-url "css/page.css") + (theme-url "css/item-preview.css") + (theme-url "css/sidebar.css")) #:crumbs (list (crumb (C_ "website menu" "Blog") (guix-url "blog/")) (crumb tag (guix-url (tag-url-path tag))) diff --git a/website/apps/download/templates/download-latest.scm b/website/apps/download/templates/download-latest.scm index cdcecb7..87e3cfa 100644 --- a/website/apps/download/templates/download-latest.scm +++ b/website/apps/download/templates/download-latest.scm @@ -155,8 +155,8 @@ system|GNU Hurd|GNU Guix package manager|Installer|Source code|\ Package manager") #\|) #:active-menu-item (C_ "website menu" "Download") #:css (list - (guix-url "static/base/css/page.css") - (guix-url "static/base/css/download.css")) + (theme-url "css/page.css") + (theme-url "css/download.css")) #:crumbs (list (crumb (C_ "website menu" "Download") (guix-url "download/")) (crumb (C_ "website menu" "Latest") "./")) diff --git a/website/apps/download/templates/download.scm b/website/apps/download/templates/download.scm index 4ee8e3b..58500b4 100644 --- a/website/apps/download/templates/download.scm +++ b/website/apps/download/templates/download.scm @@ -42,8 +42,8 @@ system|GNU Hurd|GNU Guix package manager|Installer|Source code|\ Package manager") #\|) #:active-menu-item (C_ "website menu" "Download") #:css (list - (guix-url "static/base/css/page.css") - (guix-url "static/base/css/download.css")) + (theme-url "css/page.css") + (theme-url "css/download.css")) #:crumbs (list (crumb (C_ "website menu" "Download") "./")) #:content `(main diff --git a/website/apps/media/templates/components.scm b/website/apps/media/templates/components.scm index 8bedc9f..2c0f551 100644 --- a/website/apps/media/templates/components.scm +++ b/website/apps/media/templates/components.scm @@ -61,7 +61,7 @@ (@ (class "playlist-title")) (img (@ (class "playlist-icon") - (src ,(guix-url "static/media/img/playlist-icon.svg")) + (src ,(theme-url "img/playlist-icon.svg")) (alt ,(G_ "Playlist: ")) (title ,(G_ "Playlist")))) " " @@ -94,7 +94,7 @@ ,(if (publication-scientific? publication) `((img (@ (class "scientific-mark") - (src ,(guix-url "static/media/img/scientific-mark.svg")) + (src ,(theme-url "img/scientific-mark.svg")) ;; TRANSLATORS: This is a tag that indicates a ;; publication is scientific. (alt ,(G_ "[Scientific]")) @@ -182,7 +182,7 @@ top." ,(if playing? `((img (@ (class "playing-icon") - (src ,(guix-url "static/media/img/playing-icon.svg")) + (src ,(theme-url "img/playing-icon.svg")) (alt ;; TRANSLATORS: Alternative text indicating that diff --git a/website/apps/media/templates/publication-list.scm b/website/apps/media/templates/publication-list.scm index bcc5744..2ef666a 100644 --- a/website/apps/media/templates/publication-list.scm +++ b/website/apps/media/templates/publication-list.scm @@ -27,8 +27,8 @@ (string-split (G_ "Publications|Papers") #\|) #:active-menu-item (C_ "website menu" "Publications") #:css (list - (guix-url "static/base/css/page.css") - (guix-url "static/media/css/publications.css")) + (theme-url "css/page.css") + (theme-url "css/publications.css")) #:crumbs (list (crumb (C_ "website menu" "Publications") "./")) #:content `(main diff --git a/website/apps/media/templates/screenshot.scm b/website/apps/media/templates/screenshot.scm index b2d42b8..a942ef6 100644 --- a/website/apps/media/templates/screenshot.scm +++ b/website/apps/media/templates/screenshot.scm @@ -26,8 +26,8 @@ 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/media/css/screenshots.css")) + #:css (list (theme-url "css/index.css") + (theme-url "css/screenshots.css")) #:content `(main (section diff --git a/website/apps/media/templates/screenshots-overview.scm b/website/apps/media/templates/screenshots-overview.scm index 04a9fc6..7663ad9 100644 --- a/website/apps/media/templates/screenshots-overview.scm +++ b/website/apps/media/templates/screenshots-overview.scm @@ -23,7 +23,7 @@ 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")) + #:css (list (theme-url "css/index.css")) #:content `(main (section diff --git a/website/apps/media/templates/video-list.scm b/website/apps/media/templates/video-list.scm index 676abba..91e56fe 100644 --- a/website/apps/media/templates/video-list.scm +++ b/website/apps/media/templates/video-list.scm @@ -33,8 +33,8 @@ system|GNU Hurd|GNU Guix package manager|Help resources|Videos") #\|) #:active-menu-item (C_ "website menu" "Videos") #:css (list - (guix-url "static/media/css/video-list.css") - (guix-url "static/media/css/video-preview.css")) + (theme-url "css/video-list.css") + (theme-url "css/video-preview.css")) #:crumbs (list (crumb (C_ "website menu" "Videos") (guix-url "videos/"))) #:content `(main diff --git a/website/apps/media/templates/video.scm b/website/apps/media/templates/video.scm index cb74207..8bb76f9 100644 --- a/website/apps/media/templates/video.scm +++ b/website/apps/media/templates/video.scm @@ -45,8 +45,8 @@ system|GNU Hurd|GNU Guix package manager|Help resources|Videos") #\|) #:active-menu-item (C_ "website menu" "Videos") #:css (list - (guix-url "static/media/css/video.css") - (guix-url "static/media/css/video-preview.css")) + (theme-url "css/video.css") + (theme-url "css/video-preview.css")) #:crumbs (list (crumb (C_ "website menu" "Videos") (guix-url "videos/")) (crumb (video-title video) "./")) #:content diff --git a/website/haunt.scm b/website/haunt.scm index 455bdc8..34f69cc 100644 --- a/website/haunt.scm +++ b/website/haunt.scm @@ -24,4 +24,5 @@ blog:builder download:builder media:builder + (static-directory "themes") (static-directory "static")))) diff --git a/website/static/base/img/GuixSD-logo.png b/website/static/base/img/GuixSD-logo.png deleted file mode 100644 index 4e520dbf1a21d9c90990758305e57ad5d3201e4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6785 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