aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build.scm23
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)