diff options
Diffstat (limited to 'prototypes/c3b2/web/mime-types.scm')
-rw-r--r-- | prototypes/c3b2/web/mime-types.scm | 553 |
1 files changed, 553 insertions, 0 deletions
diff --git a/prototypes/c3b2/web/mime-types.scm b/prototypes/c3b2/web/mime-types.scm new file mode 100644 index 0000000..3413d02 --- /dev/null +++ b/prototypes/c3b2/web/mime-types.scm | |||
@@ -0,0 +1,553 @@ | |||
1 | ;;; Copyright © 2014 David Thompson <davet@gnu.org> | ||
2 | ;;; Copyright © 2015-2017 Amirouche Boubekki <amirouche@hypermove.net> | ||
3 | ;; | ||
4 | ;; This program is free software: you can redistribute it and/or modify | ||
5 | ;; it under the terms of the GNU General Public License as published by | ||
6 | ;; the Free Software Foundation, either version 3 of the License, or | ||
7 | ;; (at your option) any later version. | ||
8 | |||
9 | ;; This program is distributed in the hope that it will be useful, | ||
10 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | ;; GNU General Public License for more details. | ||
13 | |||
14 | ;; You should have received a copy of the GNU General Public License | ||
15 | ;; along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | (define-module (web mime-types)) | ||
17 | |||
18 | ;; stdlib | ||
19 | (use-modules (ice-9 hash-table)) | ||
20 | (use-modules (ice-9 regex)) | ||
21 | (use-modules (web uri)) | ||
22 | |||
23 | ;;; | ||
24 | ;;; mime types | ||
25 | ;;; | ||
26 | |||
27 | (define %mime-types | ||
28 | (alist->hash-table | ||
29 | '(("ez" . application/andrew-inset) | ||
30 | ("anx" . application/annodex) | ||
31 | ("atom" . application/atom+xml) | ||
32 | ("atomcat" . application/atomcat+xml) | ||
33 | ("atomsrv" . application/atomserv+xml) | ||
34 | ("lin" . application/bbolin) | ||
35 | ("cap" . application/cap) | ||
36 | ("pcap" . application/cap) | ||
37 | ("cu" . application/cu-seeme) | ||
38 | ("davmount" . application/davmount+xml) | ||
39 | ("tsp" . application/dsptype) | ||
40 | ("es" . application/ecmascript) | ||
41 | ("spl" . application/futuresplash) | ||
42 | ("hta" . application/hta) | ||
43 | ("jar" . application/java-archive) | ||
44 | ("ser" . application/java-serialized-object) | ||
45 | ("class" . application/java-vm) | ||
46 | ("js" . application/javascript) | ||
47 | ("m3g" . application/m3g) | ||
48 | ("hqx" . application/mac-binhex40) | ||
49 | ("cpt" . application/mac-compactpro) | ||
50 | ("nb" . application/mathematica) | ||
51 | ("nbp" . application/mathematica) | ||
52 | ("mdb" . application/msaccess) | ||
53 | ("doc" . application/msword) | ||
54 | ("dot" . application/msword) | ||
55 | ("mxf" . application/mxf) | ||
56 | ("bin" . application/octet-stream) | ||
57 | ("oda" . application/oda) | ||
58 | ("ogx" . application/ogg) | ||
59 | ("pdf" . application/pdf) | ||
60 | ("key" . application/pgp-keys) | ||
61 | ("pgp" . application/pgp-signature) | ||
62 | ("prf" . application/pics-rules) | ||
63 | ("ps" . application/postscript) | ||
64 | ("ai" . application/postscript) | ||
65 | ("eps" . application/postscript) | ||
66 | ("epsi" . application/postscript) | ||
67 | ("epsf" . application/postscript) | ||
68 | ("eps2" . application/postscript) | ||
69 | ("eps3" . application/postscript) | ||
70 | ("rar" . application/rar) | ||
71 | ("rdf" . application/rdf+xml) | ||
72 | ("rss" . application/rss+xml) | ||
73 | ("rtf" . application/rtf) | ||
74 | ("smi" . application/smil) | ||
75 | ("smil" . application/smil) | ||
76 | ("xhtml" . application/xhtml+xml) | ||
77 | ("xht" . application/xhtml+xml) | ||
78 | ("xml" . application/xml) | ||
79 | ("xsl" . application/xml) | ||
80 | ("xsd" . application/xml) | ||
81 | ("xspf" . application/xspf+xml) | ||
82 | ("zip" . application/zip) | ||
83 | ("apk" . application/vnd.android.package-archive) | ||
84 | ("cdy" . application/vnd.cinderella) | ||
85 | ("kml" . application/vnd.google-earth.kml+xml) | ||
86 | ("kmz" . application/vnd.google-earth.kmz) | ||
87 | ("xul" . application/vnd.mozilla.xul+xml) | ||
88 | ("xls" . application/vnd.ms-excel) | ||
89 | ("xlb" . application/vnd.ms-excel) | ||
90 | ("xlt" . application/vnd.ms-excel) | ||
91 | ("cat" . application/vnd.ms-pki.seccat) | ||
92 | ("stl" . application/vnd.ms-pki.stl) | ||
93 | ("ppt" . application/vnd.ms-powerpoint) | ||
94 | ("pps" . application/vnd.ms-powerpoint) | ||
95 | ("odc" . application/vnd.oasis.opendocument.chart) | ||
96 | ("odb" . application/vnd.oasis.opendocument.database) | ||
97 | ("odf" . application/vnd.oasis.opendocument.formula) | ||
98 | ("odg" . application/vnd.oasis.opendocument.graphics) | ||
99 | ("otg" . application/vnd.oasis.opendocument.graphics-template) | ||
100 | ("odi" . application/vnd.oasis.opendocument.image) | ||
101 | ("odp" . application/vnd.oasis.opendocument.presentation) | ||
102 | ("otp" . application/vnd.oasis.opendocument.presentation-template) | ||
103 | ("ods" . application/vnd.oasis.opendocument.spreadsheet) | ||
104 | ("ots" . application/vnd.oasis.opendocument.spreadsheet-template) | ||
105 | ("odt" . application/vnd.oasis.opendocument.text) | ||
106 | ("odm" . application/vnd.oasis.opendocument.text-master) | ||
107 | ("ott" . application/vnd.oasis.opendocument.text-template) | ||
108 | ("oth" . application/vnd.oasis.opendocument.text-web) | ||
109 | ("xlsx" . application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) | ||
110 | ("xltx" . application/vnd.openxmlformats-officedocument.spreadsheetml.template) | ||
111 | ("pptx" . application/vnd.openxmlformats-officedocument.presentationml.presentation) | ||
112 | ("ppsx" . application/vnd.openxmlformats-officedocument.presentationml.slideshow) | ||
113 | ("potx" . application/vnd.openxmlformats-officedocument.presentationml.template) | ||
114 | ("docx" . application/vnd.openxmlformats-officedocument.wordprocessingml.document) | ||
115 | ("dotx" . application/vnd.openxmlformats-officedocument.wordprocessingml.template) | ||
116 | ("cod" . application/vnd.rim.cod) | ||
117 | ("mmf" . application/vnd.smaf) | ||
118 | ("sdc" . application/vnd.stardivision.calc) | ||
119 | ("sds" . application/vnd.stardivision.chart) | ||
120 | ("sda" . application/vnd.stardivision.draw) | ||
121 | ("sdd" . application/vnd.stardivision.impress) | ||
122 | ("sdf" . application/vnd.stardivision.math) | ||
123 | ("sdw" . application/vnd.stardivision.writer) | ||
124 | ("sgl" . application/vnd.stardivision.writer-global) | ||
125 | ("sxc" . application/vnd.sun.xml.calc) | ||
126 | ("stc" . application/vnd.sun.xml.calc.template) | ||
127 | ("sxd" . application/vnd.sun.xml.draw) | ||
128 | ("std" . application/vnd.sun.xml.draw.template) | ||
129 | ("sxi" . application/vnd.sun.xml.impress) | ||
130 | ("sti" . application/vnd.sun.xml.impress.template) | ||
131 | ("sxm" . application/vnd.sun.xml.math) | ||
132 | ("sxw" . application/vnd.sun.xml.writer) | ||
133 | ("sxg" . application/vnd.sun.xml.writer.global) | ||
134 | ("stw" . application/vnd.sun.xml.writer.template) | ||
135 | ("sis" . application/vnd.symbian.install) | ||
136 | ("vsd" . application/vnd.visio) | ||
137 | ("wbxml" . application/vnd.wap.wbxml) | ||
138 | ("wmlc" . application/vnd.wap.wmlc) | ||
139 | ("wmlsc" . application/vnd.wap.wmlscriptc) | ||
140 | ("wpd" . application/vnd.wordperfect) | ||
141 | ("wp5" . application/vnd.wordperfect5.1) | ||
142 | ("wk" . application/x-123) | ||
143 | ("7z" . application/x-7z-compressed) | ||
144 | ("bz2" . application/x-bzip2) | ||
145 | ("gz" . application/x-gzip) | ||
146 | ("abw" . application/x-abiword) | ||
147 | ("dmg" . application/x-apple-diskimage) | ||
148 | ("bcpio" . application/x-bcpio) | ||
149 | ("torrent" . application/x-bittorrent) | ||
150 | ("cab" . application/x-cab) | ||
151 | ("cbr" . application/x-cbr) | ||
152 | ("cbz" . application/x-cbz) | ||
153 | ("cdf" . application/x-cdf) | ||
154 | ("cda" . application/x-cdf) | ||
155 | ("vcd" . application/x-cdlink) | ||
156 | ("pgn" . application/x-chess-pgn) | ||
157 | ("cpio" . application/x-cpio) | ||
158 | ("csh" . application/x-csh) | ||
159 | ("deb" . application/x-debian-package) | ||
160 | ("udeb" . application/x-debian-package) | ||
161 | ("dcr" . application/x-director) | ||
162 | ("dir" . application/x-director) | ||
163 | ("dxr" . application/x-director) | ||
164 | ("dms" . application/x-dms) | ||
165 | ("wad" . application/x-doom) | ||
166 | ("dvi" . application/x-dvi) | ||
167 | ("rhtml" . application/x-httpd-eruby) | ||
168 | ("pfa" . application/x-font) | ||
169 | ("pfb" . application/x-font) | ||
170 | ("gsf" . application/x-font) | ||
171 | ("pcf" . application/x-font) | ||
172 | ("pcf.Z" . application/x-font) | ||
173 | ("mm" . application/x-freemind) | ||
174 | ("spl" . application/x-futuresplash) | ||
175 | ("gnumeric" . application/x-gnumeric) | ||
176 | ("sgf" . application/x-go-sgf) | ||
177 | ("gcf" . application/x-graphing-calculator) | ||
178 | ("gtar" . application/x-gtar) | ||
179 | ("tgz" . application/x-gtar) | ||
180 | ("taz" . application/x-gtar) | ||
181 | ("tar.gz" . application/x-gtar) | ||
182 | ("tar.bz2" . application/x-gtar) | ||
183 | ("tbz2" . application/x-gtar) | ||
184 | ("hdf" . application/x-hdf) | ||
185 | ("phtml" . application/x-httpd-php) | ||
186 | ("pht" . application/x-httpd-php) | ||
187 | ("php" . application/x-httpd-php) | ||
188 | ("phps" . application/x-httpd-php-source) | ||
189 | ("php3" . application/x-httpd-php3) | ||
190 | ("php3p" . application/x-httpd-php3-preprocessed) | ||
191 | ("php4" . application/x-httpd-php4) | ||
192 | ("php5" . application/x-httpd-php5) | ||
193 | ("ica" . application/x-ica) | ||
194 | ("info" . application/x-info) | ||
195 | ("ins" . application/x-internet-signup) | ||
196 | ("isp" . application/x-internet-signup) | ||
197 | ("iii" . application/x-iphone) | ||
198 | ("iso" . application/x-iso9660-image) | ||
199 | ("jam" . application/x-jam) | ||
200 | ("jnlp" . application/x-java-jnlp-file) | ||
201 | ("jmz" . application/x-jmol) | ||
202 | ("chrt" . application/x-kchart) | ||
203 | ("kil" . application/x-killustrator) | ||
204 | ("skp" . application/x-koan) | ||
205 | ("skd" . application/x-koan) | ||
206 | ("skt" . application/x-koan) | ||
207 | ("skm" . application/x-koan) | ||
208 | ("kpr" . application/x-kpresenter) | ||
209 | ("kpt" . application/x-kpresenter) | ||
210 | ("ksp" . application/x-kspread) | ||
211 | ("kwd" . application/x-kword) | ||
212 | ("kwt" . application/x-kword) | ||
213 | ("latex" . application/x-latex) | ||
214 | ("lha" . application/x-lha) | ||
215 | ("lyx" . application/x-lyx) | ||
216 | ("lzh" . application/x-lzh) | ||
217 | ("lzx" . application/x-lzx) | ||
218 | ("frm" . application/x-maker) | ||
219 | ("maker" . application/x-maker) | ||
220 | ("frame" . application/x-maker) | ||
221 | ("fm" . application/x-maker) | ||
222 | ("fb" . application/x-maker) | ||
223 | ("book" . application/x-maker) | ||
224 | ("fbdoc" . application/x-maker) | ||
225 | ("mif" . application/x-mif) | ||
226 | ("wmd" . application/x-ms-wmd) | ||
227 | ("wmz" . application/x-ms-wmz) | ||
228 | ("com" . application/x-msdos-program) | ||
229 | ("exe" . application/x-msdos-program) | ||
230 | ("bat" . application/x-msdos-program) | ||
231 | ("dll" . application/x-msdos-program) | ||
232 | ("msi" . application/x-msi) | ||
233 | ("nc" . application/x-netcdf) | ||
234 | ("pac" . application/x-ns-proxy-autoconfig) | ||
235 | ("dat" . application/x-ns-proxy-autoconfig) | ||
236 | ("nwc" . application/x-nwc) | ||
237 | ("o" . application/x-object) | ||
238 | ("oza" . application/x-oz-application) | ||
239 | ("p7r" . application/x-pkcs7-certreqresp) | ||
240 | ("crl" . application/x-pkcs7-crl) | ||
241 | ("pyc" . application/x-python-code) | ||
242 | ("pyo" . application/x-python-code) | ||
243 | ("qgs" . application/x-qgis) | ||
244 | ("shp" . application/x-qgis) | ||
245 | ("shx" . application/x-qgis) | ||
246 | ("qtl" . application/x-quicktimeplayer) | ||
247 | ("rpm" . application/x-redhat-package-manager) | ||
248 | ("rb" . application/x-ruby) | ||
249 | ("sh" . application/x-sh) | ||
250 | ("shar" . application/x-shar) | ||
251 | ("swf" . application/x-shockwave-flash) | ||
252 | ("swfl" . application/x-shockwave-flash) | ||
253 | ("scr" . application/x-silverlight) | ||
254 | ("sit" . application/x-stuffit) | ||
255 | ("sitx" . application/x-stuffit) | ||
256 | ("sv4cpio" . application/x-sv4cpio) | ||
257 | ("sv4crc" . application/x-sv4crc) | ||
258 | ("tar" . application/x-tar) | ||
259 | ("tcl" . application/x-tcl) | ||
260 | ("gf" . application/x-tex-gf) | ||
261 | ("pk" . application/x-tex-pk) | ||
262 | ("texinfo" . application/x-texinfo) | ||
263 | ("texi" . application/x-texinfo) | ||
264 | ("~" . application/x-trash) | ||
265 | ("%" . application/x-trash) | ||
266 | ("bak" . application/x-trash) | ||
267 | ("old" . application/x-trash) | ||
268 | ("sik" . application/x-trash) | ||
269 | ("t" . application/x-troff) | ||
270 | ("tr" . application/x-troff) | ||
271 | ("roff" . application/x-troff) | ||
272 | ("man" . application/x-troff-man) | ||
273 | ("me" . application/x-troff-me) | ||
274 | ("ms" . application/x-troff-ms) | ||
275 | ("ustar" . application/x-ustar) | ||
276 | ("src" . application/x-wais-source) | ||
277 | ("wz" . application/x-wingz) | ||
278 | ("crt" . application/x-x509-ca-cert) | ||
279 | ("xcf" . application/x-xcf) | ||
280 | ("fig" . application/x-xfig) | ||
281 | ("xpi" . application/x-xpinstall) | ||
282 | ("amr" . audio/amr) | ||
283 | ("awb" . audio/amr-wb) | ||
284 | ("amr" . audio/amr) | ||
285 | ("awb" . audio/amr-wb) | ||
286 | ("axa" . audio/annodex) | ||
287 | ("au" . audio/basic) | ||
288 | ("snd" . audio/basic) | ||
289 | ("flac" . audio/flac) | ||
290 | ("mid" . audio/midi) | ||
291 | ("midi" . audio/midi) | ||
292 | ("kar" . audio/midi) | ||
293 | ("mpga" . audio/mpeg) | ||
294 | ("mpega" . audio/mpeg) | ||
295 | ("mp2" . audio/mpeg) | ||
296 | ("mp3" . audio/mpeg) | ||
297 | ("m4a" . audio/mpeg) | ||
298 | ("m3u" . audio/mpegurl) | ||
299 | ("oga" . audio/ogg) | ||
300 | ("ogg" . audio/ogg) | ||
301 | ("spx" . audio/ogg) | ||
302 | ("sid" . audio/prs.sid) | ||
303 | ("aif" . audio/x-aiff) | ||
304 | ("aiff" . audio/x-aiff) | ||
305 | ("aifc" . audio/x-aiff) | ||
306 | ("gsm" . audio/x-gsm) | ||
307 | ("m3u" . audio/x-mpegurl) | ||
308 | ("wma" . audio/x-ms-wma) | ||
309 | ("wax" . audio/x-ms-wax) | ||
310 | ("ra" . audio/x-pn-realaudio) | ||
311 | ("rm" . audio/x-pn-realaudio) | ||
312 | ("ram" . audio/x-pn-realaudio) | ||
313 | ("ra" . audio/x-realaudio) | ||
314 | ("pls" . audio/x-scpls) | ||
315 | ("sd2" . audio/x-sd2) | ||
316 | ("wav" . audio/x-wav) | ||
317 | ("alc" . chemical/x-alchemy) | ||
318 | ("cac" . chemical/x-cache) | ||
319 | ("cache" . chemical/x-cache) | ||
320 | ("csf" . chemical/x-cache-csf) | ||
321 | ("cbin" . chemical/x-cactvs-binary) | ||
322 | ("cascii" . chemical/x-cactvs-binary) | ||
323 | ("ctab" . chemical/x-cactvs-binary) | ||
324 | ("cdx" . chemical/x-cdx) | ||
325 | ("cer" . chemical/x-cerius) | ||
326 | ("c3d" . chemical/x-chem3d) | ||
327 | ("chm" . chemical/x-chemdraw) | ||
328 | ("cif" . chemical/x-cif) | ||
329 | ("cmdf" . chemical/x-cmdf) | ||
330 | ("cml" . chemical/x-cml) | ||
331 | ("cpa" . chemical/x-compass) | ||
332 | ("bsd" . chemical/x-crossfire) | ||
333 | ("csml" . chemical/x-csml) | ||
334 | ("csm" . chemical/x-csml) | ||
335 | ("ctx" . chemical/x-ctx) | ||
336 | ("cxf" . chemical/x-cxf) | ||
337 | ("cef" . chemical/x-cxf) | ||
338 | ("emb" . chemical/x-embl-dl-nucleotide) | ||
339 | ("embl" . chemical/x-embl-dl-nucleotide) | ||
340 | ("spc" . chemical/x-galactic-spc) | ||
341 | ("inp" . chemical/x-gamess-input) | ||
342 | ("gam" . chemical/x-gamess-input) | ||
343 | ("gamin" . chemical/x-gamess-input) | ||
344 | ("fch" . chemical/x-gaussian-checkpoint) | ||
345 | ("fchk" . chemical/x-gaussian-checkpoint) | ||
346 | ("cub" . chemical/x-gaussian-cube) | ||
347 | ("gau" . chemical/x-gaussian-input) | ||
348 | ("gjc" . chemical/x-gaussian-input) | ||
349 | ("gjf" . chemical/x-gaussian-input) | ||
350 | ("gal" . chemical/x-gaussian-log) | ||
351 | ("gcg" . chemical/x-gcg8-sequence) | ||
352 | ("gen" . chemical/x-genbank) | ||
353 | ("hin" . chemical/x-hin) | ||
354 | ("istr" . chemical/x-isostar) | ||
355 | ("ist" . chemical/x-isostar) | ||
356 | ("jdx" . chemical/x-jcamp-dx) | ||
357 | ("dx" . chemical/x-jcamp-dx) | ||
358 | ("kin" . chemical/x-kinemage) | ||
359 | ("mcm" . chemical/x-macmolecule) | ||
360 | ("mmd" . chemical/x-macromodel-input) | ||
361 | ("mmod" . chemical/x-macromodel-input) | ||
362 | ("mol" . chemical/x-mdl-molfile) | ||
363 | ("rd" . chemical/x-mdl-rdfile) | ||
364 | ("rxn" . chemical/x-mdl-rxnfile) | ||
365 | ("sd" . chemical/x-mdl-sdfile) | ||
366 | ("sdf" . chemical/x-mdl-sdfile) | ||
367 | ("tgf" . chemical/x-mdl-tgf) | ||
368 | ("mcif" . chemical/x-mmcif) | ||
369 | ("mol2" . chemical/x-mol2) | ||
370 | ("b" . chemical/x-molconn-Z) | ||
371 | ("gpt" . chemical/x-mopac-graph) | ||
372 | ("mop" . chemical/x-mopac-input) | ||
373 | ("mopcrt" . chemical/x-mopac-input) | ||
374 | ("mpc" . chemical/x-mopac-input) | ||
375 | ("zmt" . chemical/x-mopac-input) | ||
376 | ("moo" . chemical/x-mopac-out) | ||
377 | ("mvb" . chemical/x-mopac-vib) | ||
378 | ("asn" . chemical/x-ncbi-asn1) | ||
379 | ("prt" . chemical/x-ncbi-asn1-ascii) | ||
380 | ("ent" . chemical/x-ncbi-asn1-ascii) | ||
381 | ("val" . chemical/x-ncbi-asn1-binary) | ||
382 | ("aso" . chemical/x-ncbi-asn1-binary) | ||
383 | ("asn" . chemical/x-ncbi-asn1-spec) | ||
384 | ("pdb" . chemical/x-pdb) | ||
385 | ("ent" . chemical/x-pdb) | ||
386 | ("ros" . chemical/x-rosdal) | ||
387 | ("sw" . chemical/x-swissprot) | ||
388 | ("vms" . chemical/x-vamas-iso14976) | ||
389 | ("vmd" . chemical/x-vmd) | ||
390 | ("xtel" . chemical/x-xtel) | ||
391 | ("xyz" . chemical/x-xyz) | ||
392 | ("gif" . image/gif) | ||
393 | ("ief" . image/ief) | ||
394 | ("jpeg" . image/jpeg) | ||
395 | ("jpg" . image/jpeg) | ||
396 | ("jpe" . image/jpeg) | ||
397 | ("pcx" . image/pcx) | ||
398 | ("png" . image/png) | ||
399 | ("svg" . image/svg+xml) | ||
400 | ("svgz" . image/svg+xml) | ||
401 | ("tiff" . image/tiff) | ||
402 | ("tif" . image/tiff) | ||
403 | ("djvu" . image/vnd.djvu) | ||
404 | ("djv" . image/vnd.djvu) | ||
405 | ("wbmp" . image/vnd.wap.wbmp) | ||
406 | ("cr2" . image/x-canon-cr2) | ||
407 | ("crw" . image/x-canon-crw) | ||
408 | ("ras" . image/x-cmu-raster) | ||
409 | ("cdr" . image/x-coreldraw) | ||
410 | ("pat" . image/x-coreldrawpattern) | ||
411 | ("cdt" . image/x-coreldrawtemplate) | ||
412 | ("cpt" . image/x-corelphotopaint) | ||
413 | ("erf" . image/x-epson-erf) | ||
414 | ("ico" . image/x-icon) | ||
415 | ("art" . image/x-jg) | ||
416 | ("jng" . image/x-jng) | ||
417 | ("bmp" . image/x-ms-bmp) | ||
418 | ("nef" . image/x-nikon-nef) | ||
419 | ("orf" . image/x-olympus-orf) | ||
420 | ("psd" . image/x-photoshop) | ||
421 | ("pnm" . image/x-portable-anymap) | ||
422 | ("pbm" . image/x-portable-bitmap) | ||
423 | ("pgm" . image/x-portable-graymap) | ||
424 | ("ppm" . image/x-portable-pixmap) | ||
425 | ("rgb" . image/x-rgb) | ||
426 | ("xbm" . image/x-xbitmap) | ||
427 | ("xpm" . image/x-xpixmap) | ||
428 | ("xwd" . image/x-xwindowdump) | ||
429 | ("eml" . message/rfc822) | ||
430 | ("igs" . model/iges) | ||
431 | ("iges" . model/iges) | ||
432 | ("msh" . model/mesh) | ||
433 | ("mesh" . model/mesh) | ||
434 | ("silo" . model/mesh) | ||
435 | ("wrl" . model/vrml) | ||
436 | ("vrml" . model/vrml) | ||
437 | ("x3dv" . model/x3d+vrml) | ||
438 | ("x3d" . model/x3d+xml) | ||
439 | ("x3db" . model/x3d+binary) | ||
440 | ("manifest" . text/cache-manifest) | ||
441 | ("ics" . text/calendar) | ||
442 | ("icz" . text/calendar) | ||
443 | ("css" . text/css) | ||
444 | ("csv" . text/csv) | ||
445 | ("323" . text/h323) | ||
446 | ("html" . text/html) | ||
447 | ("htm" . text/html) | ||
448 | ("shtml" . text/html) | ||
449 | ("uls" . text/iuls) | ||
450 | ("mml" . text/mathml) | ||
451 | ("asc" . text/plain) | ||
452 | ("txt" . text/plain) | ||
453 | ("text" . text/plain) | ||
454 | ("pot" . text/plain) | ||
455 | ("brf" . text/plain) | ||
456 | ("rtx" . text/richtext) | ||
457 | ("sct" . text/scriptlet) | ||
458 | ("wsc" . text/scriptlet) | ||
459 | ("tm" . text/texmacs) | ||
460 | ("ts" . text/texmacs) | ||
461 | ("tsv" . text/tab-separated-values) | ||
462 | ("jad" . text/vnd.sun.j2me.app-descriptor) | ||
463 | ("wml" . text/vnd.wap.wml) | ||
464 | ("wmls" . text/vnd.wap.wmlscript) | ||
465 | ("bib" . text/x-bibtex) | ||
466 | ("boo" . text/x-boo) | ||
467 | ("h++" . text/x-c++hdr) | ||
468 | ("hpp" . text/x-c++hdr) | ||
469 | ("hxx" . text/x-c++hdr) | ||
470 | ("hh" . text/x-c++hdr) | ||
471 | ("c++" . text/x-c++src) | ||
472 | ("cpp" . text/x-c++src) | ||
473 | ("cxx" . text/x-c++src) | ||
474 | ("cc" . text/x-c++src) | ||
475 | ("h" . text/x-chdr) | ||
476 | ("htc" . text/x-component) | ||
477 | ("csh" . text/x-csh) | ||
478 | ("c" . text/x-csrc) | ||
479 | ("d" . text/x-dsrc) | ||
480 | ("diff" . text/x-diff) | ||
481 | ("patch" . text/x-diff) | ||
482 | ("hs" . text/x-haskell) | ||
483 | ("java" . text/x-java) | ||
484 | ("lhs" . text/x-literate-haskell) | ||
485 | ("moc" . text/x-moc) | ||
486 | ("p" . text/x-pascal) | ||
487 | ("pas" . text/x-pascal) | ||
488 | ("gcd" . text/x-pcs-gcd) | ||
489 | ("pl" . text/x-perl) | ||
490 | ("pm" . text/x-perl) | ||
491 | ("py" . text/x-python) | ||
492 | ("scala" . text/x-scala) | ||
493 | ("etx" . text/x-setext) | ||
494 | ("sh" . text/x-sh) | ||
495 | ("tcl" . text/x-tcl) | ||
496 | ("tk" . text/x-tcl) | ||
497 | ("tex" . text/x-tex) | ||
498 | ("ltx" . text/x-tex) | ||
499 | ("sty" . text/x-tex) | ||
500 | ("cls" . text/x-tex) | ||
501 | ("vcs" . text/x-vcalendar) | ||
502 | ("vcf" . text/x-vcard) | ||
503 | ("json" . text/javascript) | ||
504 | ("3gp" . video/3gpp) | ||
505 | ("axv" . video/annodex) | ||
506 | ("dl" . video/dl) | ||
507 | ("dif" . video/dv) | ||
508 | ("dv" . video/dv) | ||
509 | ("fli" . video/fli) | ||
510 | ("gl" . video/gl) | ||
511 | ("mpeg" . video/mpeg) | ||
512 | ("mpg" . video/mpeg) | ||
513 | ("mpe" . video/mpeg) | ||
514 | ("mp4" . video/mp4) | ||
515 | ("qt" . video/quicktime) | ||
516 | ("mov" . video/quicktime) | ||
517 | ("ogv" . video/ogg) | ||
518 | ("mxu" . video/vnd.mpegurl) | ||
519 | ("flv" . video/x-flv) | ||
520 | ("lsf" . video/x-la-asf) | ||
521 | ("lsx" . video/x-la-asf) | ||
522 | ("mng" . video/x-mng) | ||
523 | ("asf" . video/x-ms-asf) | ||
524 | ("asx" . video/x-ms-asf) | ||
525 | ("wm" . video/x-ms-wm) | ||
526 | ("wmv" . video/x-ms-wmv) | ||
527 | ("wmx" . video/x-ms-wmx) | ||
528 | ("wvx" . video/x-ms-wvx) | ||
529 | ("avi" . video/x-msvideo) | ||
530 | ("movie" . video/x-sgi-movie) | ||
531 | ("mpv" . video/x-matroska) | ||
532 | ("mkv" . video/x-matroska) | ||
533 | ("ice" . x-conference/x-cooltalk) | ||
534 | ("sisx" . x-epoc/x-sisx-app) | ||
535 | ("vrm" . x-world/x-vrml) | ||
536 | ("vrml" . x-world/x-vrml) | ||
537 | ("wrl" . x-world/x-vrml)))) | ||
538 | |||
539 | (define %file-ext-regexp | ||
540 | (make-regexp "(\\.(.*)|[~%])$")) | ||
541 | |||
542 | (define (file-extension file-name) | ||
543 | "Return the file extension for FILE-NAME, or #f if one is not | ||
544 | found." | ||
545 | (and=> (regexp-exec %file-ext-regexp file-name) | ||
546 | (lambda (match) | ||
547 | (or (match:substring match 2) | ||
548 | (match:substring match 1))))) | ||
549 | |||
550 | (define-public (mime-type file-name) | ||
551 | "Guess the MIME type for FILE-NAME based upon its file extension." | ||
552 | (or (hash-ref %mime-types (file-extension file-name)) | ||
553 | 'text/plain)) | ||