diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-10-21 18:01:45 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-10-21 18:16:16 +0200 |
commit | cacb5576cc517cba45f69f1fb1551348714d85d0 (patch) | |
tree | cbe87e8a3c546d4b3004df1db3f03eec5d82f689 | |
parent | 5f15b422738d09072c866ef17fd6988a3c84a468 (diff) | |
download | guix-cacb5576cc517cba45f69f1fb1551348714d85d0.tar.gz |
doc: Add support for "guix-cookbook.texi" to 'build.scm'.
* doc/build.scm (%manual): New variable. (html-manual): #:manual now defaults to %MANUAL. [build]: Define 'language->texi-file-name' and use it. Filter out items of LANGUAGES that lack a .texi file. (pdf-manual, html-manual-indexes, pdf+html-manual): #:manual now defaults to %MANUAL.
-rw-r--r-- | doc/build.scm | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/doc/build.scm b/doc/build.scm index b6a921c421..380678c866 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")) @@ -359,7 +365,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 +392,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 +408,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 +443,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 +453,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 +581,7 @@ from SOURCE." (define* (html-manual-indexes source #:key (languages %languages) (version "0.0") - (manual "guix") + (manual %manual) (date 1)) (define build (with-extensions (list guile-json-3) @@ -782,7 +793,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) |