diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/build.scm | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/doc/build.scm b/doc/build.scm index c3d61f837b..ca81d813a9 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -373,17 +373,26 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')." (('*ENTITY* _ ...) #t) (_ #f))) + (define (worthy-entry? lst) + ;; Attempt to match: + ;; Scheme Variable: <strong>x</strong> + ;; but not: + ;; <code>cups-configuration</code> parameter: … + (let loop ((lst lst)) + (match lst + (((? string-or-entity?) rest ...) + (loop rest)) + ((('strong _ ...) _ ...) + #t) + (_ #f)))) + (let ((shtml (call-with-input-file file html->shtml))) (let loop ((shtml shtml) (vhash vhash)) (match shtml - ;; Attempt to match: - ;; <dt>Scheme Variable: <strong>x</strong></dt> - ;; but not: - ;; <dt><code>cups-configuration</code> parameter: …</dt> - (('dt ('@ ('id id)) - (? string-or-entity?) ... ('strong _ ...) _ ...) - (if (string-prefix? "index-" id) + (('dt ('@ ('id id)) rest ...) + (if (and (string-prefix? "index-" id) + (worthy-entry? rest)) (vhash-cons (anchor-id->key id) (string-append (basename file) "#" id) |