Artifact
97554544e332951db9958a90b93ec2dcffbe9742:
Wiki page
[(data html)] by
murphy
2018-02-02 16:21:40.
0000: 44 20 32 30 31 38 2d 30 32 2d 30 32 54 31 36 3a D 2018-02-02T16:
0010: 32 31 3a 34 30 2e 35 30 31 0a 4c 20 28 64 61 74 21:40.501.L (dat
0020: 61 5c 73 68 74 6d 6c 29 0a 50 20 62 65 64 33 64 a\shtml).P bed3d
0030: 62 64 64 39 31 65 30 31 30 35 35 62 63 32 35 65 bdd91e01055bc25e
0040: 30 38 64 34 37 30 30 36 31 38 61 64 32 33 38 32 08d4700618ad2382
0050: 39 32 61 0a 55 20 6d 75 72 70 68 79 0a 57 20 31 92a.U murphy.W 1
0060: 39 33 35 0a 3c 68 31 3e 48 54 4d 4c 20 4f 75 74 935.<h1>HTML Out
0070: 70 75 74 3c 2f 68 31 3e 0d 0a 0d 0a 3c 68 32 3e put</h1>....<h2>
0080: 53 79 6e 6f 70 73 69 73 3c 2f 68 32 3e 0d 0a 0d Synopsis</h2>...
0090: 0a 3c 63 6f 64 65 3e 28 69 6d 70 6f 72 74 20 28 .<code>(import (
00a0: 64 61 74 61 20 68 74 6d 6c 29 29 3c 2f 63 6f 64 data html))</cod
00b0: 65 3e 0d 0a 0d 0a 45 6e 63 6f 64 69 6e 67 20 6f e>....Encoding o
00c0: 66 20 53 2d 65 78 70 72 65 73 73 69 6f 6e 73 20 f S-expressions
00d0: 61 73 20 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e as [https://www.
00e0: 77 33 2e 6f 72 67 2f 54 52 2f 68 74 6d 6c 35 2f w3.org/TR/html5/
00f0: 7c 48 54 4d 4c 35 5d 2e 0d 0a 0d 0a 3c 68 32 3e |HTML5].....<h2>
0100: 53 2d 45 78 70 72 65 73 73 69 6f 6e 20 48 54 4d S-Expression HTM
0110: 4c 20 47 72 61 6d 6d 61 72 3c 2f 68 32 3e 0d 0a L Grammar</h2>..
0120: 0d 0a 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 72 ..Elements are r
0130: 65 70 72 65 73 65 6e 74 65 64 20 61 73 20 6c 69 epresented as li
0140: 73 74 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 sts starting wit
0150: 68 20 61 20 74 61 67 20 73 79 6d 62 6f 6c 2c 20 h a tag symbol,
0160: 6f 70 74 69 6f 6e 61 6c 6c 79 20 66 6f 6c 6c 6f optionally follo
0170: 77 65 64 20 62 79 20 61 6e 20 61 73 73 6f 63 69 wed by an associ
0180: 61 74 69 6f 6e 20 6c 69 73 74 20 6f 66 20 61 74 ation list of at
0190: 74 72 69 62 75 74 65 73 20 61 6e 64 20 62 79 20 tributes and by
01a0: 65 6c 65 6d 65 6e 74 20 63 6f 6e 74 65 6e 74 73 element contents
01b0: 3a 0d 0a 3c 63 6f 64 65 3e 3c 70 72 65 3e 0d 0a :..<code><pre>..
01c0: 68 74 6d 6c 20 20 20 20 e2 86 92 20 28 53 59 4d html → (SYM
01d0: 42 4f 4c 20 63 6f 6e 74 65 6e 74 20 2e 2e 2e 29 BOL content ...)
01e0: 0d 0a 20 20 20 20 20 20 20 20 7c 20 28 53 59 4d .. | (SYM
01f0: 42 4f 4c 20 28 28 53 59 4d 42 4f 4c 20 2e 20 76 BOL ((SYMBOL . v
0200: 61 6c 75 65 29 20 2e 2e 2e 29 20 63 6f 6e 74 65 alue) ...) conte
0210: 6e 74 20 2e 2e 2e 29 0d 0a 3c 2f 70 72 65 3e 3c nt ...)..</pre><
0220: 2f 63 6f 64 65 3e 0d 0a 0d 0a 54 68 65 20 76 61 /code>....The va
0230: 6c 75 65 20 6f 66 20 61 6e 20 61 74 74 72 69 62 lue of an attrib
0240: 75 74 65 20 6d 61 79 20 62 65 20 61 20 62 6f 6f ute may be a boo
0250: 6c 65 61 6e 20 6f 72 20 61 20 6c 69 73 74 20 6f lean or a list o
0260: 66 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 73 3a f text contents:
0270: 0d 0a 3c 63 6f 64 65 3e 3c 70 72 65 3e 0d 0a 76 ..<code><pre>..v
0280: 61 6c 75 65 20 20 20 e2 86 92 20 42 4f 4f 4c 45 alue → BOOLE
0290: 41 4e 0d 0a 20 20 20 20 20 20 20 20 7c 20 28 74 AN.. | (t
02a0: 65 78 74 20 2e 2e 2e 29 0d 0a 3c 2f 70 72 65 3e ext ...)..</pre>
02b0: 3c 2f 63 6f 64 65 3e 0d 0a 0d 0a 41 6e 20 61 74 </code>....An at
02c0: 74 72 69 62 75 74 65 20 77 69 74 68 20 76 61 6c tribute with val
02d0: 75 65 20 3c 74 74 3e 23 66 3c 2f 74 74 3e 20 69 ue <tt>#f</tt> i
02e0: 73 20 6e 6f 74 20 73 65 72 69 61 6c 69 7a 65 64 s not serialized
02f0: 20 61 73 20 48 54 4d 4c 35 3b 20 61 6e 20 61 74 as HTML5; an at
0300: 74 72 69 62 75 74 65 20 77 69 74 68 20 76 61 6c tribute with val
0310: 75 65 20 3c 74 74 3e 23 74 3c 2f 74 74 3e 20 69 ue <tt>#t</tt> i
0320: 73 20 73 65 72 69 61 6c 69 7a 65 64 20 77 69 74 s serialized wit
0330: 68 6f 75 74 20 61 20 76 61 6c 75 65 20 61 73 73 hout a value ass
0340: 69 67 6e 6d 65 6e 74 20 69 6e 20 48 54 4d 4c 35 ignment in HTML5
0350: 2e 0d 0a 0d 0a 54 68 65 20 63 6f 6e 74 65 6e 74 .....The content
0360: 73 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 61 6e s of elements an
0370: 64 20 61 74 74 72 69 62 75 74 65 73 20 6d 61 79 d attributes may
0380: 20 63 6f 6e 73 69 73 74 20 6f 66 20 70 6c 61 69 consist of plai
0390: 6e 20 74 65 78 74 20 61 6e 64 20 65 6e 74 69 74 n text and entit
03a0: 79 20 72 65 66 65 72 65 6e 63 65 73 20 72 65 70 y references rep
03b0: 72 65 73 65 6e 74 65 64 20 61 73 20 73 79 6d 62 resented as symb
03c0: 6f 6c 73 20 6f 72 20 70 6f 73 69 74 69 76 65 20 ols or positive
03d0: 69 6e 74 65 67 65 72 73 2e 20 4e 6f 72 6d 61 6c integers. Normal
03e0: 20 65 6c 65 6d 65 6e 74 73 20 6d 61 79 20 61 6c elements may al
03f0: 73 6f 20 63 6f 6e 74 61 69 6e 20 6f 74 68 65 72 so contain other
0400: 20 65 6c 65 6d 65 6e 74 73 3a 0d 0a 3c 63 6f 64 elements:..<cod
0410: 65 3e 3c 70 72 65 3e 0d 0a 63 6f 6e 74 65 6e 74 e><pre>..content
0420: 20 e2 86 92 20 74 65 78 74 0d 0a 20 20 20 20 20 → text..
0430: 20 20 20 7c 20 68 74 6d 6c 0d 0a 0d 0a 74 65 78 | html....tex
0440: 74 20 20 20 20 e2 86 92 20 53 54 52 49 4e 47 0d t → STRING.
0450: 0a 20 20 20 20 20 20 20 20 7c 20 4e 55 4d 42 45 . | NUMBE
0460: 52 0d 0a 20 20 20 20 20 20 20 20 7c 20 53 59 4d R.. | SYM
0470: 42 4f 4c 0d 0a 3c 2f 70 72 65 3e 3c 2f 63 6f 64 BOL..</pre></cod
0480: 65 3e 0d 0a 0d 0a 3c 68 32 3e 4f 70 65 72 61 74 e>....<h2>Operat
0490: 69 6f 6e 73 3c 2f 68 32 3e 0d 0a 0d 0a 3c 68 33 ions</h2>....<h3
04a0: 3e 70 72 6f 63 65 64 75 72 65 3a 20 3c 63 6f 64 >procedure: <cod
04b0: 65 3e 28 6a 73 2d 65 6e 63 6f 64 65 20 3c 69 3e e>(js-encode <i>
04c0: 73 74 72 69 6e 67 3c 2f 69 3e 29 3c 2f 63 6f 64 string</i>)</cod
04d0: 65 3e 3c 2f 68 33 3e 0d 0a 0d 0a 52 65 70 6c 61 e></h3>....Repla
04e0: 63 65 20 64 61 6e 67 65 72 6f 75 73 20 63 68 61 ce dangerous cha
04f0: 72 61 63 74 65 72 73 20 69 6e 20 74 68 65 20 73 racters in the s
0500: 74 72 69 6e 67 20 62 79 20 62 61 63 6b 73 6c 61 tring by backsla
0510: 73 68 20 65 73 63 61 70 65 20 73 65 71 75 65 6e sh escape sequen
0520: 63 65 73 2e 20 54 68 65 20 72 65 73 75 6c 74 20 ces. The result
0530: 69 73 20 73 61 66 65 20 74 6f 20 69 6e 63 6c 75 is safe to inclu
0540: 64 65 20 69 6e 20 61 20 4a 61 76 61 53 63 72 69 de in a JavaScri
0550: 70 74 20 73 74 72 69 6e 67 20 62 65 74 77 65 65 pt string betwee
0560: 6e 20 73 69 6e 67 6c 65 20 6f 72 20 64 6f 75 62 n single or doub
0570: 6c 65 20 71 75 6f 74 65 73 2e 0d 0a 0d 0a 3c 68 le quotes.....<h
0580: 33 3e 70 72 6f 63 65 64 75 72 65 3a 20 3c 63 6f 3>procedure: <co
0590: 64 65 3e 28 68 74 6d 6c 2d 74 61 67 2d 72 75 6c de>(html-tag-rul
05a0: 65 20 3c 69 3e 74 61 67 3c 2f 69 3e 29 3c 2f 63 e <i>tag</i>)</c
05b0: 6f 64 65 3e 3c 2f 68 33 3e 0d 0a 3c 68 33 3e 70 ode></h3>..<h3>p
05c0: 72 6f 63 65 64 75 72 65 3a 20 3c 63 6f 64 65 3e rocedure: <code>
05d0: 28 68 74 6d 6c 2d 74 61 67 2d 72 75 6c 65 20 3c (html-tag-rule <
05e0: 69 3e 74 61 67 3c 2f 69 3e 20 3c 69 3e 72 75 6c i>tag</i> <i>rul
05f0: 65 3c 2f 69 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 68 e</i>)</code></h
0600: 33 3e 0d 0a 0d 0a 47 65 74 20 6f 72 20 73 65 74 3>....Get or set
0610: 20 73 65 72 69 61 6c 69 7a 61 74 69 6f 6e 20 72 serialization r
0620: 75 6c 65 73 20 66 6f 72 20 74 68 65 20 67 69 76 ules for the giv
0630: 65 6e 20 74 61 67 2e 20 54 68 65 20 72 75 6c 65 en tag. The rule
0640: 20 6d 61 79 20 62 65 20 3c 74 74 3e 76 6f 69 64 may be <tt>void
0650: 3c 2f 74 74 3e 2c 20 3c 74 74 3e 72 61 77 3c 2f </tt>, <tt>raw</
0660: 74 74 3e 20 6f 72 20 3c 74 74 3e 6e 6f 72 6d 61 tt> or <tt>norma
0670: 6c 3c 2f 74 74 3e 2e 20 3c 74 74 3e 76 6f 69 64 l</tt>. <tt>void
0680: 3c 2f 74 74 3e 20 65 6c 65 6d 65 6e 74 73 20 63 </tt> elements c
0690: 61 6e 6e 6f 74 20 68 61 76 65 20 63 6f 6e 74 65 annot have conte
06a0: 6e 74 73 2c 20 3c 74 74 3e 72 61 77 3c 2f 74 74 nts, <tt>raw</tt
06b0: 3e 20 65 6c 65 6d 65 6e 74 73 20 63 61 6e 6e 6f > elements canno
06c0: 74 20 68 61 76 65 20 6f 74 68 65 72 20 65 6c 65 t have other ele
06d0: 6d 65 6e 74 73 20 61 73 20 63 6f 6e 74 65 6e 74 ments as content
06e0: 73 20 61 6e 64 20 3c 74 74 3e 6e 6f 72 6d 61 6c s and <tt>normal
06f0: 3c 2f 74 74 3e 20 65 6c 65 6d 65 6e 74 73 20 61 </tt> elements a
0700: 72 65 20 74 68 65 20 64 65 66 61 75 6c 74 2e 0d re the default..
0710: 0a 0d 0a 3c 68 33 3e 70 72 6f 63 65 64 75 72 65 ...<h3>procedure
0720: 3a 20 3c 63 6f 64 65 3e 28 77 72 69 74 65 2d 68 : <code>(write-h
0730: 74 6d 6c 20 3c 69 3e 68 74 6d 6c 3c 2f 69 3e 29 tml <i>html</i>)
0740: 3c 2f 63 6f 64 65 3e 3c 2f 68 33 3e 0d 0a 3c 68 </code></h3>..<h
0750: 33 3e 70 72 6f 63 65 64 75 72 65 3a 20 3c 63 6f 3>procedure: <co
0760: 64 65 3e 28 77 72 69 74 65 2d 68 74 6d 6c 20 3c de>(write-html <
0770: 69 3e 68 74 6d 6c 3c 2f 69 3e 20 3c 69 3e 70 6f i>html</i> <i>po
0780: 72 74 3c 2f 69 3e 29 3c 2f 63 6f 64 65 3e 3c 2f rt</i>)</code></
0790: 68 33 3e 0d 0a 0d 0a 57 72 69 74 65 20 61 6e 20 h3>....Write an
07a0: 53 2d 65 78 70 72 65 73 73 69 6f 6e 20 61 73 20 S-expression as
07b0: 48 54 4d 4c 35 20 74 6f 20 74 68 65 20 67 69 76 HTML5 to the giv
07c0: 65 6e 20 70 6f 72 74 20 6f 72 20 74 6f 20 74 68 en port or to th
07d0: 65 20 3c 74 74 3e 28 63 75 72 72 65 6e 74 2d 6f e <tt>(current-o
07e0: 75 74 70 75 74 2d 70 6f 72 74 29 3c 2f 74 74 3e utput-port)</tt>
07f0: 2e 0d 0a 0a 5a 20 65 36 32 32 36 39 39 33 34 33 ....Z e622699343
0800: 33 64 61 66 39 63 35 36 62 63 33 61 32 38 38 35 3daf9c56bc3a2885
0810: 39 61 63 35 64 66 0a 9ac5df.