aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/forge.skb53
-rw-r--r--doc/skribilo.scm28
2 files changed, 71 insertions, 10 deletions
diff --git a/doc/forge.skb b/doc/forge.skb
index 4f861dd..2538401 100644
--- a/doc/forge.skb
+++ b/doc/forge.skb
@@ -1,5 +1,5 @@
;;; guix-forge --- Guix software forge meta-service
-;;; Copyright © 2022–2024 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022–2025 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2024 Frederick M. Muriithi <fredmanglis@protonmail.com>
;;;
;;; This file is part of guix-forge.
@@ -292,6 +292,46 @@ shown. Else, they won't.])
(record-field "extra-options"
[Association list of additional key-value option pairs to
include in the generated ,(file [cgitrc]) configuration file])))))
+ (section :title [tissue service]
+ :ident "section-tissue-service"
+ (p [tissue is an issue tracker built on plain text files and
+git. In addition, it features a static site generator tuned to
+building project websites.])
+ (description
+ (record-documentation "guix/forge/tissue.scm" '<tissue-configuration>
+ (record-field "package"
+ [,(code [tissue]) package to use])
+ (record-field "socket"
+ [Socket to listen on. Socket may be a ,(record-ref
+"<forge-ip-socket>"), or ,(record-ref "<forge-unix-socket>")
+object.])
+ (record-field "state-directory"
+ [Directory in which tissue maintains its state])
+ (record-field "hosts"
+ [List of ,(record-ref "<tissue-host>") objects describing
+configured hosts. A single tissue instance may serve several
+hosts—this is often called ,(ref :url
+"https://en.wikipedia.org/wiki/Virtual_hosting" :text "virtual
+hosting").]))
+ (record-documentation "guix/forge/tissue.scm" '<tissue-host>
+ (record-field "name"
+ [HTTP host name to listen on])
+ (record-field "projects"
+ [List of ,(record-ref "<tissue-project>") objects
+describing configured projects]))
+ (record-documentation "guix/forge/tissue.scm" '<tissue-project>
+ (record-field "name"
+ [Name of the project])
+ (record-field "user"
+ [Name of user who owns the project directory in the tissue
+,(record-field-ref "<tissue-configuration>" "state-directory")])
+ (record-field "base-path"
+ [Base web path at which the project is served. Several
+projects may be served on the same host at ,(samp "/project1/"),
+,(samp "/project2/") and so on.]
+ :default [,(samp "\"/<name>/\"")])
+ (record-field "upstream-repository"
+ [Path to git repository of project]))))
(section :title [forge nginx service]
:ident "section-forge-nginx-service"
(p [The forge nginx service is a wrapper around the nginx web
@@ -516,6 +556,9 @@ gunicorn is run in]))))))
(record-field "value"
[Its value]))
(record-documentation "guix/forge/forge.scm" '<forge-configuration>
+ (record-field "web-domain"
+ [Optional domain name on which to serve project listing and
+tissue-powered websites])
(record-field "projects"
[List of ,(record-ref "<forge-project>") objects describing
projects managed by guix-forge]))
@@ -533,12 +576,20 @@ disregarded if the repository is remote.])
the ,(file "description") file in the repository and will appear in
the cgit web interface. This field is disregarded if the repository is
remote.])
+ (record-field "web-domain"
+ [Domain name to serve project website on])
(record-field "website-directory"
[Path to the document root of the project website. The
ownership of its parent directory is granted to the ,(code "laminar")
user. The idea is that the website is built by a Guix derivation as a
store item and a symbolic link to that store item is created in the
parent directory.])
+ (record-field "tissue?"
+ [Does this project use ,(ref :url
+"https://forge.systemreboot.net/tissue/" :text "tissue")? If so, it
+will be served at ,(samp "/<name>/") on the ,(record-field-ref
+"<forge-configuration>" "web-domain") configured in ,(record-ref
+"<forge-configuration>").])
(record-field "ci-jobs"
[List of ,(record-ref "<forge-laminar-job>") objects
describing ,(abbr :short "CI" :long "continuous integration") jobs to
diff --git a/doc/skribilo.scm b/doc/skribilo.scm
index 972b626..dc1bc15 100644
--- a/doc/skribilo.scm
+++ b/doc/skribilo.scm
@@ -1,5 +1,5 @@
;;; guix-forge --- Guix software forge meta-service
-;;; Copyright © 2022–2023 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022–2023, 2025 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of guix-forge.
;;;
@@ -45,6 +45,7 @@
record-documentation
record-field
record-ref
+ record-field-ref
docstring-function-documentation))
;; Constants
@@ -268,24 +269,27 @@ are a list of <record-field> objects."
(code identifier))))
(apply description
(map (lambda (documented-field)
- (let* ((identifier (record-field-identifier documented-field))
+ (let* ((field-identifier (record-field-identifier documented-field))
(record-field (find (lambda (field)
(eq? (record-field-identifier field)
- (string->symbol identifier)))
+ (string->symbol field-identifier)))
(record-fields record))))
- (item #:key
+ (item #:ident (string-append identifier
+ "-"
+ field-identifier)
+ #:key
(cond
;; No default value
((no-default? (record-field-default record-field))
- (code identifier))
+ (code field-identifier))
;; Default value in documentation
((record-field-default documented-field)
=> (lambda (default)
- (list (append (list (code identifier) " (Default: ")
+ (list (append (list (code field-identifier) " (Default: ")
default
(list ")")))))
;; Default value from the source
- (else (list (list (code identifier) " (Default: "
+ (else (list (list (code field-identifier) " (Default: "
(code (expression->string
(record-field-default record-field)))
")"))))
@@ -293,11 +297,17 @@ are a list of <record-field> objects."
fields))))))
(define (record-ref identifier)
- "Link to record documentation of record identified by
+ "Link to documentation of record identified by
@var{identifier}."
(ref #:ident identifier
#:text (code identifier)))
+(define (record-field-ref record-identifier field-identifier)
+ "Link to documentation of field identified by @var{field-identifier} in
+record identified by @var{record-identifier}."
+ (ref #:ident (string-append record-identifier "-" field-identifier)
+ #:text (code field-identifier)))
+
(define-record-type <function>
(function name arguments docstring)
function?
@@ -364,7 +374,7 @@ are a list of <record-field> objects."
;; HTML engine customizations
(let ((html-engine (find-engine 'html)))
- (engine-custom-set! html-engine 'css "/style.css")
+ (engine-custom-set! html-engine 'css "/guix-forge/style.css")
(engine-custom-set! html-engine 'charset "UTF-8")
(markup-writer 'abbr html-engine
#:options '(#:short #:long)