instance FromTree [Text] where
fromTree (Tree "Word" chars _) = [Chars $ concatMap fromTree chars]
- fromTree (Tree "Ordinal" x _) = [Command "ordinal" $ [Chars (show x)]]
+ fromTree (Tree "Ordinal" x _) = [Command "ordinal" $ [Chars $ concatMap show x]]
fromTree (Tree "Fraction" [n,d] _) = [Command "fraction" $ [(Chars (show n)), (Chars (show d))]]
fromTree (Tree "WS" _ _) = [WS]
fromTree (Tree "Quotes" [x] _) = [Quotes $ fromTree x]
toHtml (Command "br" _) = "\n<br/>\n"
toHtml (Command "cent" _) = "½"
toHtml (Command "euro" _) = "€"
- toHtml (Command "ordinal" x) = (toHtml x)++"<sup>"++"th"++"</sup>"
+
+ -- gross hack
+ toHtml (Command "ordinal" x) | (last (toHtml x) == '1') = (toHtml x)++"<sup>"++"st"++"</sup>"
+ | (last (toHtml x) == '2') = (toHtml x)++"<sup>"++"nd"++"</sup>"
+ | (last (toHtml x) == '3') = (toHtml x)++"<sup>"++"rd"++"</sup>"
+ | otherwise = (toHtml x)++"<sup>"++"th"++"</sup>"
+
-- FIXME: use "unicode vulgar fractions" here
toHtml (Command "fraction" [n,d]) = "<sup>"++(toHtml n)++"</sup>"++"/"++"<sub>"++(toHtml d)++"</sub>"
toHtml (Command "rfc" x) = "<tt><a href=http://tools.ietf.org/html/rfc"++(toHtml x)++">RFC"++(toHtml x)++"</a></tt>"