remove dependencies on css-tools and hyphenate
parent
9102ba4cf0
commit
66b7f736b5
@ -0,0 +1,291 @@
|
||||
#lang racket/base
|
||||
(require racket/contract xml)
|
||||
(provide (all-defined-out))
|
||||
|
||||
;; for now, body is deemed a block, not inline
|
||||
;; todo: is this legit? Why is body inline?
|
||||
(define block-tags
|
||||
'(address article aside audio blockquote body canvas dd div dl fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hgroup noscript ol output p pre section table tfoot ul video))
|
||||
|
||||
|
||||
;; for now, map is omitted because it's a Racket keyword
|
||||
;; for now, style, script, and link are omitted because they shouldn't be wrapped
|
||||
;; todo: figure out how to resolve this. should be able to use html version of map.
|
||||
;; possibly prefixed? Probably a good idea so it doesn't collide with user namespace
|
||||
(define inline-tags
|
||||
'(a abbr acronym applet area b base basefont bdo big br button caption center cite code col colgroup del dir dfn dt em embed font frame framesethead hr html i iframe img input ins isindex kbd label legend li menu meta noframes object optgroup option param q s samp select small span strike strong sub sup tbody td textarea th thead title tr tt u var xmp))
|
||||
|
||||
(define tags (append block-tags inline-tags))
|
||||
|
||||
(define/contract (entity->string e)
|
||||
(symbol? . -> . string?)
|
||||
(format "~a" (integer->char (entity->integer e))))
|
||||
|
||||
(define/contract (string->entity str)
|
||||
(string? . -> . symbol?)
|
||||
(integer->entity (char->integer (car (string->list str)))))
|
||||
|
||||
(define/contract (entity->integer e)
|
||||
(symbol? . -> . integer?)
|
||||
(hash-ref entities e))
|
||||
|
||||
(define/contract (integer->entity int)
|
||||
(integer? . -> . symbol?)
|
||||
(hash-ref chars int))
|
||||
|
||||
(define entities '#hash((quot . 34)
|
||||
(amp . 38)
|
||||
(apos . 39)
|
||||
(lt . 60)
|
||||
(gt . 62)
|
||||
(nbsp . 160)
|
||||
(iexcl . 161)
|
||||
(cent . 162)
|
||||
(pound . 163)
|
||||
(curren . 164)
|
||||
(yen . 165)
|
||||
(brvbar . 166)
|
||||
(sect . 167)
|
||||
(uml . 168)
|
||||
(copy . 169)
|
||||
(ordf . 170)
|
||||
(laquo . 171)
|
||||
(not . 172)
|
||||
(shy . 173)
|
||||
(reg . 174)
|
||||
(macr . 175)
|
||||
(deg . 176)
|
||||
(plusmn . 177)
|
||||
(sup2 . 178)
|
||||
(sup3 . 179)
|
||||
(acute . 180)
|
||||
(micro . 181)
|
||||
(para . 182)
|
||||
(middot . 183)
|
||||
(cedil . 184)
|
||||
(sup1 . 185)
|
||||
(ordm . 186)
|
||||
(raquo . 187)
|
||||
(frac14 . 188)
|
||||
(frac12 . 189)
|
||||
(frac34 . 190)
|
||||
(iquest . 191)
|
||||
(Agrave . 192)
|
||||
(Aacute . 193)
|
||||
(Acirc . 194)
|
||||
(Atilde . 195)
|
||||
(Auml . 196)
|
||||
(Aring . 197)
|
||||
(AElig . 198)
|
||||
(Ccedil . 199)
|
||||
(Egrave . 200)
|
||||
(Eacute . 201)
|
||||
(Ecirc . 202)
|
||||
(Euml . 203)
|
||||
(Igrave . 204)
|
||||
(Iacute . 205)
|
||||
(Icirc . 206)
|
||||
(Iuml . 207)
|
||||
(ETH . 208)
|
||||
(Ntilde . 209)
|
||||
(Ograve . 210)
|
||||
(Oacute . 211)
|
||||
(Ocirc . 212)
|
||||
(Otilde . 213)
|
||||
(Ouml . 214)
|
||||
(times . 215)
|
||||
(Oslash . 216)
|
||||
(Ugrave . 217)
|
||||
(Uacute . 218)
|
||||
(Ucirc . 219)
|
||||
(Uuml . 220)
|
||||
(Yacute . 221)
|
||||
(THORN . 222)
|
||||
(szlig . 223)
|
||||
(agrave . 224)
|
||||
(aacute . 225)
|
||||
(acirc . 226)
|
||||
(atilde . 227)
|
||||
(auml . 228)
|
||||
(aring . 229)
|
||||
(aelig . 230)
|
||||
(ccedil . 231)
|
||||
(egrave . 232)
|
||||
(eacute . 233)
|
||||
(ecirc . 234)
|
||||
(euml . 235)
|
||||
(igrave . 236)
|
||||
(iacute . 237)
|
||||
(icirc . 238)
|
||||
(iuml . 239)
|
||||
(eth . 240)
|
||||
(ntilde . 241)
|
||||
(ograve . 242)
|
||||
(oacute . 243)
|
||||
(ocirc . 244)
|
||||
(otilde . 245)
|
||||
(ouml . 246)
|
||||
(divide . 247)
|
||||
(oslash . 248)
|
||||
(ugrave . 249)
|
||||
(uacute . 250)
|
||||
(ucirc . 251)
|
||||
(uuml . 252)
|
||||
(yacute . 253)
|
||||
(thorn . 254)
|
||||
(yuml . 255)
|
||||
(OElig . 338)
|
||||
(oelig . 339)
|
||||
(Scaron . 352)
|
||||
(scaron . 353)
|
||||
(Yuml . 376)
|
||||
(fnof . 402)
|
||||
(circ . 710)
|
||||
(tilde . 732)
|
||||
(Alpha . 913)
|
||||
(Beta . 914)
|
||||
(Gamma . 915)
|
||||
(Delta . 916)
|
||||
(Epsilon . 917)
|
||||
(Zeta . 918)
|
||||
(Eta . 919)
|
||||
(Theta . 920)
|
||||
(Iota . 921)
|
||||
(Kappa . 922)
|
||||
(Lambda . 923)
|
||||
(Mu . 924)
|
||||
(Nu . 925)
|
||||
(Xi . 926)
|
||||
(Omicron . 927)
|
||||
(Pi . 928)
|
||||
(Rho . 929)
|
||||
(Sigma . 931)
|
||||
(Tau . 932)
|
||||
(Upsilon . 933)
|
||||
(Phi . 934)
|
||||
(Chi . 935)
|
||||
(Psi . 936)
|
||||
(Omega . 937)
|
||||
(alpha . 945)
|
||||
(beta . 946)
|
||||
(gamma . 947)
|
||||
(delta . 948)
|
||||
(epsilon . 949)
|
||||
(zeta . 950)
|
||||
(eta . 951)
|
||||
(theta . 952)
|
||||
(iota . 953)
|
||||
(kappa . 954)
|
||||
(lambda . 955)
|
||||
(mu . 956)
|
||||
(nu . 957)
|
||||
(xi . 958)
|
||||
(omicron . 959)
|
||||
(pi . 960)
|
||||
(rho . 961)
|
||||
(sigmaf . 962)
|
||||
(sigma . 963)
|
||||
(tau . 964)
|
||||
(upsilon . 965)
|
||||
(phi . 966)
|
||||
(chi . 967)
|
||||
(psi . 968)
|
||||
(omega . 969)
|
||||
(thetasym . 977)
|
||||
(upsih . 978)
|
||||
(piv . 982)
|
||||
(ensp . 8194)
|
||||
(emsp . 8195)
|
||||
(thinsp . 8201)
|
||||
(zwnj . 8204)
|
||||
(zwj . 8205)
|
||||
(lrm . 8206)
|
||||
(rlm . 8207)
|
||||
(ndash . 8211)
|
||||
(mdash . 8212)
|
||||
(lsquo . 8216)
|
||||
(rsquo . 8217)
|
||||
(sbquo . 8218)
|
||||
(ldquo . 8220)
|
||||
(rdquo . 8221)
|
||||
(bdquo . 8222)
|
||||
(dagger . 8224)
|
||||
(Dagger . 8225)
|
||||
(bull . 8226)
|
||||
(hellip . 8230)
|
||||
(permil . 8240)
|
||||
(prime . 8242)
|
||||
(Prime . 8243)
|
||||
(lsaquo . 8249)
|
||||
(rsaquo . 8250)
|
||||
(oline . 8254)
|
||||
(frasl . 8260)
|
||||
(euro . 8364)
|
||||
(image . 8465)
|
||||
(weierp . 8472)
|
||||
(real . 8476)
|
||||
(trade . 8482)
|
||||
(alefsym . 8501)
|
||||
(larr . 8592)
|
||||
(uarr . 8593)
|
||||
(rarr . 8594)
|
||||
(darr . 8595)
|
||||
(harr . 8596)
|
||||
(crarr . 8629)
|
||||
(lArr . 8656)
|
||||
(uArr . 8657)
|
||||
(rArr . 8658)
|
||||
(dArr . 8659)
|
||||
(hArr . 8660)
|
||||
(forall . 8704)
|
||||
(part . 8706)
|
||||
(exist . 8707)
|
||||
(empty . 8709)
|
||||
(nabla . 8711)
|
||||
(isin . 8712)
|
||||
(notin . 8713)
|
||||
(ni . 8715)
|
||||
(prod . 8719)
|
||||
(sum . 8721)
|
||||
(minus . 8722)
|
||||
(lowast . 8727)
|
||||
(radic . 8730)
|
||||
(prop . 8733)
|
||||
(infin . 8734)
|
||||
(ang . 8736)
|
||||
(and . 8743)
|
||||
(or . 8744)
|
||||
(cap . 8745)
|
||||
(cup . 8746)
|
||||
(int . 8747)
|
||||
(there4 . 8756)
|
||||
(sim . 8764)
|
||||
(cong . 8773)
|
||||
(asymp . 8776)
|
||||
(ne . 8800)
|
||||
(equiv . 8801)
|
||||
(le . 8804)
|
||||
(ge . 8805)
|
||||
(sub . 8834)
|
||||
(sup . 8835)
|
||||
(nsub . 8836)
|
||||
(sube . 8838)
|
||||
(supe . 8839)
|
||||
(oplus . 8853)
|
||||
(otimes . 8855)
|
||||
(perp . 8869)
|
||||
(sdot . 8901)
|
||||
(vellip . 8942)
|
||||
(lceil . 8968)
|
||||
(rceil . 8969)
|
||||
(lfloor . 8970)
|
||||
(rfloor . 8971)
|
||||
(lang . 9001)
|
||||
(rang . 9002)
|
||||
(loz . 9674)
|
||||
(spades . 9824)
|
||||
(clubs . 9827)
|
||||
(hearts . 9829)
|
||||
(diams . 9830)))
|
||||
|
||||
(define chars (make-hash (hash-map entities (λ(k v) (cons v k))))) ; flip the hash
|
Loading…
Reference in New Issue