diff options
Diffstat (limited to 'doc/build.scm')
-rw-r--r-- | doc/build.scm | 51 |
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) |