@@ -722,9 +722,15 @@ getUniqueId :: MonadIO m => m String
722-- already in word/document.xml.rel
722-- already in word/document.xml.rel
723getUniqueId = liftIO $ (show . (+ 20) . hashUnique) `fmap` newUnique
723getUniqueId = liftIO $ (show . (+ 20) . hashUnique) `fmap` newUnique
725+-- | Key for specifying user-defined docx styles.
726+dynamicStyleKey :: String
727+dynamicStyleKey = "docx-style"
725-- | Convert a Pandoc block element to OpenXML.
729-- | Convert a Pandoc block element to OpenXML.
726blockToOpenXML :: WriterOptions -> Block -> WS [Element]
730blockToOpenXML :: WriterOptions -> Block -> WS [Element]
727blockToOpenXML _ Null = return []
731blockToOpenXML _ Null = return []
732+blockToOpenXML opts (Div (_,_,kvs) bs) | Just sty <- lookup dynamicStyleKey kvs =
733+ withParaPropM (pStyleM sty) $ blocksToOpenXML opts bs
728blockToOpenXML opts (Div (_,["references"],_) bs) = do
734blockToOpenXML opts (Div (_,["references"],_) bs) = do
729 let (hs, bs') = span isHeaderBlock bs
735 let (hs, bs') = span isHeaderBlock bs
730 header <- blocksToOpenXML opts hs
736 header <- blocksToOpenXML opts hs