aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Rosenthal <jrosenthal@jhu.edu>2014-09-06 07:53:29 -0400
committerJesse Rosenthal <jrosenthal@jhu.edu>2014-09-06 07:53:29 -0400
commit132814aeb68fc7f50c2ab8370339e0c5ffb7793d (patch)
tree40d9e6b4efedaf6f663e195dc1e88106180aaf41
parentf56e0e958a1f2d1332bdb350205ee38afcaf4a1c (diff)
downloadpandoc-132814aeb68fc7f50c2ab8370339e0c5ffb7793d.tar.gz
Docx Reader: Remove header class properly in other langs
When we encounter one of the polyglot header styles, we want to remove that from the par styles after we convert to a header. To do that, we have to keep track of the style name, and remove it appropriately.
-rw-r--r--src/Text/Pandoc/Readers/Docx.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs
index 6703c779d..4b5fbfdfc 100644
--- a/src/Text/Pandoc/Readers/Docx.hs
+++ b/src/Text/Pandoc/Readers/Docx.hs
@@ -468,11 +468,11 @@ bodyPartToBlocks (Paragraph pPr parparts)
$ codeBlock
$ concatMap parPartToString parparts
| (c : cs) <- filter (isJust . isHeaderClass) $ pStyle pPr
- , Just n <- isHeaderClass c = do
+ , Just (prefix, n) <- isHeaderClass c = do
ils <- local (\s-> s{docxInHeaderBlock=True}) $
(concatReduce <$> mapM parPartToInlines parparts)
makeHeaderAnchor $
- headerWith ("", delete ("Heading" ++ show n) cs, []) n ils
+ headerWith ("", delete (prefix ++ show n) cs, []) n ils
| otherwise = do
ils <- concatReduce <$> mapM parPartToInlines parparts >>=
(return . fromList . trimLineBreaks . normalizeSpaces . toList)
@@ -560,11 +560,11 @@ docxToOutput opts (Docx (Document _ body)) =
let dEnv = def { docxOptions = opts} in
evalDocxContext (bodyToOutput body) dEnv def
-isHeaderClass :: String -> Maybe Int
+isHeaderClass :: String -> Maybe (String, Int)
isHeaderClass s | (pref:_) <- filter (\h -> isPrefixOf h s) headerPrefixes
, Just s' <- stripPrefix pref s =
case reads s' :: [(Int, String)] of
[] -> Nothing
- ((n, "") : []) -> Just n
+ ((n, "") : []) -> Just (pref, n)
_ -> Nothing
isHeaderClass _ = Nothing