From 8b7df2d915fb4cedb99e60188b0899de9b8b7024 Mon Sep 17 00:00:00 2001
From: Jesse Rosenthal <jrosenthal@jhu.edu>
Date: Thu, 22 Feb 2018 13:39:19 -0500
Subject: [PATCH] Docx reader: Move pandoc inline styling inside custom-style
 span

Previously Emph, Strong, etc were outside the custom-style span. This
moves them inside in order to make it easier to write filters that act
on the formatting in these contents.

Tests and MANUAL example are changed to match.
---
 MANUAL.txt                                |  4 ++--
 src/Text/Pandoc/Readers/Docx.hs           | 14 +++++++-------
 test/docx/custom-style-with-styles.native |  2 +-
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/MANUAL.txt b/MANUAL.txt
index d4a0c5e1d..9df9948f2 100644
--- a/MANUAL.txt
+++ b/MANUAL.txt
@@ -4538,8 +4538,8 @@ And with the extension:
     :::
 
     ::: {custom-style="BodyText"}
-    This is text with an *[emphasized]{custom-style="Emphatic"}* text style.
-    And this is text with a **[strengthened]{custom-style="Strengthened"}**
+    This is text with an [*emphasized*]{custom-style="Emphatic"} text style.
+    And this is text with a [**strengthened**]{custom-style="Strengthened"}
     text style.
     :::
 
diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs
index 775fa1cdd..5f2ca0fff 100644
--- a/src/Text/Pandoc/Readers/Docx.hs
+++ b/src/Text/Pandoc/Readers/Docx.hs
@@ -301,37 +301,37 @@ runStyleToTransform rPr
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {isItalic = Nothing}
-      return $ emph . extraInfo . transform
+      return $ extraInfo . emph  . transform
   | Just True <- isBold rPr = do
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {isBold = Nothing}
-      return $ strong . extraInfo . transform
+      return $ extraInfo . strong . transform
   | Just True <- isSmallCaps rPr = do
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {isSmallCaps = Nothing}
-      return $ smallcaps . extraInfo .transform
+      return $ extraInfo . smallcaps . transform
   | Just True <- isStrike rPr = do
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {isStrike = Nothing}
-      return $ strikeout . extraInfo . transform
+      return $ extraInfo . strikeout . transform
   | Just SupScrpt <- rVertAlign rPr = do
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {rVertAlign = Nothing}
-      return $ superscript . extraInfo . transform
+      return $ extraInfo . superscript . transform
   | Just SubScrpt <- rVertAlign rPr = do
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {rVertAlign = Nothing}
-      return $ subscript . extraInfo . transform
+      return $ extraInfo . subscript . transform
   | Just "single" <- rUnderline rPr = do
       extraInfo <- extraRunStyleInfo rPr
       transform <- local (\e -> e{docxCustomStyleAlready = True}) $
                    runStyleToTransform rPr {rUnderline = Nothing}
-      return $ underlineSpan . extraInfo . transform
+      return $ extraInfo . underlineSpan . transform
   | otherwise = extraRunStyleInfo rPr
 
 runToInlines :: PandocMonad m => Run -> DocxContext m Inlines
diff --git a/test/docx/custom-style-with-styles.native b/test/docx/custom-style-with-styles.native
index 9547a261a..6b0381408 100644
--- a/test/docx/custom-style-with-styles.native
+++ b/test/docx/custom-style-with-styles.native
@@ -1,7 +1,7 @@
 [Div ("",[],[("custom-style","FirstParagraph")])
  [Para [Str "This",Space,Str "is",Space,Str "some",Space,Str "text."]]
 ,Div ("",[],[("custom-style","BodyText")])
- [Para [Str "This",Space,Str "is",Space,Str "text",Space,Str "with",Space,Str "an",Space,Emph [Span ("",[],[("custom-style","Emphatic")]) [Str "emphasized"]],Space,Str "text",Space,Str "style.",Space,Str "And",Space,Str "this",Space,Str "is",Space,Str "text",Space,Str "with",Space,Str "a",Space,Strong [Span ("",[],[("custom-style","Strengthened")]) [Str "strengthened"]],Space,Str "text",Space,Str "style."]]
+ [Para [Str "This",Space,Str "is",Space,Str "text",Space,Str "with",Space,Str "an",Space,Span ("",[],[("custom-style","Emphatic")]) [Emph [Str "emphasized"]],Space,Str "text",Space,Str "style.",Space,Str "And",Space,Str "this",Space,Str "is",Space,Str "text",Space,Str "with",Space,Str "a",Space,Span ("",[],[("custom-style","Strengthened")]) [Strong [Str "strengthened"]],Space,Str "text",Space,Str "style."]]
 ,Div ("",[],[("custom-style","MyBlockStyle")])
  [BlockQuote
   [Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "styled",Space,Str "paragraph",Space,Str "that",Space,Str "inherits",Space,Str "from",Space,Str "Block",Space,Str "Text."]]]]