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