summaryrefslogtreecommitdiff
path: root/doc/build.scm
diff options
context:
space:
mode:
Diffstat (limited to 'doc/build.scm')
-rw-r--r--doc/build.scm51
1 files changed, 33 insertions, 18 deletions
diff --git a/doc/build.scm b/doc/build.scm
index b6a921c421..81bb94670a 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -51,6 +51,12 @@
(define info-manual
(@@ (guix self) info-manual))
+(define %manual
+ ;; The manual to build--i.e., the base name of a .texi file, such as "guix"
+ ;; or "guix-cookbook".
+ (or (getenv "GUIX_MANUAL")
+ "guix"))
+
(define %languages
'("de" "en" "es" "fr" "ru" "zh_CN"))
@@ -164,7 +170,9 @@ as well as images, OS examples, and translations."
(define %makeinfo-html-options
;; Options passed to 'makeinfo --html'.
- '("--css-ref=https://www.gnu.org/software/gnulib/manual.css"))
+ '("--css-ref=https://www.gnu.org/software/gnulib/manual.css"
+ "-c" "EXTRA_HEAD=<meta name=\"viewport\" \
+content=\"width=device-width, initial-scale=1\" />"))
(define guile-lib/htmlprag-fixed
;; Guile-Lib with a hotfix for (htmlprag).
@@ -359,7 +367,7 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(define* (html-manual source #:key (languages %languages)
(version "0.0")
- (manual "guix")
+ (manual %manual)
(date 1)
(options %makeinfo-html-options))
"Return the HTML manuals built from SOURCE for all LANGUAGES, with the given
@@ -386,6 +394,13 @@ makeinfo OPTIONS."
(chr chr))
(string-downcase language)))
+ (define (language->texi-file-name language)
+ (if (string=? language "en")
+ (string-append #$manual-source "/"
+ #$manual ".texi")
+ (string-append #$manual-source "/"
+ #$manual "." language ".texi")))
+
;; Install a UTF-8 locale so that 'makeinfo' is at ease.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
@@ -395,15 +410,12 @@ makeinfo OPTIONS."
(setvbuf (current-error-port) 'line)
(for-each (lambda (language)
- (let ((opts `("--html"
- "-c" ,(string-append "TOP_NODE_UP_URL=/manual/"
+ (let* ((texi (language->texi-file-name language))
+ (opts `("--html"
+ "-c" ,(string-append "TOP_NODE_UP_URL=/manual/"
language)
- #$@options
- ,(if (string=? language "en")
- (string-append #$manual-source "/"
- #$manual ".texi")
- (string-append #$manual-source "/"
- #$manual "." language ".texi")))))
+ #$@options
+ ,texi)))
(format #t "building HTML manual for language '~a'...~%"
language)
(mkdir-p (string-append #$output "/"
@@ -433,7 +445,8 @@ makeinfo OPTIONS."
(symlink #$images
(string-append #$output "/" (normalize language)
"/html_node/images"))))
- '#$languages))))
+ (filter (compose file-exists? language->texi-file-name)
+ '#$languages)))))
(let* ((name (string-append manual "-html-manual"))
(manual (computed-file name build)))
@@ -442,7 +455,7 @@ makeinfo OPTIONS."
(define* (pdf-manual source #:key (languages %languages)
(version "0.0")
- (manual "guix")
+ (manual %manual)
(date 1)
(options '()))
"Return the HTML manuals built from SOURCE for all LANGUAGES, with the given
@@ -570,7 +583,10 @@ from SOURCE."
(define* (html-manual-indexes source
#:key (languages %languages)
(version "0.0")
- (manual "guix")
+ (manual %manual)
+ (title (if (string=? "guix" manual)
+ "GNU Guix Reference Manual"
+ "GNU Guix Cookbook"))
(date 1))
(define build
(with-extensions (list guile-json-3)
@@ -674,7 +690,7 @@ from SOURCE."
(define (language-index language)
(define title
- (translate "GNU Guix Reference Manual" language))
+ (translate #$title language))
(sxml-index
language title
@@ -732,8 +748,7 @@ from SOURCE."
%iso639-languages)))
(define (top-level-index languages)
- (define title
- "GNU Guix Reference Manual")
+ (define title #$title)
(sxml-index
"en" title
`(main
@@ -741,7 +756,7 @@ from SOURCE."
(@ (class "page centered-block limit-width"))
(h2 ,title)
(div
- "The GNU Guix Reference Manual is available in the following
+ "This document is available in the following
languages:\n"
(ul
,@(map (lambda (language)
@@ -782,7 +797,7 @@ languages:\n"
#:key (languages %languages)
(version "0.0")
(date (time-second (current-time time-utc)))
- (manual "guix"))
+ (manual %manual))
"Return the union of the HTML and PDF manuals, as well as the indexes."
(directory-union (string-append manual "-manual")
(map (lambda (proc)