summary refs log tree commit diff
path: root/doc/build.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-09-07 15:37:22 +0200
committerLudovic Courtès <ludo@gnu.org>2019-09-07 18:42:08 +0200
commit7854bbeb3f88ad4747b0a4ca01021ef2741f7b4e (patch)
tree7964df1d1874730b5bdb1d45953804325280afb3 /doc/build.scm
parentc3a7dae831bffa2afd0c928ebeb3b3623fb75289 (diff)
downloadguix-7854bbeb3f88ad4747b0a4ca01021ef2741f7b4e.tar.gz
doc: Work around (htmlprag) parser issue.
* doc/build.scm (guile-lib/htmlprag-fixed): New variable.
(syntax-highlighted-html): Use it instead of GUILE-LIB.
Diffstat (limited to 'doc/build.scm')
-rw-r--r--doc/build.scm32
1 files changed, 31 insertions, 1 deletions
diff --git a/doc/build.scm b/doc/build.scm
index c99bd505fd..5bc95d2517 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -29,6 +29,7 @@
              (guix gexp)
              (guix git)
              (guix git-download)
+             (guix utils)
              (git)
              (gnu packages base)
              (gnu packages gawk)
@@ -165,6 +166,35 @@ as well as images, OS examples, and translations."
   ;; Options passed to 'makeinfo --html'.
   '("--css-ref=https://www.gnu.org/software/gnulib/manual.css"))
 
+(define guile-lib/htmlprag-fixed
+  ;; Guile-Lib with a hotfix for (htmlprag).
+  (package
+    (inherit guile-lib)
+    (source (origin
+              (inherit (package-source guile-lib))
+              (modules '(( guix build utils)))
+              (snippet
+               '(begin
+                  ;; When parsing
+                  ;; "<body><blockquote><p>foo</p>\n</blockquote></body>",
+                  ;; 'html->shtml' would mistakenly close 'blockquote' right
+                  ;; before <p>.  This patch removes 'p' from the
+                  ;; 'parent-constraints' alist to fix that.
+                  (substitute* "src/htmlprag.scm"
+                    (("^[[:blank:]]*\\(p[[:blank:]]+\\. \\(body td th\\)\\).*")
+                     ""))
+                  #t))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-lib)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+          (add-before 'check 'skip-known-failure
+            (lambda _
+              ;; XXX: The above change causes one test failure among
+              ;; the htmlprag tests.
+              (setenv "XFAIL_TESTS" "htmlprag.scm")
+              #t))))))))
+
 (define* (syntax-highlighted-html input
                                   #:key
                                   (name "highlighted-syntax")
@@ -174,7 +204,7 @@ as well as images, OS examples, and translations."
 to (1) add them a link to SYNTAX-CSS-URL, and (2) highlight the syntax of all
 its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
   (define build
-    (with-extensions (list guile-lib guile-syntax-highlight)
+    (with-extensions (list guile-lib/htmlprag-fixed guile-syntax-highlight)
       (with-imported-modules '((guix build utils))
         #~(begin
             (use-modules (htmlprag)