Re: SXML and optional attributes
Luis Felipe <[email protected]>
| Newsgroups | gmane.lisp.guile.user |
|---|---|
| Message-ID | <[email protected]> |
On 22/12/24 21:38, Maxime Devos wrote: > > Unquote-splicing (,@) is your friend: > > `(foo ,@(if p? '(a (b) c) '()) d) > > When p? -> (foo a (b) c d). > > When (not p?) -> (foo d). > > Now do this for SXML … > Ah, splicing... yes Maxime, that works :) So I applied it as follows: (define* (special-input #:key name (required? #true)) "Return an SXHTML INPUT element for typing text." `(input (@ (type "text") (name ,name) ,@(if required? '((required "")) '())))) And now converting to XML I get the results I expected: (sxml->xml (special-input #:name "author")) → <input type="text" name="author" required="" /> (sxml->xml (special-input #:name "author" #:required? #false)) → <input type="text" name="author" /> Thank you very much,
OpenPGP_0x0AB0D067012F08C3.asc
(application/pgp-keys, 2.8 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- xsBNBGQLfUoBCADXXtq7q0B515koc28OwplQF3XrLOcHzn7DW2HL8WnRfSJp2Yra Ko6HyfbPmkjkfoRXpXyJBPvRE7f3O5RWkcEoTEXo5Ll2QEtYfangcoTxImcfwsdK mRl6saEPNhIykrYNM6gcLHxiL//NZZJwO+9uD2R4JRIQfJ7gJ4/e2m8SlA/0Xw1J KqClOOewnwUcb+cYtZSQo4r0ujYdDcFYlG3I7F+/DwTZfqCnixL0fSXEUOVQ5dUp u2lK3wMRHE9H60QEM96t6RPiQFA2uan8fX4eT1Igmdq69QUOAQBP5AHW91E+1eMT qcOa8VmCtJjcY9AMW65LVIzegwkQE4H0vC8DABEBAAHNOEx1aXMgRmVsaXBlIEzD s3BleiBBY2V2ZWRvIDxsdWlzLmZlbGlwZS5sYUB6b2hvbWFpbC5jb20+wsCOBBMB CAA4FiEECRCCei4GHmFsBqw9CrDQZwEvCMMFAmQLfUoCGwMFCwkIBwIGFQoJCAsC BBYCAwECHgECF4AACgkQCrDQZwEvCMO+oQf/bZt7NOgQw96RJSM32wTQhqj6C1dK jgtKmFecjxxXM5EiYQZPvBDrmjnzVu1mw70eE1N5DFNpCu0qp2vSqvly+PIa7z5F UOTivVpV6lDDc07BpW4J8/HNZu/GFmvZ2QtzPlr2rcGcRcwYlK9E+WKxT6lPINWN t2Ca9v+0Kz0OIAj4gEiJZNWQ41tIAHwNm9NKvBgtLxWB3UPteLnHSwRm7gptWF8I qkjyxNygj3vE+SSVYoilcQsljmCV4zbp7kGUFK9pIxwy85e4VmOehyKLxDqiIGKs 42PydPTFQc1KpmNpbrnadYyXEI8ZchMHbFI6YCduqv1aJ0Q2LmXxItikMc0uTHVp cyBGZWxpcGUgTMOzcGV6IEFjZXZlZG8gPHNpcmdhemlsQHpvaG8uY29tPsLAjgQT AQgAOBYhBAkQgnouBh5hbAasPQqw0GcBLwjDBQJkC345AhsDBQsJCAcCBhUKCQgL AgQWAgMBAh4BAheAAAoJEAqw0GcBLwjDSMMIALPFm3V9/KkzyEjoEYgtK7MNl8ce fER0K650rbenTX30/5lYwON4EFubf2cYUYwRSs8d+7Le6h035Mi13FGwwRhrDXyv zn1ifQbxBWkB4BgoIrAKvpjwOatC8+8D9zSi1giZhaoc4hggG6vkBhBB3mGx9lSL DZlghPIetNJkq4FHTFDqoFQt0ZgAZIGh46jjy4X+kSdhiNqnFSeZGFazQemdWZXS aipVx1se88aioXWlG8t6Ypr3r8vs+nAgWBYMdazymuIS4bxctSlM47zPt3E3lBwJ pdso0VjnTKfwKiWofCvTkHNO17OJegVGUQqMx6HeyinhY3nqZZaCzDIqkzfNOkx1 aXMgRmVsaXBlIEzDs3BleiBBY2V2ZWRvIDxsdWlzLmZlbGlwZS5sYUBwcm90b25t YWlsLmNvbT7CwI4EEwEIADgWIQQJEIJ6LgYeYWwGrD0KsNBnAS8IwwUCZAuABAIb AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAKsNBnAS8Iw3z9B/9TKed3eCaW vvPeMTeFAUcoqAiV39680Y0ppVdXTQmSBbs4QdIuABhgA7ZP9w1D8QOz8PKFCXN0 W7O2uFwuz/ZIh5yoLfY9ngtUibsjRjnLLEbRQnIAIBcwOVjTQnDC42WaZbiXqaPt WLeT48TULTMOKELc3B2mcLtrVyeDrjGe1f5nvpBb9m1JE7KtNfkPNNcQTpdsP1ru 4tg7EYWUM/oET6N2nq0Md6x/C1FPAF6l/Kskp9AmXTT01HRpjLFmnZYKiK5cuxv4 VgIkixHCuC4Y36AxnnpZ+BNS+Va9SSWBs4tvTqw6OR+ZV6DIJLRfHPoZYK5c62T8 bPNv/BQFa8IVzsBNBGQLfUoBCAC4OLfpwb7JTzA9nOrZmJHw7AljZYq9mK+GgZzp fwWwo2YyfjmAqkCa0r80Fv1Z7ypE3CVWkAvxb9OkRWKbnMpMw24o62MoGXnRszHw 8C65H5fagE1JpOoBXFZ5IM7ddsiWcOHEbFAgEDPgq8CpZORpa6Gqd850xvXZpIBN eM+Dz4BJK8LqICpO2IJHlW7T5F1IOA6MwJPCS8E3HyIt9QHFoyk+sDDGfAgWN2oe 8G6OE0m1qY8QI2bDd7Z/1m3fG1DKVacZAPuumjTdRIopiVQIZgKAOrzQQc+eiXtb mNLsbDam6TxE2m2HererWGRQw2y113jCwC2dQNJlauNWT7wBABEBAAHCwHYEGAEI ACAWIQQJEIJ6LgYeYWwGrD0KsNBnAS8IwwUCZAt9SgIbDAAKCRAKsNBnAS8Iw6gb CACQCVdwmXBqIxnqUJZ3ZYX837RFYqGmsXYn7K1QWZOSTz/TwxMWvm32DaCYAEtz XV+jAPE+ZygBUuOAT0SA4Wjsd/5gS8iqP01dhbPaKhlE+Y7hCp7Tud9uAd8OWhs7 EqEjCZyeJkFqcfq5sF5TKdpBWQ/qQrG//loAwDIOej4ayzmWDPP+wyKpBz7NV1ou P2DgZRsuSXobS5j4onVaUKRIWiflYLqTzkxysQ/Tt4ArfewjtbmDhkD4UevWXbJ1 h/YtwktCvD3EHai1w4xx+jtzS+Z1jiVW1AXNANeJP8MFC4VGu5/zdt5jUG0raFrx EjgnzKnuavTaZZVhOUYVUKv9 =IxoS -----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc
(application/pgp-signature, 495 B)
-----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEECRCCei4GHmFsBqw9CrDQZwEvCMMFAmdoqFUFAwAAAAAACgkQCrDQZwEvCMN3 9Qf8DCWc1/gxKLHKKqIExvHxFy6hVGxLHCYLieKiaZMrzIWYA3Axg3vtJMK/Fg3fpnSYMlCVGVn8 mqdYFoibtHjbP00bxdgE04ZUP2lgRIt5vimp+uJmmV1NIl02Rc3a30zPXVdTTl9jbaSi2bVlnmnx 8vQEbWQZFY77HU5dbBYOX3l2If0NRnUm5hJbSbnnkybM3sxLqeMemeiEn+AZ0AXwQqchjBYPXaej D8yb0ctaudQmZ1LGWlvOvg4jXo3bKuiya+TFXaDrF0WLMvDdLBb+Ja1u8GQR5rZ/ZQokzVgc8HlE dk+zKFPsC2GqTIWBJwoAZy1ZxgWOuYILUqZGo+Is9g== =oQea -----END PGP SIGNATURE-----