2011-07-19 12:01:01 -07:00
|
|
|
{-
|
2017-05-13 23:30:13 +02:00
|
|
|
Copyright (C) 2011-2017 John MacFarlane <jgm@berkeley.edu>
|
2011-07-19 12:01:01 -07:00
|
|
|
|
|
|
|
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
|
2017-05-13 23:30:13 +02:00
|
|
|
Copyright : Copyright (C) 2011-2017 John MacFarlane
|
2012-07-26 22:32:53 -07:00
|
|
|
License : GNU GPL, version 2 or above
|
2011-07-19 12:01:01 -07:00
|
|
|
|
|
|
|
Maintainer : John MacFarlane <jgm@berkeley.edu>
|
|
|
|
Stability : alpha
|
|
|
|
Portability : portable
|
|
|
|
|
|
|
|
Mime type lookup for ODT writer.
|
|
|
|
-}
|
2014-08-17 20:42:30 +04:00
|
|
|
module Text.Pandoc.MIME ( MimeType, getMimeType, getMimeTypeDef,
|
|
|
|
extensionFromMimeType )where
|
2017-03-04 13:03:41 +01:00
|
|
|
import Data.Char (toLower)
|
2014-08-17 20:42:30 +04:00
|
|
|
import Data.List (isPrefixOf, isSuffixOf)
|
2011-07-19 12:01:01 -07:00
|
|
|
import qualified Data.Map as M
|
2017-03-04 13:03:41 +01:00
|
|
|
import Data.Maybe (fromMaybe)
|
|
|
|
import System.FilePath
|
2011-07-19 12:01:01 -07:00
|
|
|
|
2014-08-17 20:42:30 +04:00
|
|
|
type MimeType = String
|
|
|
|
|
2011-07-19 12:01:01 -07:00
|
|
|
-- | Determine mime type appropriate for file path.
|
2014-08-17 20:42:30 +04:00
|
|
|
getMimeType :: FilePath -> Maybe MimeType
|
|
|
|
getMimeType fp
|
|
|
|
-- ODT
|
|
|
|
| fp == "layout-cache" =
|
|
|
|
Just "application/binary"
|
|
|
|
| "Formula-" `isPrefixOf` fp && "/" `isSuffixOf` fp =
|
|
|
|
Just "application/vnd.oasis.opendocument.formula"
|
|
|
|
-- generic
|
|
|
|
| otherwise = M.lookup (map toLower $ drop 1 $ takeExtension fp) mimeTypes
|
|
|
|
|
|
|
|
-- | Determime mime type appropriate for file path, defaulting to
|
|
|
|
-- “application/octet-stream” if nothing else fits.
|
|
|
|
getMimeTypeDef :: FilePath -> MimeType
|
|
|
|
getMimeTypeDef = fromMaybe "application/octet-stream" . getMimeType
|
2013-07-20 12:14:43 -07:00
|
|
|
|
2014-08-17 20:42:30 +04:00
|
|
|
extensionFromMimeType :: MimeType -> Maybe String
|
|
|
|
extensionFromMimeType mimetype =
|
|
|
|
M.lookup (takeWhile (/=';') mimetype) reverseMimeTypes
|
2013-11-19 13:09:34 -08:00
|
|
|
-- note: we just look up the basic mime type, dropping the content-encoding etc.
|
2013-07-20 12:14:43 -07:00
|
|
|
|
2014-08-17 20:42:30 +04:00
|
|
|
reverseMimeTypes :: M.Map MimeType String
|
|
|
|
reverseMimeTypes = M.fromList $ map (\(k,v) -> (v,k)) mimeTypesList
|
|
|
|
|
|
|
|
mimeTypes :: M.Map String MimeType
|
|
|
|
mimeTypes = M.fromList mimeTypesList
|
|
|
|
|
|
|
|
mimeTypesList :: [(String, MimeType)]
|
2013-07-20 12:14:43 -07:00
|
|
|
mimeTypesList = -- List borrowed from happstack-server.
|
2011-07-19 12:01:01 -07:00
|
|
|
[("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")
|
2014-01-07 10:32:47 -08:00
|
|
|
,("emf","image/x-emf")
|
2017-02-22 21:20:40 +01:00
|
|
|
,("emz","application/x-msmetafile")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("eml","message/rfc822")
|
|
|
|
,("ent","chemical/x-ncbi-asn1-ascii")
|
2012-10-11 09:33:10 -07:00
|
|
|
,("eot","application/vnd.ms-fontobject")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2013-01-17 11:40:14 -08:00
|
|
|
,("fs","text/plain")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2013-11-30 19:43:12 -08:00
|
|
|
,("jfif","image/jpeg")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("jpg","image/jpeg")
|
2017-02-24 11:55:15 +01:00
|
|
|
,("js","application/javascript")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2014-03-14 15:18:43 -07:00
|
|
|
,("m4v","video/x-m4v")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2014-11-16 20:29:38 -08:00
|
|
|
,("otf","application/vnd.ms-opentype")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2015-05-27 11:46:02 -07:00
|
|
|
-- removed for now, since it causes problems with
|
|
|
|
-- extensionFromMimeType: see #2183.
|
|
|
|
-- ,("svgz","image/svg+xml")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2012-01-30 11:45:55 -08:00
|
|
|
,("ttf","application/x-font-truetype")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2013-01-17 11:40:14 -08:00
|
|
|
,("vs","text/plain")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("vsd","application/vnd.visio")
|
2014-10-04 22:40:02 -04:00
|
|
|
,("vtt","text/vtt")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("wad","application/x-doom")
|
|
|
|
,("wav","audio/x-wav")
|
|
|
|
,("wax","audio/x-ms-wax")
|
|
|
|
,("wbmp","image/vnd.wap.wbmp")
|
|
|
|
,("wbxml","application/vnd.wap.wbxml")
|
2012-06-28 09:47:38 -07:00
|
|
|
,("webm","video/webm")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("wk","application/x-123")
|
|
|
|
,("wm","video/x-ms-wm")
|
|
|
|
,("wma","audio/x-ms-wma")
|
|
|
|
,("wmd","application/x-ms-wmd")
|
2014-01-07 10:32:47 -08:00
|
|
|
,("wmf","image/x-wmf")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
2016-11-12 23:22:34 +01:00
|
|
|
,("woff","application/font-woff")
|
|
|
|
,("woff2","font/woff2")
|
2011-07-19 12:01:01 -07:00
|
|
|
,("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")
|
|
|
|
]
|
|
|
|
|