diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-03-16 12:02:40 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-03-16 12:02:40 -0700 |
commit | 619b2e8ca207b39829b74683cfc514ffbf4ddbbb (patch) | |
tree | c8f9c2d44621ccab0398ecb064e7e23cb0f4339a /src/Text/Pandoc/Readers/Docx/Util.hs | |
parent | 6fc578b79a43f1f2f522d1ba52b9133ce95b52dc (diff) | |
parent | 59c4d28d8c70e3d23428897d78a3c401e30612e5 (diff) | |
download | pandoc-619b2e8ca207b39829b74683cfc514ffbf4ddbbb.tar.gz |
Merge pull request #1968 from lierdakil/issue1607
Fixes for multiple docx writer style bugs.
Diffstat (limited to 'src/Text/Pandoc/Readers/Docx/Util.hs')
-rw-r--r-- | src/Text/Pandoc/Readers/Docx/Util.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Readers/Docx/Util.hs b/src/Text/Pandoc/Readers/Docx/Util.hs new file mode 100644 index 000000000..891f107b0 --- /dev/null +++ b/src/Text/Pandoc/Readers/Docx/Util.hs @@ -0,0 +1,26 @@ +module Text.Pandoc.Readers.Docx.Util ( + NameSpaces + , elemName + , isElem + , elemToNameSpaces + ) where + +import Text.XML.Light +import Data.Maybe (mapMaybe) + +type NameSpaces = [(String, String)] + +elemToNameSpaces :: Element -> NameSpaces +elemToNameSpaces = mapMaybe attrToNSPair . elAttribs + +attrToNSPair :: Attr -> Maybe (String, String) +attrToNSPair (Attr (QName s _ (Just "xmlns")) val) = Just (s, val) +attrToNSPair _ = Nothing + +elemName :: NameSpaces -> String -> String -> QName +elemName ns prefix name = QName name (lookup prefix ns) (Just prefix) + +isElem :: NameSpaces -> String -> String -> Element -> Bool +isElem ns prefix name element = + qName (elName element) == name && + qURI (elName element) == lookup prefix ns |