module Text.HMarkup (MarkupXHtmlPrefs(..), MarkupXHtmlFormat,
                     markupToHtml, defaultMarkupXHtmlPrefs, 
                     standardMarkupFormats) where

import Text.HMarkup.Parse
import Text.HMarkup.XHtml

import Text.XHtml (Html)

import Control.Monad (liftM)
import Control.Monad.Error ()

-- | Parse some markup and format it as HTML.
markupToHtml :: Monad m => 
                MarkupXHtmlPrefs m -> String 
             -> m (Either String Html) 
                -- ^ An error message or an HTML document.
markupToHtml pref s = 
    case parseMarkup "<input>" s of
      Left err  -> return $ Left err
      Right doc -> liftM Right $ docToHtml pref doc