From 8b3acde9deaeb30ba75299001ea1b15345983f3c Mon Sep 17 00:00:00 2001
From: Nikolay Yakimov <root@livid.pp.ru>
Date: Sun, 22 Feb 2015 23:25:12 +0300
Subject: If --no-highlight is set, remove *Tok styles.

---
 src/Text/Pandoc/Writers/Docx.hs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

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

diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs
index a240997ab..64da9a497 100644
--- a/src/Text/Pandoc/Writers/Docx.hs
+++ b/src/Text/Pandoc/Writers/Docx.hs
@@ -395,8 +395,16 @@ writeDocx opts doc@(Pandoc meta _) = do
 
   -- styles
   let newstyles = styleToOpenXml charStyles $ writerHighlightStyle opts
-  let styledoc' = styledoc{ elContent = elContent styledoc ++
-                  [Elem x | x <- newstyles, writerHighlight opts] }
+  let styledoc' = styledoc{ elContent = modifyContent (elContent styledoc) }
+                  where
+                    modifyContent
+                      | writerHighlight opts = (++ map Elem newstyles)
+                      | otherwise = filter notTokStyle
+                    notTokStyle (Elem el) = notStyle el || notTokId el
+                    notTokStyle _         = True
+                    notStyle = (/= myName "style") . elName
+                    notTokId = maybe True (`notElem` tokStys) . getAttrStyleId
+                    tokStys  = map show $ enumFromTo KeywordTok NormalTok
   let styleEntry = toEntry stylepath epochtime $ renderXml styledoc'
 
   -- construct word/numbering.xml
-- 
cgit v1.2.3