@@ -342,7 +342,12 @@ defaultWriterName x =
344 args <- getArgs
344 args <- getArgs
346+ let compatMode = (prg == "hsmarkdown")
348+ let (actions, sources, errors) = if compatMode
345− let (actions, sources, errors) = getOpt Permute options args
350+ else getOpt Permute options args
347 if (not (null errors))
352 if (not (null errors))
@@ -353,8 +358,14 @@ main = do
354 return ()
359 return ()
361+ let defaultOpts' = if compatMode
362+ then defaultOpts { optReader = "markdown"
363+ , optWriter = "html"
364+ , optStrict = True }
356 -- thread option data structure through all supplied option actions
367 -- thread option data structure through all supplied option actions
357− opts <- foldl (>>=) (return defaultOpts) actions
368+ opts <- foldl (>>=) (return defaultOpts') actions
359 let Opt { optPreserveTabs = preserveTabs
370 let Opt { optPreserveTabs = preserveTabs
360 , optTabStop = tabStop
371 , optTabStop = tabStop
@@ -408,11 +419,11 @@ main = do
408 let addBlank str = str ++ "\n\n"
419 let addBlank str = str ++ "\n\n"
409 let removeCRs str = filter (/= '\r') str -- remove DOS-style line endings
420 let removeCRs str = filter (/= '\r') str -- remove DOS-style line endings
410 let filter = tabFilter . addBlank . removeCRs
421 let filter = tabFilter . addBlank . removeCRs
422+ let startParserState =
411− let startParserState = defaultParserState { stateParseRaw = parseRaw,
423+ defaultParserState { stateParseRaw = parseRaw,
412− stateTabStop = tabStop,
424+ stateTabStop = tabStop,
413− stateStandalone = standalone &&
425+ stateStandalone = standalone && (not strict),
415− stateStrict = strict }
426+ stateStrict = strict }
416 let csslink = if (css == "")
427 let csslink = if (css == "")
418 else "<link rel=\"stylesheet\" href=\"" ++ css ++
429 else "<link rel=\"stylesheet\" href=\"" ++ css ++