aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--Makefile60
-rw-r--r--build-aux/build-home-page.el40
-rw-r--r--manifest.scm8
-rw-r--r--tissue.scm58
5 files changed, 63 insertions, 109 deletions
diff --git a/.gitignore b/.gitignore
index aaef8b4..85ad067 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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")))))