summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-07-15 11:51:43 +0200
committerLudovic Courtès <ludo@gnu.org>2019-07-15 12:53:27 +0200
commit4e67f2048839c17e7d09f6c1775473018c8815c6 (patch)
tree5a087a5cbda71491ed69f9d428d589c29c15fb6d
parent5ce869f66df61146ece4caa7109f93eb3c6b2f3d (diff)
doc: Generalize build procedures of HTML indexes.
* doc/build.scm (html-manual-indexes)[build](sxml-index): Generalize; add a 'title' and a 'body' parameter and honor them. (language-index): New procedure. (write-index): Remove. (write-html): New procedure. Use 'write-html' and 'language-index'.
-rw-r--r--doc/build.scm86
1 files changed, 45 insertions, 41 deletions
diff --git a/doc/build.scm b/doc/build.scm
index e628a910486..c0952ecb89d 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -424,10 +424,7 @@ from SOURCE."
424 (define (guix-url path) 424 (define (guix-url path)
425 (string-append #$%web-site-url path)) 425 (string-append #$%web-site-url path))
426 426
427 (define (sxml-index language) 427 (define (sxml-index language title body)
428 (define title
429 (translate "GNU Guix Reference Manual" language))
430
431 ;; FIXME: Avoid duplicating styling info from guix-artwork.git. 428 ;; FIXME: Avoid duplicating styling info from guix-artwork.git.
432 `(html (@ (lang ,language)) 429 `(html (@ (lang ,language))
433 (head 430 (head
@@ -458,45 +455,53 @@ from SOURCE."
458 (a (@ (class "crumb") 455 (a (@ (class "crumb")
459 (href #$%web-site-url)) 456 (href #$%web-site-url))
460 "Home")) 457 "Home"))
461 (main 458 ,body
462 (article
463 (@ (class "page centered-block limit-width"))
464 (h2 ,title)
465 (p (@ (class "post-metadata centered-text"))
466 #$version " — "
467 ,(seconds->string #$date language))
468
469 (div
470 (ul
471 (li (a (@ (href "html_node"))
472 "HTML, with one page per node"))
473 (li (a (@ (href
474 ,(string-append
475 #$manual
476 (if (string=? language
477 "en")
478 ""
479 (string-append "."
480 language))
481 ".html")))
482 "HTML, entirely on one page"))
483 ,@(if (member language '("ru" "zh_CN"))
484 '()
485 `((li (a (@ (href ,(string-append
486 #$manual
487 (if (string=? language "en")
488 ""
489 (string-append "."
490 language))
491 ".pdf"))))
492 "PDF")))))))
493 (footer)))) 459 (footer))))
494 460
495 (define (write-index language file) 461 (define (language-index language)
462 (define title
463 (translate "GNU Guix Reference Manual" language))
464
465 (sxml-index
466 language title
467 `(main
468 (article
469 (@ (class "page centered-block limit-width"))
470 (h2 ,title)
471 (p (@ (class "post-metadata centered-text"))
472 #$version " — "
473 ,(seconds->string #$date language))
474
475 (div
476 (ul
477 (li (a (@ (href "html_node"))
478 "HTML, with one page per node"))
479 (li (a (@ (href
480 ,(string-append
481 #$manual
482 (if (string=? language
483 "en")
484 ""
485 (string-append "."
486 language))
487 ".html")))
488 "HTML, entirely on one page"))
489 ,@(if (member language '("ru" "zh_CN"))
490 '()
491 `((li (a (@ (href ,(string-append
492 #$manual
493 (if (string=? language "en")
494 ""
495 (string-append "."
496 language))
497 ".pdf"))))
498 "PDF")))))))))
499
500 (define (write-html file sxml)
496 (call-with-output-file file 501 (call-with-output-file file
497 (lambda (port) 502 (lambda (port)
498 (display "<!DOCTYPE html>\n" port) 503 (display "<!DOCTYPE html>\n" port)
499 (sxml->xml (sxml-index language) port)))) 504 (sxml->xml sxml port))))
500 505
501 (setenv "GUIX_LOCPATH" 506 (setenv "GUIX_LOCPATH"
502 #+(file-append glibc-utf8-locales "/lib/locale")) 507 #+(file-append glibc-utf8-locales "/lib/locale"))
@@ -512,9 +517,8 @@ from SOURCE."
512 (normalize language))) 517 (normalize language)))
513 518
514 (mkdir-p directory) 519 (mkdir-p directory)
515 (write-index language 520 (write-html (string-append directory "/index.html")
516 (string-append directory 521 (language-index language)))
517 "/index.html")))
518 '#$languages)))) 522 '#$languages))))
519 523
520 (computed-file "html-indexes" build)) 524 (computed-file "html-indexes" build))