import: go: Do not set '%strict-tokenizer?' from the top level.

This avoids interference with other users of (htmlprag) and makes the
intent clearer.

* guix/import/go.scm <top level>: Remove call to '%strict-tokenizer?'.
(go-package-licenses, go-package-description)
(go-package-synopsis, fetch-module-meta-data): Pass #:strict? #t to
'html->sxml'.
This commit is contained in:
Ludovic Courtès 2021-04-22 11:43:50 +02:00
parent c22204cf7b
commit 55e90e5558
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -63,9 +63,6 @@ (define-module (guix import go)
#:export (go-module->guix-package
go-module-recursive-import))
;;; Parameterize htmlprag to parse valid HTML more reliably.
(%strict-tokenizer? #t)
;;; Commentary:
;;;
;;; (guix import go) attempts to make it easier to create Guix package
@ -149,7 +146,7 @@ (define (go-package-licenses name)
;; element marked with a "License" class attribute.
(select (sxpath `(// (* (@ (equal? (class "License"))))
h2 // *text*))))
(select (html->sxml body))))
(select (html->sxml body #:strict? #t))))
(define (sxml->texi sxml-node)
"A very basic SXML to Texinfo converter which attempts to preserve HTML
@ -167,7 +164,7 @@ (define (go-package-description name)
"Retrieve a short description for NAME, a Go package name,
e.g. \"google.golang.org/protobuf/proto\"."
(let* ((body (go.pkg.dev-info name))
(sxml (html->sxml body))
(sxml (html->sxml body #:strict? #t))
(overview ((sxpath
`(//
(* (@ (equal? (class "Documentation-overview"))))
@ -209,7 +206,7 @@ (define (go-package-synopsis module-name)
(select-title (sxpath
`(// (div (@ (equal? (class "UnitReadme-content"))))
// h3 *text*))))
(match (select-title (html->sxml body))
(match (select-title (html->sxml body #:strict? #t))
(() #f) ;nothing selected
((title more ...) ;title is the first string of the list
(string-trim-both title)))))
@ -465,7 +462,7 @@ (define (fetch-module-meta-data module-path)
(let* ((meta-data (http-fetch* (format #f "https://~a?go-get=1" module-path)))
(select (sxpath `(// head (meta (@ (equal? (name "go-import"))))
// content))))
(match (select (html->sxml meta-data))
(match (select (html->sxml meta-data #:strict? #t))
(() #f) ;nothing selected
(((content content-text))
(match (string-split content-text #\space)