This is a library to handle the Server-Side Integration (SSI) of FCKeditor: http://www.fckeditor.net/ http://wiki.fckeditor.net/Developer%27s_Guide/Participating/Server_Side_Integration Features: * Can sniff the web-browser's user-agent string and return either an FCKeditor or a textarea. * Can validate the output of the editor against a given DTD. * Can handle FileBrowser requests. Currently it is not very polished. You will need to retrieve FCKeditor and install it yourself in an appropriate place, and probably read the source code of this library to see what it does. Testing: The HTML filter in the Validate module is ad-hoc. To aid debugging, you can create a standalone executable like so: ghc -Wall -main-is Text.XHtml.Validate.test --make -o validate Text.XHtml.Validate Be careful about GHC's -main-is flag! A linker error probably means you need to remove Validate.{hi,o} You can also fire up GHCi and try something like the following: let r = onContent fixup (htmlParse "blah" "

blah

") case r of { Left x -> x; Right r -> render (content r) } runError (runXFilter tf) (\(_, s) -> [s]) ((), tc) This expects "xhtml1-strict.dtd" and dependencies in the current directory.