@@ -39,21 +39,21 @@ import Data.List
3939import Data.Maybe
4040import Text.Pandoc.Generic (bottomUp)
4141import Text.Pandoc.JSON
42−import Text.Pandoc.Shared (trim)
42+import Text.Pandoc.Shared (trim, safeRead)
4343
4444isListItem :: Block -> Bool
4545isListItem (Div (_, classes, _) _) | "list-item" `elem` classes = True
4646isListItem _ = False
4747
4848getLevel :: Block -> Maybe Integer
49−getLevel (Div (_, _, kvs) _) = read <$> lookup "level" kvs
49+getLevel (Div (_, _, kvs) _) = lookup "level" kvs >>= safeRead
5050getLevel _ = Nothing
5151
5252getLevelN :: Block -> Integer
5353getLevelN b = fromMaybe (-1) (getLevel b)
5454
5555getNumId :: Block -> Maybe Integer
56−getNumId (Div (_, _, kvs) _) = read <$> lookup "num-id" kvs
56+getNumId (Div (_, _, kvs) _) = lookup "num-id" kvs >>= safeRead
5757getNumId _ = Nothing
5858
5959getNumIdN :: Block -> Integer
@@ -89,7 +89,7 @@ getListType b@(Div (_, _, kvs) _) | isListItem b =
8989 Just f ->
9090 case txt of
9191 Just t -> Just $ Enumerated (
92− read (fromMaybe "1" start) :: Int,
92+ fromMaybe 1 (start >>= safeRead) :: Int,
9393 fromMaybe DefaultStyle (lookup f listStyleMap),
9494 fromMaybe DefaultDelim (lookup t listDelimMap))
9595 Nothing -> Nothing