1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
;;; GNU Guix web site
;;; Initially written by sirgazil who waves all
;;; copyright interest on this file.
(define-module (apps packages templates package)
#:use-module (apps aux web)
#:use-module (apps base templates components)
#:use-module (apps base templates theme)
#:use-module (apps base types)
#:use-module (apps base utils)
#:use-module (apps packages templates components)
#:use-module (apps packages types)
#:use-module (apps packages utils)
#:use-module (guix gnu-maintenance)
#:use-module (guix packages)
#:export (package-t))
(define (package-t context)
"Return an SHTML representation of a package page."
(let* ((package (context-datum context "package"))
(package-id (string-append (package-name package)
" "
(package-version package)))
(lint-issues (package-lint-issues package)))
(theme
#:title (list package-id "Packages")
#:description (package-synopsis-shtml package)
#:keywords
'("GNU" "Linux" "Unix" "Free software" "Libre software"
"Operating system" "GNU Hurd" "GNU Guix package manager"
"GNU Guile" "Guile Scheme" "Transactional upgrades"
"Functional package management" "Reproducibility")
#:active-menu-item "Packages"
#:css
(list (guix-url "static/base/css/page.css")
(guix-url "static/packages/css/package.css"))
#:crumbs
(list (crumb "Packages" (guix-url "packages/"))
(crumb package-id
(guix-url (package-url-path package))))
#:content
`(main
(article
(@ (class "page centered-block limit-width"))
(h2 ,package-id " "
(span
(@ (class "synopsis"))
,(package-synopsis-shtml package)))
(p ,(if (gnu-package? package)
'(it "This is a GNU package. ")
"")
,(package-description-shtml package))
(ul
(@ (class "package-info"))
(li (b "Website: ")
(a (@ (href ,(package-home-page package)))
,(package-home-page package)))
(li (b "License: ")
,(license->shtml (package-license package)))
(li (b "Package source: ")
,(location->shtml (package-location package)))
(li (b "Patches: ")
,(patches->shtml (package-patches package)))
(li (b "Builds: ")
,(supported-systems->shtml package)))
;; Lint issues.
,(if (null? lint-issues)
""
`((h3 "Lint issues")
(p
,(issue-count->shtml (length lint-issues)) ". "
"See " (a (@ (href "#")) "package definition")
" in Guix source code.")
,@(map lint-issue->shtml lint-issues))))))))
|