SXML and optional attributes
Luis Felipe <[email protected]>
| Newsgroups | gmane.lisp.guile.user |
|---|---|
| Message-ID | <[email protected]> |
Hi, I'd like to add attributes to SXML elements conditionally, but I don't see how. I'm looking for a hypothetical "if*" that allows me to do the following: (define* (special-input #:key name (required? #true)) "Return an SXHTML INPUT element for typing text." `(input (@ (type "text") (name ,name) ,(if* required? '(required ""))))) The built-in "if" doesn't work here because it will return #<unspecified> when the condition is false, which is not an acceptable attribute. I'm not aware of any value that can be returned in an "else" expression that would mean "nothing" to SXML; the empty list is not it: ,(if required? '(required "") '()) I'm hoping to find something better than the following workaround: (define* (special-input #:key name (required? #true)) "Return an SXHTML INPUT element for typing text." (if required? `(input (@ (type "text") (name ,name) (required ""))) `(input (@ (type "text") (name ,name))))) Any ideas? -- Luis Felipe López Acevedo https://luis-felipe.gitlab.io/
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----- wsB5BAABCAAjFiEECRCCei4GHmFsBqw9CrDQZwEvCMMFAmdog1YFAwAAAAAACgkQCrDQZwEvCMPE ygf9GeT/QA1KtBe1PyrR7e/fbdiDR8XsTfo6+GLSHVQ0x3DSlH4woI9Je627ajxlaDnXEfR9J9T3 ndWhVdWarNH5qnIk+4ZeiirVAlIuGhzcZHdAdHTv24eeia2cwl1NSqTcBFk1j21/NleLaEixgX3m CyJkoJYtz1icdnisTlxrtjeMHeYwCrmkUWc5OL8FsAG/nqOWXpQLQ16GX6tp5KIJnjawttb6+h// dl5rsyiNa7UgaS+b8kG5o7gAGIHtZOFnn8ykaweDgfE/KnrzGI0dJDsxcKEovqEYqmqfiddeg6DM dzKGX99TWkW2tF4252NeqJkqgQ0QA5pOW2QADSzCbA== =SqjV -----END PGP SIGNATURE-----