From 1c28c5308f0991c09af8dcbf4e555ee77fe1dab1 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 19 Jul 2011 12:01:01 -0700 Subject: Added unexported Text.Pandoc.MIME. Moved getMimeType from Text.Pandoc.Shared to Text.Pandoc.MIME, so we won't have an API change. --- src/Text/Pandoc/MIME.hs | 483 +++++++++++++++++++++++++++++++++++++++++ src/Text/Pandoc/Shared.hs | 452 +------------------------------------- src/Text/Pandoc/Writers/ODT.hs | 3 +- 3 files changed, 486 insertions(+), 452 deletions(-) create mode 100644 src/Text/Pandoc/MIME.hs (limited to 'src/Text') diff --git a/src/Text/Pandoc/MIME.hs b/src/Text/Pandoc/MIME.hs new file mode 100644 index 000000000..c52a4c475 --- /dev/null +++ b/src/Text/Pandoc/MIME.hs @@ -0,0 +1,483 @@ +{- +Copyright (C) 2011 John MacFarlane + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-} + +{- | + Module : Text.Pandoc.MIME + Copyright : Copyright (C) 2011 John MacFarlane + License : GNU GPL, version 2 or above + + Maintainer : John MacFarlane + Stability : alpha + Portability : portable + +Mime type lookup for ODT writer. +-} +module Text.Pandoc.MIME ( getMimeType ) +where +import System.FilePath +import Data.Char ( toLower ) +import qualified Data.Map as M + +-- | Determine mime type appropriate for file path. +getMimeType :: FilePath -> Maybe String +getMimeType f = M.lookup (map toLower $ drop 1 $ takeExtension f) mimeTypes + where mimeTypes = M.fromList -- List borrowed from happstack-server. + [("gz","application/x-gzip") + ,("cabal","application/x-cabal") + ,("%","application/x-trash") + ,("323","text/h323") + ,("3gp","video/3gpp") + ,("7z","application/x-7z-compressed") + ,("abw","application/x-abiword") + ,("ai","application/postscript") + ,("aif","audio/x-aiff") + ,("aifc","audio/x-aiff") + ,("aiff","audio/x-aiff") + ,("alc","chemical/x-alchemy") + ,("art","image/x-jg") + ,("asc","text/plain") + ,("asf","video/x-ms-asf") + ,("asn","chemical/x-ncbi-asn1") + ,("aso","chemical/x-ncbi-asn1-binary") + ,("asx","video/x-ms-asf") + ,("atom","application/atom") + ,("atomcat","application/atomcat+xml") + ,("atomsrv","application/atomserv+xml") + ,("au","audio/basic") + ,("avi","video/x-msvideo") + ,("b","chemical/x-molconn-Z") + ,("bak","application/x-trash") + ,("bat","application/x-msdos-program") + ,("bcpio","application/x-bcpio") + ,("bib","text/x-bibtex") + ,("bin","application/octet-stream") + ,("bmp","image/x-ms-bmp") + ,("boo","text/x-boo") + ,("book","application/x-maker") + ,("bsd","chemical/x-crossfire") + ,("c","text/x-csrc") + ,("c++","text/x-c++src") + ,("c3d","chemical/x-chem3d") + ,("cab","application/x-cab") + ,("cac","chemical/x-cache") + ,("cache","chemical/x-cache") + ,("cap","application/cap") + ,("cascii","chemical/x-cactvs-binary") + ,("cat","application/vnd.ms-pki.seccat") + ,("cbin","chemical/x-cactvs-binary") + ,("cbr","application/x-cbr") + ,("cbz","application/x-cbz") + ,("cc","text/x-c++src") + ,("cdf","application/x-cdf") + ,("cdr","image/x-coreldraw") + ,("cdt","image/x-coreldrawtemplate") + ,("cdx","chemical/x-cdx") + ,("cdy","application/vnd.cinderella") + ,("cef","chemical/x-cxf") + ,("cer","chemical/x-cerius") + ,("chm","chemical/x-chemdraw") + ,("chrt","application/x-kchart") + ,("cif","chemical/x-cif") + ,("class","application/java-vm") + ,("cls","text/x-tex") + ,("cmdf","chemical/x-cmdf") + ,("cml","chemical/x-cml") + ,("cod","application/vnd.rim.cod") + ,("com","application/x-msdos-program") + ,("cpa","chemical/x-compass") + ,("cpio","application/x-cpio") + ,("cpp","text/x-c++src") + ,("cpt","application/mac-compactpro") + ,("crl","application/x-pkcs7-crl") + ,("crt","application/x-x509-ca-cert") + ,("csf","chemical/x-cache-csf") + ,("csh","application/x-csh") + ,("csm","chemical/x-csml") + ,("csml","chemical/x-csml") + ,("css","text/css") + ,("csv","text/csv") + ,("ctab","chemical/x-cactvs-binary") + ,("ctx","chemical/x-ctx") + ,("cu","application/cu-seeme") + ,("cub","chemical/x-gaussian-cube") + ,("cxf","chemical/x-cxf") + ,("cxx","text/x-c++src") + ,("d","text/x-dsrc") + ,("dat","chemical/x-mopac-input") + ,("dcr","application/x-director") + ,("deb","application/x-debian-package") + ,("dif","video/dv") + ,("diff","text/x-diff") + ,("dir","application/x-director") + ,("djv","image/vnd.djvu") + ,("djvu","image/vnd.djvu") + ,("dl","video/dl") + ,("dll","application/x-msdos-program") + ,("dmg","application/x-apple-diskimage") + ,("dms","application/x-dms") + ,("doc","application/msword") + ,("dot","application/msword") + ,("dv","video/dv") + ,("dvi","application/x-dvi") + ,("dx","chemical/x-jcamp-dx") + ,("dxr","application/x-director") + ,("emb","chemical/x-embl-dl-nucleotide") + ,("embl","chemical/x-embl-dl-nucleotide") + ,("eml","message/rfc822") + ,("ent","chemical/x-ncbi-asn1-ascii") + ,("eps","application/postscript") + ,("etx","text/x-setext") + ,("exe","application/x-msdos-program") + ,("ez","application/andrew-inset") + ,("fb","application/x-maker") + ,("fbdoc","application/x-maker") + ,("fch","chemical/x-gaussian-checkpoint") + ,("fchk","chemical/x-gaussian-checkpoint") + ,("fig","application/x-xfig") + ,("flac","application/x-flac") + ,("fli","video/fli") + ,("fm","application/x-maker") + ,("frame","application/x-maker") + ,("frm","application/x-maker") + ,("gal","chemical/x-gaussian-log") + ,("gam","chemical/x-gamess-input") + ,("gamin","chemical/x-gamess-input") + ,("gau","chemical/x-gaussian-input") + ,("gcd","text/x-pcs-gcd") + ,("gcf","application/x-graphing-calculator") + ,("gcg","chemical/x-gcg8-sequence") + ,("gen","chemical/x-genbank") + ,("gf","application/x-tex-gf") + ,("gif","image/gif") + ,("gjc","chemical/x-gaussian-input") + ,("gjf","chemical/x-gaussian-input") + ,("gl","video/gl") + ,("gnumeric","application/x-gnumeric") + ,("gpt","chemical/x-mopac-graph") + ,("gsf","application/x-font") + ,("gsm","audio/x-gsm") + ,("gtar","application/x-gtar") + ,("h","text/x-chdr") + ,("h++","text/x-c++hdr") + ,("hdf","application/x-hdf") + ,("hh","text/x-c++hdr") + ,("hin","chemical/x-hin") + ,("hpp","text/x-c++hdr") + ,("hqx","application/mac-binhex40") + ,("hs","text/x-haskell") + ,("hta","application/hta") + ,("htc","text/x-component") + ,("htm","text/html") + ,("html","text/html") + ,("hxx","text/x-c++hdr") + ,("ica","application/x-ica") + ,("ice","x-conference/x-cooltalk") + ,("ico","image/x-icon") + ,("ics","text/calendar") + ,("icz","text/calendar") + ,("ief","image/ief") + ,("iges","model/iges") + ,("igs","model/iges") + ,("iii","application/x-iphone") + ,("inp","chemical/x-gamess-input") + ,("ins","application/x-internet-signup") + ,("iso","application/x-iso9660-image") + ,("isp","application/x-internet-signup") + ,("ist","chemical/x-isostar") + ,("istr","chemical/x-isostar") + ,("jad","text/vnd.sun.j2me.app-descriptor") + ,("jar","application/java-archive") + ,("java","text/x-java") + ,("jdx","chemical/x-jcamp-dx") + ,("jmz","application/x-jmol") + ,("jng","image/x-jng") + ,("jnlp","application/x-java-jnlp-file") + ,("jpe","image/jpeg") + ,("jpeg","image/jpeg") + ,("jpg","image/jpeg") + ,("js","application/x-javascript") + ,("kar","audio/midi") + ,("key","application/pgp-keys") + ,("kil","application/x-killustrator") + ,("kin","chemical/x-kinemage") + ,("kml","application/vnd.google-earth.kml+xml") + ,("kmz","application/vnd.google-earth.kmz") + ,("kpr","application/x-kpresenter") + ,("kpt","application/x-kpresenter") + ,("ksp","application/x-kspread") + ,("kwd","application/x-kword") + ,("kwt","application/x-kword") + ,("latex","application/x-latex") + ,("lha","application/x-lha") + ,("lhs","text/x-literate-haskell") + ,("lsf","video/x-la-asf") + ,("lsx","video/x-la-asf") + ,("ltx","text/x-tex") + ,("lyx","application/x-lyx") + ,("lzh","application/x-lzh") + ,("lzx","application/x-lzx") + ,("m3u","audio/mpegurl") + ,("m4a","audio/mpeg") + ,("maker","application/x-maker") + ,("man","application/x-troff-man") + ,("mcif","chemical/x-mmcif") + ,("mcm","chemical/x-macmolecule") + ,("mdb","application/msaccess") + ,("me","application/x-troff-me") + ,("mesh","model/mesh") + ,("mid","audio/midi") + ,("midi","audio/midi") + ,("mif","application/x-mif") + ,("mm","application/x-freemind") + ,("mmd","chemical/x-macromodel-input") + ,("mmf","application/vnd.smaf") + ,("mml","text/mathml") + ,("mmod","chemical/x-macromodel-input") + ,("mng","video/x-mng") + ,("moc","text/x-moc") + ,("mol","chemical/x-mdl-molfile") + ,("mol2","chemical/x-mol2") + ,("moo","chemical/x-mopac-out") + ,("mop","chemical/x-mopac-input") + ,("mopcrt","chemical/x-mopac-input") + ,("mov","video/quicktime") + ,("movie","video/x-sgi-movie") + ,("mp2","audio/mpeg") + ,("mp3","audio/mpeg") + ,("mp4","video/mp4") + ,("mpc","chemical/x-mopac-input") + ,("mpe","video/mpeg") + ,("mpeg","video/mpeg") + ,("mpega","audio/mpeg") + ,("mpg","video/mpeg") + ,("mpga","audio/mpeg") + ,("ms","application/x-troff-ms") + ,("msh","model/mesh") + ,("msi","application/x-msi") + ,("mvb","chemical/x-mopac-vib") + ,("mxu","video/vnd.mpegurl") + ,("nb","application/mathematica") + ,("nc","application/x-netcdf") + ,("nwc","application/x-nwc") + ,("o","application/x-object") + ,("oda","application/oda") + ,("odb","application/vnd.oasis.opendocument.database") + ,("odc","application/vnd.oasis.opendocument.chart") + ,("odf","application/vnd.oasis.opendocument.formula") + ,("odg","application/vnd.oasis.opendocument.graphics") + ,("odi","application/vnd.oasis.opendocument.image") + ,("odm","application/vnd.oasis.opendocument.text-master") + ,("odp","application/vnd.oasis.opendocument.presentation") + ,("ods","application/vnd.oasis.opendocument.spreadsheet") + ,("odt","application/vnd.oasis.opendocument.text") + ,("oga","audio/ogg") + ,("ogg","application/ogg") + ,("ogv","video/ogg") + ,("ogx","application/ogg") + ,("old","application/x-trash") + ,("otg","application/vnd.oasis.opendocument.graphics-template") + ,("oth","application/vnd.oasis.opendocument.text-web") + ,("otp","application/vnd.oasis.opendocument.presentation-template") + ,("ots","application/vnd.oasis.opendocument.spreadsheet-template") + ,("ott","application/vnd.oasis.opendocument.text-template") + ,("oza","application/x-oz-application") + ,("p","text/x-pascal") + ,("p7r","application/x-pkcs7-certreqresp") + ,("pac","application/x-ns-proxy-autoconfig") + ,("pas","text/x-pascal") + ,("pat","image/x-coreldrawpattern") + ,("patch","text/x-diff") + ,("pbm","image/x-portable-bitmap") + ,("pcap","application/cap") + ,("pcf","application/x-font") + ,("pcf.Z","application/x-font") + ,("pcx","image/pcx") + ,("pdb","chemical/x-pdb") + ,("pdf","application/pdf") + ,("pfa","application/x-font") + ,("pfb","application/x-font") + ,("pgm","image/x-portable-graymap") + ,("pgn","application/x-chess-pgn") + ,("pgp","application/pgp-signature") + ,("php","application/x-httpd-php") + ,("php3","application/x-httpd-php3") + ,("php3p","application/x-httpd-php3-preprocessed") + ,("php4","application/x-httpd-php4") + ,("phps","application/x-httpd-php-source") + ,("pht","application/x-httpd-php") + ,("phtml","application/x-httpd-php") + ,("pk","application/x-tex-pk") + ,("pl","text/x-perl") + ,("pls","audio/x-scpls") + ,("pm","text/x-perl") + ,("png","image/png") + ,("pnm","image/x-portable-anymap") + ,("pot","text/plain") + ,("ppm","image/x-portable-pixmap") + ,("pps","application/vnd.ms-powerpoint") + ,("ppt","application/vnd.ms-powerpoint") + ,("prf","application/pics-rules") + ,("prt","chemical/x-ncbi-asn1-ascii") + ,("ps","application/postscript") + ,("psd","image/x-photoshop") + ,("py","text/x-python") + ,("pyc","application/x-python-code") + ,("pyo","application/x-python-code") + ,("qt","video/quicktime") + ,("qtl","application/x-quicktimeplayer") + ,("ra","audio/x-pn-realaudio") + ,("ram","audio/x-pn-realaudio") + ,("rar","application/rar") + ,("ras","image/x-cmu-raster") + ,("rd","chemical/x-mdl-rdfile") + ,("rdf","application/rdf+xml") + ,("rgb","image/x-rgb") + ,("rhtml","application/x-httpd-eruby") + ,("rm","audio/x-pn-realaudio") + ,("roff","application/x-troff") + ,("ros","chemical/x-rosdal") + ,("rpm","application/x-redhat-package-manager") + ,("rss","application/rss+xml") + ,("rtf","application/rtf") + ,("rtx","text/richtext") + ,("rxn","chemical/x-mdl-rxnfile") + ,("sct","text/scriptlet") + ,("sd","chemical/x-mdl-sdfile") + ,("sd2","audio/x-sd2") + ,("sda","application/vnd.stardivision.draw") + ,("sdc","application/vnd.stardivision.calc") + ,("sdd","application/vnd.stardivision.impress") + ,("sdf","application/vnd.stardivision.math") + ,("sds","application/vnd.stardivision.chart") + ,("sdw","application/vnd.stardivision.writer") + ,("ser","application/java-serialized-object") + ,("sgf","application/x-go-sgf") + ,("sgl","application/vnd.stardivision.writer-global") + ,("sh","application/x-sh") + ,("shar","application/x-shar") + ,("shtml","text/html") + ,("sid","audio/prs.sid") + ,("sik","application/x-trash") + ,("silo","model/mesh") + ,("sis","application/vnd.symbian.install") + ,("sisx","x-epoc/x-sisx-app") + ,("sit","application/x-stuffit") + ,("sitx","application/x-stuffit") + ,("skd","application/x-koan") + ,("skm","application/x-koan") + ,("skp","application/x-koan") + ,("skt","application/x-koan") + ,("smi","application/smil") + ,("smil","application/smil") + ,("snd","audio/basic") + ,("spc","chemical/x-galactic-spc") + ,("spl","application/futuresplash") + ,("spx","audio/ogg") + ,("src","application/x-wais-source") + ,("stc","application/vnd.sun.xml.calc.template") + ,("std","application/vnd.sun.xml.draw.template") + ,("sti","application/vnd.sun.xml.impress.template") + ,("stl","application/vnd.ms-pki.stl") + ,("stw","application/vnd.sun.xml.writer.template") + ,("sty","text/x-tex") + ,("sv4cpio","application/x-sv4cpio") + ,("sv4crc","application/x-sv4crc") + ,("svg","image/svg+xml") + ,("svgz","image/svg+xml") + ,("sw","chemical/x-swissprot") + ,("swf","application/x-shockwave-flash") + ,("swfl","application/x-shockwave-flash") + ,("sxc","application/vnd.sun.xml.calc") + ,("sxd","application/vnd.sun.xml.draw") + ,("sxg","application/vnd.sun.xml.writer.global") + ,("sxi","application/vnd.sun.xml.impress") + ,("sxm","application/vnd.sun.xml.math") + ,("sxw","application/vnd.sun.xml.writer") + ,("t","application/x-troff") + ,("tar","application/x-tar") + ,("taz","application/x-gtar") + ,("tcl","application/x-tcl") + ,("tex","text/x-tex") + ,("texi","application/x-texinfo") + ,("texinfo","application/x-texinfo") + ,("text","text/plain") + ,("tgf","chemical/x-mdl-tgf") + ,("tgz","application/x-gtar") + ,("tif","image/tiff") + ,("tiff","image/tiff") + ,("tk","text/x-tcl") + ,("tm","text/texmacs") + ,("torrent","application/x-bittorrent") + ,("tr","application/x-troff") + ,("ts","text/texmacs") + ,("tsp","application/dsptype") + ,("tsv","text/tab-separated-values") + ,("txt","text/plain") + ,("udeb","application/x-debian-package") + ,("uls","text/iuls") + ,("ustar","application/x-ustar") + ,("val","chemical/x-ncbi-asn1-binary") + ,("vcd","application/x-cdlink") + ,("vcf","text/x-vcard") + ,("vcs","text/x-vcalendar") + ,("vmd","chemical/x-vmd") + ,("vms","chemical/x-vamas-iso14976") + ,("vrm","x-world/x-vrml") + ,("vrml","model/vrml") + ,("vsd","application/vnd.visio") + ,("wad","application/x-doom") + ,("wav","audio/x-wav") + ,("wax","audio/x-ms-wax") + ,("wbmp","image/vnd.wap.wbmp") + ,("wbxml","application/vnd.wap.wbxml") + ,("wk","application/x-123") + ,("wm","video/x-ms-wm") + ,("wma","audio/x-ms-wma") + ,("wmd","application/x-ms-wmd") + ,("wml","text/vnd.wap.wml") + ,("wmlc","application/vnd.wap.wmlc") + ,("wmls","text/vnd.wap.wmlscript") + ,("wmlsc","application/vnd.wap.wmlscriptc") + ,("wmv","video/x-ms-wmv") + ,("wmx","video/x-ms-wmx") + ,("wmz","application/x-ms-wmz") + ,("wp5","application/wordperfect5.1") + ,("wpd","application/wordperfect") + ,("wrl","model/vrml") + ,("wsc","text/scriptlet") + ,("wvx","video/x-ms-wvx") + ,("wz","application/x-wingz") + ,("xbm","image/x-xbitmap") + ,("xcf","application/x-xcf") + ,("xht","application/xhtml+xml") + ,("xhtml","application/xhtml+xml") + ,("xlb","application/vnd.ms-excel") + ,("xls","application/vnd.ms-excel") + ,("xlt","application/vnd.ms-excel") + ,("xml","application/xml") + ,("xpi","application/x-xpinstall") + ,("xpm","image/x-xpixmap") + ,("xsl","application/xml") + ,("xtel","chemical/x-xtel") + ,("xul","application/vnd.mozilla.xul+xml") + ,("xwd","image/x-xwindowdump") + ,("xyz","chemical/x-xyz") + ,("zip","application/zip") + ,("zmt","chemical/x-mopac-input") + ] + diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index 5e5c69206..b22012070 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -68,7 +68,6 @@ module Text.Pandoc.Shared ( inDirectory, findDataFile, readDataFile, - getMimeType ) where import Text.Pandoc.Definition @@ -80,10 +79,9 @@ import Data.List ( find, isPrefixOf, intercalate ) import Network.URI ( isAllowedInURI, escapeURIString, unEscapeString ) import Codec.Binary.UTF8.String ( encodeString, decodeString ) import System.Directory -import System.FilePath ( (), takeExtension ) +import System.FilePath ( () ) import Data.Generics (Typeable, Data) import qualified Control.Monad.State as S -import qualified Data.Map as M import Paths_pandoc (getDataFileName) -- @@ -555,451 +553,3 @@ findDataFile (Just u) f = do -- Cabal data directory. readDataFile :: Maybe FilePath -> FilePath -> IO String readDataFile userDir fname = findDataFile userDir fname >>= UTF8.readFile - --- | Determine mime type appropriate for file path. -getMimeType :: FilePath -> Maybe String -getMimeType f = M.lookup (map toLower $ drop 1 $ takeExtension f) mimeTypes - where mimeTypes = M.fromList -- List borrowed from happstack-server. - [("gz","application/x-gzip") - ,("cabal","application/x-cabal") - ,("%","application/x-trash") - ,("323","text/h323") - ,("3gp","video/3gpp") - ,("7z","application/x-7z-compressed") - ,("abw","application/x-abiword") - ,("ai","application/postscript") - ,("aif","audio/x-aiff") - ,("aifc","audio/x-aiff") - ,("aiff","audio/x-aiff") - ,("alc","chemical/x-alchemy") - ,("art","image/x-jg") - ,("asc","text/plain") - ,("asf","video/x-ms-asf") - ,("asn","chemical/x-ncbi-asn1") - ,("aso","chemical/x-ncbi-asn1-binary") - ,("asx","video/x-ms-asf") - ,("atom","application/atom") - ,("atomcat","application/atomcat+xml") - ,("atomsrv","application/atomserv+xml") - ,("au","audio/basic") - ,("avi","video/x-msvideo") - ,("b","chemical/x-molconn-Z") - ,("bak","application/x-trash") - ,("bat","application/x-msdos-program") - ,("bcpio","application/x-bcpio") - ,("bib","text/x-bibtex") - ,("bin","application/octet-stream") - ,("bmp","image/x-ms-bmp") - ,("boo","text/x-boo") - ,("book","application/x-maker") - ,("bsd","chemical/x-crossfire") - ,("c","text/x-csrc") - ,("c++","text/x-c++src") - ,("c3d","chemical/x-chem3d") - ,("cab","application/x-cab") - ,("cac","chemical/x-cache") - ,("cache","chemical/x-cache") - ,("cap","application/cap") - ,("cascii","chemical/x-cactvs-binary") - ,("cat","application/vnd.ms-pki.seccat") - ,("cbin","chemical/x-cactvs-binary") - ,("cbr","application/x-cbr") - ,("cbz","application/x-cbz") - ,("cc","text/x-c++src") - ,("cdf","application/x-cdf") - ,("cdr","image/x-coreldraw") - ,("cdt","image/x-coreldrawtemplate") - ,("cdx","chemical/x-cdx") - ,("cdy","application/vnd.cinderella") - ,("cef","chemical/x-cxf") - ,("cer","chemical/x-cerius") - ,("chm","chemical/x-chemdraw") - ,("chrt","application/x-kchart") - ,("cif","chemical/x-cif") - ,("class","application/java-vm") - ,("cls","text/x-tex") - ,("cmdf","chemical/x-cmdf") - ,("cml","chemical/x-cml") - ,("cod","application/vnd.rim.cod") - ,("com","application/x-msdos-program") - ,("cpa","chemical/x-compass") - ,("cpio","application/x-cpio") - ,("cpp","text/x-c++src") - ,("cpt","application/mac-compactpro") - ,("crl","application/x-pkcs7-crl") - ,("crt","application/x-x509-ca-cert") - ,("csf","chemical/x-cache-csf") - ,("csh","application/x-csh") - ,("csm","chemical/x-csml") - ,("csml","chemical/x-csml") - ,("css","text/css") - ,("csv","text/csv") - ,("ctab","chemical/x-cactvs-binary") - ,("ctx","chemical/x-ctx") - ,("cu","application/cu-seeme") - ,("cub","chemical/x-gaussian-cube") - ,("cxf","chemical/x-cxf") - ,("cxx","text/x-c++src") - ,("d","text/x-dsrc") - ,("dat","chemical/x-mopac-input") - ,("dcr","application/x-director") - ,("deb","application/x-debian-package") - ,("dif","video/dv") - ,("diff","text/x-diff") - ,("dir","application/x-director") - ,("djv","image/vnd.djvu") - ,("djvu","image/vnd.djvu") - ,("dl","video/dl") - ,("dll","application/x-msdos-program") - ,("dmg","application/x-apple-diskimage") - ,("dms","application/x-dms") - ,("doc","application/msword") - ,("dot","application/msword") - ,("dv","video/dv") - ,("dvi","application/x-dvi") - ,("dx","chemical/x-jcamp-dx") - ,("dxr","application/x-director") - ,("emb","chemical/x-embl-dl-nucleotide") - ,("embl","chemical/x-embl-dl-nucleotide") - ,("eml","message/rfc822") - ,("ent","chemical/x-ncbi-asn1-ascii") - ,("eps","application/postscript") - ,("etx","text/x-setext") - ,("exe","application/x-msdos-program") - ,("ez","application/andrew-inset") - ,("fb","application/x-maker") - ,("fbdoc","application/x-maker") - ,("fch","chemical/x-gaussian-checkpoint") - ,("fchk","chemical/x-gaussian-checkpoint") - ,("fig","application/x-xfig") - ,("flac","application/x-flac") - ,("fli","video/fli") - ,("fm","application/x-maker") - ,("frame","application/x-maker") - ,("frm","application/x-maker") - ,("gal","chemical/x-gaussian-log") - ,("gam","chemical/x-gamess-input") - ,("gamin","chemical/x-gamess-input") - ,("gau","chemical/x-gaussian-input") - ,("gcd","text/x-pcs-gcd") - ,("gcf","application/x-graphing-calculator") - ,("gcg","chemical/x-gcg8-sequence") - ,("gen","chemical/x-genbank") - ,("gf","application/x-tex-gf") - ,("gif","image/gif") - ,("gjc","chemical/x-gaussian-input") - ,("gjf","chemical/x-gaussian-input") - ,("gl","video/gl") - ,("gnumeric","application/x-gnumeric") - ,("gpt","chemical/x-mopac-graph") - ,("gsf","application/x-font") - ,("gsm","audio/x-gsm") - ,("gtar","application/x-gtar") - ,("h","text/x-chdr") - ,("h++","text/x-c++hdr") - ,("hdf","application/x-hdf") - ,("hh","text/x-c++hdr") - ,("hin","chemical/x-hin") - ,("hpp","text/x-c++hdr") - ,("hqx","application/mac-binhex40") - ,("hs","text/x-haskell") - ,("hta","application/hta") - ,("htc","text/x-component") - ,("htm","text/html") - ,("html","text/html") - ,("hxx","text/x-c++hdr") - ,("ica","application/x-ica") - ,("ice","x-conference/x-cooltalk") - ,("ico","image/x-icon") - ,("ics","text/calendar") - ,("icz","text/calendar") - ,("ief","image/ief") - ,("iges","model/iges") - ,("igs","model/iges") - ,("iii","application/x-iphone") - ,("inp","chemical/x-gamess-input") - ,("ins","application/x-internet-signup") - ,("iso","application/x-iso9660-image") - ,("isp","application/x-internet-signup") - ,("ist","chemical/x-isostar") - ,("istr","chemical/x-isostar") - ,("jad","text/vnd.sun.j2me.app-descriptor") - ,("jar","application/java-archive") - ,("java","text/x-java") - ,("jdx","chemical/x-jcamp-dx") - ,("jmz","application/x-jmol") - ,("jng","image/x-jng") - ,("jnlp","application/x-java-jnlp-file") - ,("jpe","image/jpeg") - ,("jpeg","image/jpeg") - ,("jpg","image/jpeg") - ,("js","application/x-javascript") - ,("kar","audio/midi") - ,("key","application/pgp-keys") - ,("kil","application/x-killustrator") - ,("kin","chemical/x-kinemage") - ,("kml","application/vnd.google-earth.kml+xml") - ,("kmz","application/vnd.google-earth.kmz") - ,("kpr","application/x-kpresenter") - ,("kpt","application/x-kpresenter") - ,("ksp","application/x-kspread") - ,("kwd","application/x-kword") - ,("kwt","application/x-kword") - ,("latex","application/x-latex") - ,("lha","application/x-lha") - ,("lhs","text/x-literate-haskell") - ,("lsf","video/x-la-asf") - ,("lsx","video/x-la-asf") - ,("ltx","text/x-tex") - ,("lyx","application/x-lyx") - ,("lzh","application/x-lzh") - ,("lzx","application/x-lzx") - ,("m3u","audio/mpegurl") - ,("m4a","audio/mpeg") - ,("maker","application/x-maker") - ,("man","application/x-troff-man") - ,("mcif","chemical/x-mmcif") - ,("mcm","chemical/x-macmolecule") - ,("mdb","application/msaccess") - ,("me","application/x-troff-me") - ,("mesh","model/mesh") - ,("mid","audio/midi") - ,("midi","audio/midi") - ,("mif","application/x-mif") - ,("mm","application/x-freemind") - ,("mmd","chemical/x-macromodel-input") - ,("mmf","application/vnd.smaf") - ,("mml","text/mathml") - ,("mmod","chemical/x-macromodel-input") - ,("mng","video/x-mng") - ,("moc","text/x-moc") - ,("mol","chemical/x-mdl-molfile") - ,("mol2","chemical/x-mol2") - ,("moo","chemical/x-mopac-out") - ,("mop","chemical/x-mopac-input") - ,("mopcrt","chemical/x-mopac-input") - ,("mov","video/quicktime") - ,("movie","video/x-sgi-movie") - ,("mp2","audio/mpeg") - ,("mp3","audio/mpeg") - ,("mp4","video/mp4") - ,("mpc","chemical/x-mopac-input") - ,("mpe","video/mpeg") - ,("mpeg","video/mpeg") - ,("mpega","audio/mpeg") - ,("mpg","video/mpeg") - ,("mpga","audio/mpeg") - ,("ms","application/x-troff-ms") - ,("msh","model/mesh") - ,("msi","application/x-msi") - ,("mvb","chemical/x-mopac-vib") - ,("mxu","video/vnd.mpegurl") - ,("nb","application/mathematica") - ,("nc","application/x-netcdf") - ,("nwc","application/x-nwc") - ,("o","application/x-object") - ,("oda","application/oda") - ,("odb","application/vnd.oasis.opendocument.database") - ,("odc","application/vnd.oasis.opendocument.chart") - ,("odf","application/vnd.oasis.opendocument.formula") - ,("odg","application/vnd.oasis.opendocument.graphics") - ,("odi","application/vnd.oasis.opendocument.image") - ,("odm","application/vnd.oasis.opendocument.text-master") - ,("odp","application/vnd.oasis.opendocument.presentation") - ,("ods","application/vnd.oasis.opendocument.spreadsheet") - ,("odt","application/vnd.oasis.opendocument.text") - ,("oga","audio/ogg") - ,("ogg","application/ogg") - ,("ogv","video/ogg") - ,("ogx","application/ogg") - ,("old","application/x-trash") - ,("otg","application/vnd.oasis.opendocument.graphics-template") - ,("oth","application/vnd.oasis.opendocument.text-web") - ,("otp","application/vnd.oasis.opendocument.presentation-template") - ,("ots","application/vnd.oasis.opendocument.spreadsheet-template") - ,("ott","application/vnd.oasis.opendocument.text-template") - ,("oza","application/x-oz-application") - ,("p","text/x-pascal") - ,("p7r","application/x-pkcs7-certreqresp") - ,("pac","application/x-ns-proxy-autoconfig") - ,("pas","text/x-pascal") - ,("pat","image/x-coreldrawpattern") - ,("patch","text/x-diff") - ,("pbm","image/x-portable-bitmap") - ,("pcap","application/cap") - ,("pcf","application/x-font") - ,("pcf.Z","application/x-font") - ,("pcx","image/pcx") - ,("pdb","chemical/x-pdb") - ,("pdf","application/pdf") - ,("pfa","application/x-font") - ,("pfb","application/x-font") - ,("pgm","image/x-portable-graymap") - ,("pgn","application/x-chess-pgn") - ,("pgp","application/pgp-signature") - ,("php","application/x-httpd-php") - ,("php3","application/x-httpd-php3") - ,("php3p","application/x-httpd-php3-preprocessed") - ,("php4","application/x-httpd-php4") - ,("phps","application/x-httpd-php-source") - ,("pht","application/x-httpd-php") - ,("phtml","application/x-httpd-php") - ,("pk","application/x-tex-pk") - ,("pl","text/x-perl") - ,("pls","audio/x-scpls") - ,("pm","text/x-perl") - ,("png","image/png") - ,("pnm","image/x-portable-anymap") - ,("pot","text/plain") - ,("ppm","image/x-portable-pixmap") - ,("pps","application/vnd.ms-powerpoint") - ,("ppt","application/vnd.ms-powerpoint") - ,("prf","application/pics-rules") - ,("prt","chemical/x-ncbi-asn1-ascii") - ,("ps","application/postscript") - ,("psd","image/x-photoshop") - ,("py","text/x-python") - ,("pyc","application/x-python-code") - ,("pyo","application/x-python-code") - ,("qt","video/quicktime") - ,("qtl","application/x-quicktimeplayer") - ,("ra","audio/x-pn-realaudio") - ,("ram","audio/x-pn-realaudio") - ,("rar","application/rar") - ,("ras","image/x-cmu-raster") - ,("rd","chemical/x-mdl-rdfile") - ,("rdf","application/rdf+xml") - ,("rgb","image/x-rgb") - ,("rhtml","application/x-httpd-eruby") - ,("rm","audio/x-pn-realaudio") - ,("roff","application/x-troff") - ,("ros","chemical/x-rosdal") - ,("rpm","application/x-redhat-package-manager") - ,("rss","application/rss+xml") - ,("rtf","application/rtf") - ,("rtx","text/richtext") - ,("rxn","chemical/x-mdl-rxnfile") - ,("sct","text/scriptlet") - ,("sd","chemical/x-mdl-sdfile") - ,("sd2","audio/x-sd2") - ,("sda","application/vnd.stardivision.draw") - ,("sdc","application/vnd.stardivision.calc") - ,("sdd","application/vnd.stardivision.impress") - ,("sdf","application/vnd.stardivision.math") - ,("sds","application/vnd.stardivision.chart") - ,("sdw","application/vnd.stardivision.writer") - ,("ser","application/java-serialized-object") - ,("sgf","application/x-go-sgf") - ,("sgl","application/vnd.stardivision.writer-global") - ,("sh","application/x-sh") - ,("shar","application/x-shar") - ,("shtml","text/html") - ,("sid","audio/prs.sid") - ,("sik","application/x-trash") - ,("silo","model/mesh") - ,("sis","application/vnd.symbian.install") - ,("sisx","x-epoc/x-sisx-app") - ,("sit","application/x-stuffit") - ,("sitx","application/x-stuffit") - ,("skd","application/x-koan") - ,("skm","application/x-koan") - ,("skp","application/x-koan") - ,("skt","application/x-koan") - ,("smi","application/smil") - ,("smil","application/smil") - ,("snd","audio/basic") - ,("spc","chemical/x-galactic-spc") - ,("spl","application/futuresplash") - ,("spx","audio/ogg") - ,("src","application/x-wais-source") - ,("stc","application/vnd.sun.xml.calc.template") - ,("std","application/vnd.sun.xml.draw.template") - ,("sti","application/vnd.sun.xml.impress.template") - ,("stl","application/vnd.ms-pki.stl") - ,("stw","application/vnd.sun.xml.writer.template") - ,("sty","text/x-tex") - ,("sv4cpio","application/x-sv4cpio") - ,("sv4crc","application/x-sv4crc") - ,("svg","image/svg+xml") - ,("svgz","image/svg+xml") - ,("sw","chemical/x-swissprot") - ,("swf","application/x-shockwave-flash") - ,("swfl","application/x-shockwave-flash") - ,("sxc","application/vnd.sun.xml.calc") - ,("sxd","application/vnd.sun.xml.draw") - ,("sxg","application/vnd.sun.xml.writer.global") - ,("sxi","application/vnd.sun.xml.impress") - ,("sxm","application/vnd.sun.xml.math") - ,("sxw","application/vnd.sun.xml.writer") - ,("t","application/x-troff") - ,("tar","application/x-tar") - ,("taz","application/x-gtar") - ,("tcl","application/x-tcl") - ,("tex","text/x-tex") - ,("texi","application/x-texinfo") - ,("texinfo","application/x-texinfo") - ,("text","text/plain") - ,("tgf","chemical/x-mdl-tgf") - ,("tgz","application/x-gtar") - ,("tif","image/tiff") - ,("tiff","image/tiff") - ,("tk","text/x-tcl") - ,("tm","text/texmacs") - ,("torrent","application/x-bittorrent") - ,("tr","application/x-troff") - ,("ts","text/texmacs") - ,("tsp","application/dsptype") - ,("tsv","text/tab-separated-values") - ,("txt","text/plain") - ,("udeb","application/x-debian-package") - ,("uls","text/iuls") - ,("ustar","application/x-ustar") - ,("val","chemical/x-ncbi-asn1-binary") - ,("vcd","application/x-cdlink") - ,("vcf","text/x-vcard") - ,("vcs","text/x-vcalendar") - ,("vmd","chemical/x-vmd") - ,("vms","chemical/x-vamas-iso14976") - ,("vrm","x-world/x-vrml") - ,("vrml","model/vrml") - ,("vsd","application/vnd.visio") - ,("wad","application/x-doom") - ,("wav","audio/x-wav") - ,("wax","audio/x-ms-wax") - ,("wbmp","image/vnd.wap.wbmp") - ,("wbxml","application/vnd.wap.wbxml") - ,("wk","application/x-123") - ,("wm","video/x-ms-wm") - ,("wma","audio/x-ms-wma") - ,("wmd","application/x-ms-wmd") - ,("wml","text/vnd.wap.wml") - ,("wmlc","application/vnd.wap.wmlc") - ,("wmls","text/vnd.wap.wmlscript") - ,("wmlsc","application/vnd.wap.wmlscriptc") - ,("wmv","video/x-ms-wmv") - ,("wmx","video/x-ms-wmx") - ,("wmz","application/x-ms-wmz") - ,("wp5","application/wordperfect5.1") - ,("wpd","application/wordperfect") - ,("wrl","model/vrml") - ,("wsc","text/scriptlet") - ,("wvx","video/x-ms-wvx") - ,("wz","application/x-wingz") - ,("xbm","image/x-xbitmap") - ,("xcf","application/x-xcf") - ,("xht","application/xhtml+xml") - ,("xhtml","application/xhtml+xml") - ,("xlb","application/vnd.ms-excel") - ,("xls","application/vnd.ms-excel") - ,("xlt","application/vnd.ms-excel") - ,("xml","application/xml") - ,("xpi","application/x-xpinstall") - ,("xpm","image/x-xpixmap") - ,("xsl","application/xml") - ,("xtel","chemical/x-xtel") - ,("xul","application/vnd.mozilla.xul+xml") - ,("xwd","image/x-xwindowdump") - ,("xyz","chemical/x-xyz") - ,("zip","application/zip") - ,("zmt","chemical/x-mopac-input") - ] diff --git a/src/Text/Pandoc/Writers/ODT.hs b/src/Text/Pandoc/Writers/ODT.hs index 4cdfed6b8..f8030965c 100644 --- a/src/Text/Pandoc/Writers/ODT.hs +++ b/src/Text/Pandoc/Writers/ODT.hs @@ -36,7 +36,8 @@ import Data.ByteString.Lazy.UTF8 ( fromString ) import Codec.Archive.Zip import System.Time import Paths_pandoc ( getDataFileName ) -import Text.Pandoc.Shared ( WriterOptions(..), getMimeType ) +import Text.Pandoc.Shared ( WriterOptions(..) ) +import Text.Pandoc.MIME ( getMimeType ) import Text.Pandoc.Definition import Text.Pandoc.Generic import Text.Pandoc.Writers.OpenDocument ( writeOpenDocument ) -- cgit v1.2.3