mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
services: configuration: Uniformize the generated documentation.
Make the formatting of the generated docs more consistent with the rest of the docs in the “Services” section of the manual. * gnu/services/configuration (generate-documentation): Represent the data type documentation of a field using a DEFTP table rather than DEFTYPEVR elements. Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
5b2b834269
commit
ad945029a2
1 changed files with 31 additions and 26 deletions
|
@ -255,32 +255,37 @@ (define (str x) (object->string x))
|
||||||
(define (generate configuration-name)
|
(define (generate configuration-name)
|
||||||
(match (assq-ref documentation configuration-name)
|
(match (assq-ref documentation configuration-name)
|
||||||
((fields . sub-documentation)
|
((fields . sub-documentation)
|
||||||
`((para "Available " (code ,(str configuration-name)) " fields are:")
|
`((deftp (% (category "Data Type") (name ,(str configuration-name)))
|
||||||
,@(map
|
(para "Available " (code ,(str configuration-name)) " fields are:")
|
||||||
(lambda (f)
|
(table
|
||||||
(let ((field-name (configuration-field-name f))
|
(% (formatter (asis)))
|
||||||
(field-type (configuration-field-type f))
|
,@(map
|
||||||
(field-docs (cdr (texi-fragment->stexi
|
(lambda (f)
|
||||||
(configuration-field-documentation f))))
|
(let ((field-name (configuration-field-name f))
|
||||||
(default (catch #t
|
(field-type (configuration-field-type f))
|
||||||
(configuration-field-default-value-thunk f)
|
(field-docs (cdr (texi-fragment->stexi
|
||||||
(lambda _ '%invalid))))
|
(configuration-field-documentation f))))
|
||||||
(define (show-default? val)
|
(default (catch #t
|
||||||
(or (string? val) (number? val) (boolean? val)
|
(configuration-field-default-value-thunk f)
|
||||||
(and (symbol? val) (not (eq? val '%invalid)))
|
(lambda _ '%invalid))))
|
||||||
(and (list? val) (and-map show-default? val))))
|
(define (show-default? val)
|
||||||
`(deftypevr (% (category
|
(or (string? val) (number? val) (boolean? val)
|
||||||
(code ,(str configuration-name)) " parameter")
|
(and (symbol? val) (not (eq? val '%invalid)))
|
||||||
(data-type ,(str field-type))
|
(and (list? val) (and-map show-default? val))))
|
||||||
(name ,(str field-name)))
|
|
||||||
,@field-docs
|
`(entry (% (heading
|
||||||
,@(if (show-default? default)
|
(code ,(str field-name))
|
||||||
`((para "Defaults to " (samp ,(str default)) "."))
|
,@(if (show-default? default)
|
||||||
'())
|
`(" (default: "
|
||||||
,@(append-map
|
(code ,(str default)) ")")
|
||||||
generate
|
'())
|
||||||
(or (assq-ref sub-documentation field-name) '())))))
|
" (type: " ,(str field-type) ")"))
|
||||||
fields)))))
|
(para ,@field-docs)
|
||||||
|
,@(append-map
|
||||||
|
generate
|
||||||
|
(or (assq-ref sub-documentation field-name)
|
||||||
|
'())))))
|
||||||
|
fields)))))))
|
||||||
(stexi->texi `(*fragment* . ,(generate documentation-name))))
|
(stexi->texi `(*fragment* . ,(generate documentation-name))))
|
||||||
|
|
||||||
(define (configuration->documentation configuration-symbol)
|
(define (configuration->documentation configuration-symbol)
|
||||||
|
|
Loading…
Reference in a new issue