diff options
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | Makefile | 60 | ||||
-rw-r--r-- | build-aux/build-home-page.el | 40 | ||||
-rw-r--r-- | manifest.scm | 8 | ||||
-rw-r--r-- | tissue.scm | 58 |
5 files changed, 63 insertions, 109 deletions
@@ -1,5 +1 @@ -doc/*.go -doc/*.html -website/fonts -website/index.html -website/manual
\ No newline at end of file +.tissue
\ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index f0d256e..0000000 --- a/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# guix-forge --- Guix software forge meta-service -# Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> -# -# This file is part of guix-forge. -# -# guix-forge is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# guix-forge is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with guix-forge. If not, see <https://www.gnu.org/licenses/>. - -EMACS = emacs -GUILD = guild -SKRIBILO = skribilo - -sources = $(wildcard forge/*.scm) $(wildcard forge/*/*.scm) -doc_skribilo_config = doc/skribilo.scm -doc_skribilo_config_go = $(doc_skribilo_config:.scm=.go) -doc_sources = doc/forge.skb -doc_snippets = $(wildcard doc/snippets/*.scm) -doc_html = $(doc_sources:.skb=.html) -fonts = $(addprefix $(GUIX_ENVIRONMENT)/share/fonts/web/, charter_regular.woff2 FiraCode-Regular.woff2 FiraCode-SemiBold.woff2) - -.PHONY: all html clean -all: ; - -%.go: %.scm - $(GUILD) compile -L . -o $@ $< - -html: $(doc_html) - -$(doc_html): $(doc_sources) $(doc_snippets) $(sources) $(doc_skribilo_config_go) - rm -rf $@ - mkdir -p $@ - GUILE_LOAD_PATH=$(CURDIR):$(GUILE_LOAD_PATH) GUILE_LOAD_COMPILED_PATH=$(CURDIR):$(GUILE_LOAD_COMPILED_PATH) $(SKRIBILO) --target=html $< --output=$@/index.html - -website: website/index.html website/manual/dev/en website/fonts - -website/index.html: README.org build-aux/build-home-page.el - $(EMACS) -Q --batch --load build-aux/build-home-page.el --funcall build-website - -website/manual/dev/en: $(doc_html) - rm -rf $@ - mkdir -p $(dir $@) - cp -vr $^ $@ - -website/fonts: $(fonts) - rm -rf $@ - mkdir -p $@ - cp -v $^ $@/ - -clean: - rm -rf $(doc_skribilo_config_go) website/index.html website/manual website/fonts diff --git a/build-aux/build-home-page.el b/build-aux/build-home-page.el deleted file mode 100644 index bdf79a0..0000000 --- a/build-aux/build-home-page.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; guix-forge --- Guix software forge meta-service -;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> -;;; -;;; This file is part of guix-forge. -;;; -;;; guix-forge is free software: you can redistribute it and/or modify -;;; it under the terms of the GNU General Public License as published -;;; by the Free Software Foundation, either version 3 of the License, -;;; or (at your option) any later version. -;;; -;;; guix-forge is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with guix-forge. If not, see -;;; <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This Emacs script generates the home page of the website from -;; README.org. - -;;; Code: - -(require 'ox-html) - -(setq make-backup-files nil - org-export-with-section-numbers nil - org-export-with-sub-superscripts nil - org-export-with-toc nil - org-html-head "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />" - org-html-head-include-default-style nil - org-html-head-include-scripts nil - org-html-postamble nil) - -(defun build-website () - (with-current-buffer (find-file "README.org") - (org-export-to-file 'html "website/index.html"))) diff --git a/manifest.scm b/manifest.scm index d931833..4101d1f 100644 --- a/manifest.scm +++ b/manifest.scm @@ -1,5 +1,5 @@ ;;; guix-forge --- Guix software forge meta-service -;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2022, 2023 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of guix-forge. ;;; @@ -17,10 +17,10 @@ ;;; along with guix-forge. If not, see ;;; <https://www.gnu.org/licenses/>. -(use-modules (gnu packages autotools) +(use-modules (forge tissue) + (gnu packages autotools) ((gnu packages fonts) #:prefix guix:) (gnu packages gettext) - (gnu packages guile) ((gnu packages skribilo) #:prefix guix:) (guix git-download) (guix packages) @@ -87,4 +87,4 @@ ,@(package-native-inputs guix:skribilo)))))) (packages->manifest - (list font-charter font-fira-code guile-3.0 skribilo)) + (list font-charter font-fira-code tissue)) diff --git a/tissue.scm b/tissue.scm new file mode 100644 index 0000000..8cbfa9a --- /dev/null +++ b/tissue.scm @@ -0,0 +1,58 @@ +;;; guix-forge --- Guix software forge meta-service +;;; Copyright © 2023 Arun Isaac <arunisaac@systemreboot.net> +;;; +;;; This file is part of guix-forge. +;;; +;;; guix-forge is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published +;;; by the Free Software Foundation, either version 3 of the License, +;;; or (at your option) any later version. +;;; +;;; guix-forge is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with guix-forge. If not, see +;;; <https://www.gnu.org/licenses/>. + +(use-modules (tissue skribilo)) + +(tissue-configuration + #:indexed-documents (append (map (lambda (filename) + (slot-set (read-gemtext-issue filename) + 'web-uri + (string-append "/" (string-remove-suffix ".gmi" filename)))) + (gemtext-files-in-directory "issues")) + (map (lambda (identifier) + (slot-set (document-fragment "doc/forge.skb" identifier) + 'web-uri + (string-append "/manual/dev/en/#" + identifier))) + (list "chapter-introduction" + "chapter-tutorial" + "chapter-reference")) + (map (lambda (commit) + (slot-set commit + 'web-uri + (string-append "https://git.systemreboot.net/guix-forge/commit/?id=" + (commit-hash commit)))) + (commits-in-current-repository))) + #:web-files (cons* (file "index.html" + (skribe-exporter "website/index.skb")) + (file "style.css" + (copier "website/style.css")) + (file "manual/dev/en/index.html" + (skribe-exporter "doc/forge.skb")) + (append (map (lambda (font-file) + (file (string-append "fonts/" font-file) + (copier (string-append (getenv "GUIX_ENVIRONMENT") + "/share/fonts/web/" font-file)))) + (list "charter_regular.woff2" + "FiraCode-Regular.woff2" + "FiraCode-SemiBold.woff2")) + (map (lambda (filename) + (file (replace-extension filename "html") + (gemtext-exporter filename))) + (gemtext-files-in-directory "issues"))))) |