From b212a51062c1ea2ab6aa6c5fb9f777ef2e1f29aa Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal Date: Sun, 10 Dec 2017 11:05:21 -0500 Subject: Integrate Powerpoint writer into pandoc. --- pandoc.cabal | 42 ++++++++++++++++++++++++++++++++++++++++++ src/Text/Pandoc/App.hs | 1 + src/Text/Pandoc/Data.hs | 1 + src/Text/Pandoc/Writers.hs | 3 +++ 4 files changed, 47 insertions(+) diff --git a/pandoc.cabal b/pandoc.cabal index ac5dffbcf..fb097aeb0 100644 --- a/pandoc.cabal +++ b/pandoc.cabal @@ -98,6 +98,46 @@ data-files: data/odt/Configurations2/accelerator/current.xml data/odt/Thumbnails/thumbnail.png data/odt/META-INF/manifest.xml + -- source files for reference.pptx + data/pptx/_rels/.rels + data/pptx/docProps/thumbnail.jpeg + data/pptx/docProps/app.xml + data/pptx/docProps/core.xml + data/pptx/ppt/slideLayouts/slideLayout4.xml + data/pptx/ppt/slideLayouts/_rels/slideLayout9.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout2.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout10.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout1.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout3.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout5.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout7.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout8.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout11.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout4.xml.rels + data/pptx/ppt/slideLayouts/_rels/slideLayout6.xml.rels + data/pptx/ppt/slideLayouts/slideLayout2.xml + data/pptx/ppt/slideLayouts/slideLayout8.xml + data/pptx/ppt/slideLayouts/slideLayout11.xml + data/pptx/ppt/slideLayouts/slideLayout3.xml + data/pptx/ppt/slideLayouts/slideLayout6.xml + data/pptx/ppt/slideLayouts/slideLayout9.xml + data/pptx/ppt/slideLayouts/slideLayout5.xml + data/pptx/ppt/slideLayouts/slideLayout7.xml + data/pptx/ppt/slideLayouts/slideLayout1.xml + data/pptx/ppt/slideLayouts/slideLayout10.xml + data/pptx/ppt/_rels/presentation.xml.rels + data/pptx/ppt/theme/theme1.xml + data/pptx/ppt/presProps.xml + data/pptx/ppt/slides/_rels/slide1.xml.rels + data/pptx/ppt/slides/_rels/slide2.xml.rels + data/pptx/ppt/slides/slide2.xml + data/pptx/ppt/slides/slide1.xml + data/pptx/ppt/viewProps.xml + data/pptx/ppt/tableStyles.xml + data/pptx/ppt/slideMasters/_rels/slideMaster1.xml.rels + data/pptx/ppt/slideMasters/slideMaster1.xml + data/pptx/ppt/presentation.xml + data/pptx/[Content_Types].xml -- stylesheet for EPUB writer data/epub.css -- data for LaTeXMathML writer @@ -433,12 +473,14 @@ library Text.Pandoc.Writers.RTF, Text.Pandoc.Writers.ODT, Text.Pandoc.Writers.Docx, + Text.Pandoc.Writers.Powerpoint, Text.Pandoc.Writers.EPUB, Text.Pandoc.Writers.FB2, Text.Pandoc.Writers.TEI, Text.Pandoc.Writers.Muse, Text.Pandoc.Writers.Math, Text.Pandoc.Writers.Shared, + Text.Pandoc.Writers.OOXML, Text.Pandoc.Lua, Text.Pandoc.PDF, Text.Pandoc.UTF8, diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs index ae62db4f9..3dd4f214c 100644 --- a/src/Text/Pandoc/App.hs +++ b/src/Text/Pandoc/App.hs @@ -815,6 +815,7 @@ defaultWriterName x = ".tei" -> "tei" ".ms" -> "ms" ".roff" -> "ms" + ".pptx" -> "pptx" ['.',y] | y `elem` ['1'..'9'] -> "man" _ -> "html" diff --git a/src/Text/Pandoc/Data.hs b/src/Text/Pandoc/Data.hs index 6bb6069ca..332882c22 100644 --- a/src/Text/Pandoc/Data.hs +++ b/src/Text/Pandoc/Data.hs @@ -18,4 +18,5 @@ dataFiles' = ("MANUAL.txt", $(embedFile "MANUAL.txt")) : -- handle the hidden file separately, since embedDir doesn't -- include it: ("docx/_rels/.rels", $(embedFile "data/docx/_rels/.rels")) : + ("pptx/_rels/.rels", $(embedFile "data/pptx/_rels/.rels")) : $(embedDir "data") diff --git a/src/Text/Pandoc/Writers.hs b/src/Text/Pandoc/Writers.hs index 046022b09..b336c1f1a 100644 --- a/src/Text/Pandoc/Writers.hs +++ b/src/Text/Pandoc/Writers.hs @@ -68,6 +68,7 @@ module Text.Pandoc.Writers , writeOpenDocument , writeOrg , writePlain + , writePowerpoint , writeRST , writeRTF , writeRevealJs @@ -113,6 +114,7 @@ import Text.Pandoc.Writers.ODT import Text.Pandoc.Writers.OpenDocument import Text.Pandoc.Writers.OPML import Text.Pandoc.Writers.Org +import Text.Pandoc.Writers.Powerpoint import Text.Pandoc.Writers.RST import Text.Pandoc.Writers.RTF import Text.Pandoc.Writers.TEI @@ -131,6 +133,7 @@ writers = [ ,("json" , TextWriter $ \o d -> return $ writeJSON o d) ,("docx" , ByteStringWriter writeDocx) ,("odt" , ByteStringWriter writeODT) + ,("pptx" , ByteStringWriter writePowerpoint) ,("epub" , ByteStringWriter writeEPUB3) ,("epub2" , ByteStringWriter writeEPUB2) ,("epub3" , ByteStringWriter writeEPUB3) -- cgit v1.2.3