mbutterick/quad

quadwriter/markup failing to read attributes?

Closed this issue · 1 comments

I recently came back to a document I was writing with quad (at commit 5d7a2af). I have just updated quad using raco pkg update quad, and the document no longer compiles. The problem seems to be reproduced by this snippet:

#lang quadwriter/markup

◊a[#:href "mailto:hello@example.com"]{hello@example.com}

gives the following error:

racket test.rkt
decode-paragraphs: contract violation
  expected: txexpr-elements?
  given: '((a #:href "mailto:hello@example.com" "hello@example.com") "\n")
  in: the 1st argument of
      (->*
       (txexpr-elements?)
       ((or/c
         txexpr-tag?
         (-> (listof xexpr?) txexpr?))
        #:force?
        boolean?
        #:linebreak-proc
        (-> txexpr-elements? txexpr-elements?))
       txexpr-elements?)
  contract from: 
      <pkgs>/pollen/pollen/decode.rkt
  blaming: (/home/odanoburu/sites/quad/quadwriter/markup.rkt reader)
   (assuming the contract is correct)
  at: <pkgs>/pollen/pollen/decode.rkt:200.26
  context...:
   /home/pltbuild/build/plt-cs-release/bundle/racket/collects/racket/contract/private/blame.rkt:347:0: raise-blame-error16
   /home/pltbuild/build/plt-cs-release/bundle/racket/collects/racket/contract/private/arrow-val-first.rkt:600:8: loop
   /home/pltbuild/build/plt-cs-release/bundle/racket/collects/racket/contract/private/arrow-val-first.rkt:558:5: mk-call
   call-with-values
   /home/pltbuild/build/plt-cs-release/bundle/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /home/odanoburu/sites/quad/quadwriter/lang-helper.rkt:21:0
   read*14
   thunk_11
   dynamic-wind
   default-load-handler
   standard-module-name-resolver
   module-path-index-resolve5
   module-path-index-resolve5
   module-declared?3
   namespace-require+
   #%for-each

which makes sense, since I'd expect (a ((href "mailto:hello@example.com")) "hello@example.com") as the output txexpr, not (a #:href "mailto:hello@example.com" "hello@example.com")

Thanks for letting me know!