From 45f3851611007f18530b52c9fcc5f0106fbc6816 Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Tue, 3 Jun 2014 16:46:55 -0700
Subject: Docx writer: Section numbering carries over from reference.docx.

Closes #1305.
---
 src/Text/Pandoc/Writers/Docx.hs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

(limited to 'src/Text/Pandoc/Writers')

diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs
index 785238d6f..4e64a79df 100644
--- a/src/Text/Pandoc/Writers/Docx.hs
+++ b/src/Text/Pandoc/Writers/Docx.hs
@@ -291,8 +291,13 @@ writeDocx opts doc@(Pandoc meta _) = do
   let numpath = "word/numbering.xml"
   numbering <- parseXml refArchive distArchive numpath
   newNumElts <- mkNumbering (stLists st)
+  let allElts = onlyElems (elContent numbering) ++ newNumElts
   let numEntry = toEntry numpath epochtime $ renderXml numbering{ elContent =
-                       elContent numbering ++ map Elem newNumElts }
+                       -- we want all the abstractNums first, then the nums,
+                       -- otherwise things break:
+                       [Elem e | e <- allElts
+                               , qName (elName e) == "abstractNum" ] ++
+                       [Elem e | e <- allElts, qName (elName e) == "num" ] }
   let docPropsPath = "docProps/core.xml"
   let docProps = mknode "cp:coreProperties"
           [("xmlns:cp","http://schemas.openxmlformats.org/package/2006/metadata/core-properties")
-- 
cgit v1.2.3