@@ -81,8 +81,9 @@ pandocToRST (Pandoc meta blocks) = do
8181 (fmap (render colwidth) . blockListToRST)
8282 (fmap (trimr . render colwidth) . inlineListToRST)
8383 $ deleteMeta "title" $ deleteMeta "subtitle" meta
84− let minLev = findMinHeadingLevel Nothing blocks
85− body <- blockListToRST' True $ normalizeHeadings minLev blocks
84+ body <- blockListToRST' True $ if writerStandalone opts
85+ then normalizeHeadings 1 blocks
86+ else blocks
8687 notes <- liftM (reverse . stNotes) get >>= notesToRST
8788 -- note that the notes may contain refs, so we do them first
8889 refs <- liftM (reverse . stLinks) get >>= refsToRST
@@ -102,17 +103,13 @@ pandocToRST (Pandoc meta blocks) = do
102103 then return $ renderTemplate' (writerTemplate opts) context
103104 else return main
104105 where
105− normalizeHeadings lev (Header l a i:bs) = Header lev a i:normalizeHeadings (lev+1) cont ++ normalizeHeadings lev bs'
106+ normalizeHeadings lev (Header l a i:bs) =
107+ Header lev a i:normalizeHeadings (lev+1) cont ++ normalizeHeadings lev bs'
106108 where (cont,bs') = break (headerLtEq l) bs
107109 headerLtEq level (Header l' _ _) = l' <= level
108110 headerLtEq _ _ = False
109111 normalizeHeadings lev (b:bs) = b:normalizeHeadings lev bs
110112 normalizeHeadings _ [] = []
111− findMinHeadingLevel Nothing (Header l _a _i:bs) = findMinHeadingLevel (Just l) bs
112− findMinHeadingLevel (Just ol) (Header l _a _i:bs) =
113− findMinHeadingLevel (Just $ if ol>l then l else ol) bs
114− findMinHeadingLevel l (_:bs) = findMinHeadingLevel l bs
115− findMinHeadingLevel l [] = fromMaybe 1 l
116113
117114-- | Return RST representation of reference key table.
118115refsToRST :: Refs -> State WriterState Doc