module Text.HMarkup.Entities where import Data.Map (Map) import qualified Data.Map as Map getEntity :: Monad m => String -> m String getEntity n = case Map.lookup n entities of Nothing -> fail $ "Unknown entity: " ++ n Just x -> return x -- this list was generated with: -- runghc tools/markup-entities.hs tools/xhtml-dtd/xhtml-*.ent entities :: Map String String entities = Map.fromList [ ("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"), ("quot", "\34"), ("amp", "\38"), ("lt", "\60"), ("gt", "\62"), ("apos", "\39"), ("OElig", "\338"), ("oelig", "\339"), ("Scaron", "\352"), ("scaron", "\353"), ("Yuml", "\376"), ("circ", "\710"), ("tilde", "\732"), ("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"), ("permil", "\8240"), ("lsaquo", "\8249"), ("rsaquo", "\8250"), ("euro", "\8364"), ("fnof", "\402"), ("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"), ("bull", "\8226"), ("hellip", "\8230"), ("prime", "\8242"), ("Prime", "\8243"), ("oline", "\8254"), ("frasl", "\8260"), ("weierp", "\8472"), ("image", "\8465"), ("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"), ("lceil", "\8968"), ("rceil", "\8969"), ("lfloor", "\8970"), ("rfloor", "\8971"), ("lang", "\9001"), ("rang", "\9002"), ("loz", "\9674"), ("spades", "\9824"), ("clubs", "\9827"), ("hearts", "\9829"), ("diams", "\9830") ]