guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: doc: Avoid invalid 'match' pattern in 'syntax-hig


From: guix-commits
Subject: branch master updated: doc: Avoid invalid 'match' pattern in 'syntax-highlighted-html'.
Date: Sun, 12 Apr 2020 20:12:19 -0400

This is an automated email from the git hooks/post-receive script.

civodul pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new c2480d1  doc: Avoid invalid 'match' pattern in 
'syntax-highlighted-html'.
c2480d1 is described below

commit c2480d10422f176bf06081de9d601f3b7249a83c
Author: Ludovic Courtès <address@hidden>
AuthorDate: Mon Apr 13 02:09:09 2020 +0200

    doc: Avoid invalid 'match' pattern in 'syntax-highlighted-html'.
    
    This is a followup to da9deba13d551e316f5a99a614834efa27ddc7d1.
    
    Last-minute modification of the 'match' pattern would lead to an error:
    
      "multiple ellipsis patterns not allowed at same level"
    
    * doc/build.scm (syntax-highlighted-html)[build](collect-anchors):
    Add 'worthy-entry?' procedure and use it instead of the unsupported
    pattern for ('dt ...).
---
 doc/build.scm | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/doc/build.scm b/doc/build.scm
index c3d61f8..ca81d81 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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]