git.iko.soy/typeable/pandoc
on master help sign in
Code cleanup
commit5f8254c4b903a0512b4b25a252dfd153d7f4230d authorJohn MacFarlane <jgm@berkeley.edu> dateSun 6 Oct 2019, 22:01 (7 years ago) parentfcfdc82
1 file changed+23−19
src/Text/Pandoc/App/CommandLineOptions.hs+23−19
src/Text/Pandoc/App/CommandLineOptions.hs+23−19
@@ -26,7 +26,7 @@ import Control.Monad
2626import Control.Monad.Trans
2727import Data.Aeson.Encode.Pretty (encodePretty', Config(..), keyOrder,
2828 defConfig, Indent(..), NumberFormat(..))
29−import Data.Char (toLower, toUpper)
29+import Data.Char (toLower)
3030import Data.List (intercalate, sort)
3131#ifdef _WINDOWS
3232#if MIN_VERSION_base(4,12,0)
@@ -143,10 +143,12 @@ options =
143143 , Option "" ["wrap"]
144144 (ReqArg
145145 (\arg opt ->
146− case safeRead ("Wrap" ++ uppercaseFirstLetter arg) of
147− Just o -> return opt { optWrapText = o }
148− Nothing -> E.throwIO $ PandocOptionError
149− "--wrap must be auto, none, or preserve")
146+ case arg of
147+ "auto" -> return opt{ optWrapText = WrapAuto }
148+ "none" -> return opt{ optWrapText = WrapNone }
149+ "preserve" -> return opt{ optWrapText = WrapPreserve }
150+ _ -> E.throwIO $ PandocOptionError
151+ "--wrap must be auto, none, or preserve")
150152 "auto|none|preserve")
151153 "" -- "Option for wrapping text in output"
152154
@@ -209,15 +211,15 @@ options =
209211 case safeRead arg of
210212 Just t | t >= 1 && t <= 6 ->
211213 return opt { optTOCDepth = t }
212− _ -> E.throwIO $ PandocOptionError
213− "TOC level must be a number between 1 and 6")
214+ _ -> E.throwIO $ PandocOptionError
215+ "TOC level must be a number 1-6")
214216 "NUMBER")
215217 "" -- "Number of levels to include in TOC"
216218
217219 , Option "N" ["number-sections"]
218220 (NoArg
219221 (\opt -> return opt { optNumberSections = True }))
220− "" -- "Number sections in LaTeX"
222+ "" -- "Number sections"
221223
222224 , Option "" ["number-offset"]
223225 (ReqArg
@@ -232,13 +234,19 @@ options =
232234
233235 , Option "" ["top-level-division"]
234236 (ReqArg
235− (\arg opt -> do
236− let tldName = "TopLevel" ++ uppercaseFirstLetter arg
237− case safeRead tldName of
238− Just tlDiv -> return opt { optTopLevelDivision = tlDiv }
239− _ -> E.throwIO $ PandocOptionError
240− ("Top-level division must be " ++
241− "section, chapter, part, or default"))
237+ (\arg opt ->
238+ case arg of
239+ "section" -> return opt{ optTopLevelDivision =
240+ TopLevelSection }
241+ "chapter" -> return opt{ optTopLevelDivision =
242+ TopLevelChapter }
243+ "part" -> return opt{ optTopLevelDivision =
244+ TopLevelPart }
245+ "default" -> return opt{ optTopLevelDivision =
246+ TopLevelDefault }
247+ _ -> E.throwIO $ PandocOptionError $
248+ "Top-level division must be " ++
249+ "section, chapter, part, or default" )
242250 "section|chapter|part")
243251 "" -- "Use top-level division type in LaTeX, ConTeXt, DocBook"
244252
@@ -945,10 +953,6 @@ handleUnrecognizedOption "-R" = handleUnrecognizedOption "--parse-raw"
945953handleUnrecognizedOption x =
946954 (("Unknown option " ++ x ++ ".") :)
947955
948−uppercaseFirstLetter :: String -> String
949−uppercaseFirstLetter (c:cs) = toUpper c : cs
950−uppercaseFirstLetter [] = []
951−
952956readersNames :: [String]
953957readersNames = sort (map fst (readers :: [(String, Reader PandocIO)]))
954958