hawkins 0.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,86 @@
1
+ module Hawkins
2
+ module Commands
3
+ class Post < Jekyll::Command
4
+ class << self
5
+ COMMAND_OPTIONS = {
6
+ "date" => ["-d", "--date [DATE]", "Date to mark post"],
7
+ "editor" => ["-e", "--editor [EDITOR]", "Editor to open"],
8
+ "source" => ["-s", "--source SOURCE", "Custom source directory"],
9
+ "config" => [
10
+ "--config CONFIG_FILE[,CONFIG_FILE2,...]", Array, "Custom configuration file"
11
+ ],
12
+ }.freeze
13
+
14
+ def init_with_program(prog)
15
+ prog.command(:post) do |c|
16
+ c.syntax("new [options]")
17
+ c.description("create a new post")
18
+ c.action do |args, options|
19
+ Hawkins::Commands::Post.create(args, options)
20
+ end
21
+ end
22
+ end
23
+
24
+ def create(args, options)
25
+ options["date"] ||= Time.now.to_s
26
+ options["editor"] ||= ENV['VISUAL'] || ENV['EDITOR'] || 'vi'
27
+ begin
28
+ date = Date.parse(options["date"])
29
+ rescue
30
+ Jekyll.logger.abort_with("Could not convert #{options['date']} into date format.")
31
+ end
32
+
33
+ if args.length != 1
34
+ Jekyll.logger.abort_with(
35
+ "Please provide an argument to use as the post title.\n
36
+ Remember to quote multiword strings.")
37
+ else
38
+ title = args[0]
39
+ end
40
+
41
+ slug = Jekyll::Utils.slugify(title)
42
+
43
+ site_opts = configuration_from_options(options)
44
+ site = Jekyll::Site.new(site_opts)
45
+ posts = site.in_source_dir('_posts')
46
+ filename = File.join(posts, "#{date.strftime('%Y-%m-%d')}-#{slug}.md")
47
+
48
+ # TODO incorporate Highline and allow users to elect to create the directory
49
+ # Like Thor does
50
+ unless File.exist?(posts)
51
+ Jekyll.logger.abort_with("#{posts} does not exist. Please create it.")
52
+ end
53
+
54
+ # TODO ask if user wishes to overwrite
55
+ if File.exist?(filename)
56
+ Jekyll.logger.abort_with(
57
+ "#{filename} already exists. Cowardly refusing to overwrite it.")
58
+ end
59
+
60
+ content = <<-CONTENT
61
+ ---
62
+ title: #{title}
63
+ ---
64
+ CONTENT
65
+
66
+ File.open(filename, 'w') do |f|
67
+ f.write(Jekyll::Utils.strip_heredoc(content))
68
+ end
69
+
70
+ Jekyll.logger.info("Wrote #{filename}")
71
+
72
+ case options["editor"]
73
+ when /g?vim/
74
+ editor_args = "+"
75
+ when /x?emacs/
76
+ editor_args = "+#{content.lines.count}"
77
+ else
78
+ editor_args = nil
79
+ end
80
+
81
+ exec(*[options["editor"], editor_args, filename].compact)
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,154 @@
1
+ require "webrick"
2
+ require "jekyll/commands/serve/servlet"
3
+
4
+ module Hawkins
5
+ module Commands
6
+ class LiveServe
7
+ class SkipAnalyzer
8
+ BAD_USER_AGENTS = [%r{MSIE}].freeze
9
+
10
+ def self.skip_processing?(req, res, options)
11
+ new(req, res, options).skip_processing?
12
+ end
13
+
14
+ def initialize(req, res, options)
15
+ @options = options
16
+ @req = req
17
+ @res = res
18
+ end
19
+
20
+ def skip_processing?
21
+ !html? || chunked? || inline? || ignored? || bad_browser?
22
+ end
23
+
24
+ def chunked?
25
+ @res['Transfer-Encoding'] == 'chunked'
26
+ end
27
+
28
+ def inline?
29
+ @res['Content-Disposition'] =~ %r{^inline}
30
+ end
31
+
32
+ def ignored?
33
+ path = @req.query_string.nil? ? @req.path_info : "#{@req.path_info}?#{@req.query_string}"
34
+ @options["ignore"] && @options["ignore"].any? { |filter| path[filter] }
35
+ end
36
+
37
+ def bad_browser?
38
+ BAD_USER_AGENTS.any? { |pattern| @req['User-Agent'] =~ pattern }
39
+ end
40
+
41
+ def html?
42
+ @res['Content-Type'] =~ %r{text/html}
43
+ end
44
+ end
45
+
46
+ class BodyProcessor
47
+ HEAD_TAG_REGEX = /<head>|<head[^(er)][^<]*>/
48
+
49
+ attr_reader :content_length, :new_body, :livereload_added
50
+
51
+ def initialize(body, options)
52
+ @body = body
53
+ @options = options
54
+ @processed = false
55
+ end
56
+
57
+ def with_swf?
58
+ @options["swf"]
59
+ end
60
+
61
+ def processed?
62
+ @processed
63
+ end
64
+
65
+ def process!
66
+ @new_body = []
67
+ begin
68
+ @body.each { |line| @new_body << line.to_s }
69
+ ensure
70
+ # @body will be a File object
71
+ @body.close
72
+ end
73
+
74
+ @content_length = 0
75
+ @livereload_added = false
76
+
77
+ @new_body.each do |line|
78
+ if !@livereload_added && line['<head']
79
+ line.gsub!(HEAD_TAG_REGEX) { |match| %(#{match}#{template.result(binding)}) }
80
+
81
+ @livereload_added = true
82
+ end
83
+
84
+ @content_length += line.bytesize
85
+ @processed = true
86
+ end
87
+ @new_body = @new_body.join
88
+ end
89
+
90
+ def host_to_use
91
+ (@options["host"] || 'localhost').gsub(%r{:.*}, '')
92
+ end
93
+
94
+ def template
95
+ template = <<-TEMPLATE
96
+ <% if with_swf? %>
97
+ <script type="text/javascript">
98
+ WEB_SOCKET_SWF_LOCATION = "<%= @options["baseurl"] %>/__livereload/WebSocketMain.swf";
99
+ WEB_SOCKET_FORCE_FLASH = false;
100
+ </script>
101
+ <script type="text/javascript" src="<%= @options["baseurl"] %>/__livereload/swfobject.js"></script>
102
+ <script type="text/javascript" src="<%= @options["baseurl"] %>/__livereload/web_socket.js"></script>
103
+ <% end %>
104
+ <script type="text/javascript">
105
+ HAWKINS_LIVERELOAD_PORT = <%= @options["reload_port"] %>;
106
+ HAWKINS_LIVERELOAD_PROTOCOL = <%= livereload_protocol %>;
107
+ </script>
108
+ <script type="text/javascript" src="<%= livereload_source %>"></script>
109
+ TEMPLATE
110
+ ERB.new(Jekyll::Utils.strip_heredoc(template))
111
+ end
112
+
113
+ def livereload_protocol
114
+ use_ssl = @options["ssl_cert"] && @options["ssl_key"]
115
+ use_ssl ? '"wss://"' : '"ws://"'
116
+ end
117
+
118
+ def livereload_source
119
+ use_ssl = @options["ssl_cert"] && @options["ssl_key"]
120
+ protocol = use_ssl ? "https" : "http"
121
+
122
+ # Unclear what "snipver" does. https://github.com/livereload/livereload-js states
123
+ # that the recommended setting is 1.
124
+ src = "#{protocol}://#{host_to_use}:#{@options['reload_port']}/livereload.js?snipver=1"
125
+
126
+ # XHTML standard requires ampersands to be encoded as entities when in attributes
127
+ # See http://stackoverflow.com/a/2190292
128
+ src << "&amp;mindelay=#{@options['min_delay']}" if @options["min_delay"]
129
+ src << "&amp;maxdelay=#{@options['max_delay']}" if @options["max_delay"]
130
+ src << "&amp;port=#{@options['reload_port']}" if @options["reload_port"]
131
+ src
132
+ end
133
+ end
134
+
135
+ class ReloadServlet < Jekyll::Commands::Serve::Servlet
136
+ def do_GET(req, res) # rubocop:disable MethodName
137
+ rtn = super
138
+ return rtn if SkipAnalyzer.skip_processing?(req, res, @jekyll_opts)
139
+
140
+ processor = BodyProcessor.new(res.body, @jekyll_opts)
141
+ processor.process!
142
+ res.body = processor.new_body
143
+ res.content_length = processor.content_length.to_s
144
+
145
+ if processor.livereload_added
146
+ res['X-Rack-LiveReload'] = '1'
147
+ end
148
+
149
+ rtn
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
@@ -1,3 +1,3 @@
1
1
  module Hawkins
2
- VERSION = "0.1.0"
2
+ VERSION = "2.0.0".freeze
3
3
  end
@@ -0,0 +1,160 @@
1
+ require 'json'
2
+ require 'em-websocket'
3
+ require 'http/parser'
4
+
5
+ module Hawkins
6
+ # The LiveReload protocol requires the server to serve livereload.js over HTTP
7
+ # despite the fact that the protocol itself uses WebSockets. This custom connection
8
+ # class addresses the dual protocols that the server needs to understand.
9
+ class HttpAwareConnection < EventMachine::WebSocket::Connection
10
+ attr_reader :reload_file
11
+
12
+ def initialize(opts)
13
+ @ssl_enabled = opts['ssl_cert'] && opts['ssl_key']
14
+ if @ssl_enabled
15
+ opts[:tls_options] = {
16
+ :private_key_file => Jekyll.sanitized_path(opts['source'], opts['ssl_key']),
17
+ :cert_chain_file => Jekyll.sanitized_path(opts['source'], opts['ssl_cert']),
18
+ }
19
+ opts[:secure] = true
20
+ end
21
+ super
22
+ @reload_file = File.join(LIVERELOAD_DIR, "livereload.js")
23
+ end
24
+
25
+ def dispatch(data)
26
+ parser = Http::Parser.new
27
+ parser << data
28
+
29
+ # WebSockets requests will have a Connection: Upgrade header
30
+ if parser.http_method != 'GET' || parser.upgrade?
31
+ super
32
+ elsif parser.request_url =~ /^\/livereload.js/
33
+ headers = [
34
+ 'HTTP/1.1 200 OK',
35
+ 'Content-Type: application/javascript',
36
+ "Content-Length: #{File.size(reload_file)}",
37
+ '',
38
+ '',
39
+ ].join("\r\n")
40
+ send_data(headers)
41
+ stream_file_data(reload_file).callback do
42
+ close_connection_after_writing
43
+ end
44
+ else
45
+ body = "This port only serves livereload.js over HTTP.\n"
46
+ headers = [
47
+ 'HTTP/1.1 400 Bad Request',
48
+ 'Content-Type: text/plain',
49
+ "Content-Length: #{body.bytesize}",
50
+ '',
51
+ '',
52
+ ].join("\r\n")
53
+ send_data(headers)
54
+ send_data(body)
55
+ close_connection_after_writing
56
+ end
57
+ end
58
+ end
59
+
60
+ class LiveReloadReactor
61
+ attr_reader :thread
62
+ attr_reader :opts
63
+
64
+ def initialize(opts)
65
+ @opts = opts
66
+ @thread = nil
67
+ @websockets = []
68
+ @connections_count = 0
69
+ end
70
+
71
+ def stop
72
+ Jekyll.logger.debug("LiveReload Server:", "halted")
73
+ @thread.kill unless @thread.nil?
74
+ end
75
+
76
+ def running?
77
+ !@thread.nil? && @thread.alive?
78
+ end
79
+
80
+ def start
81
+ @thread = Thread.new do
82
+ # Use epoll if the kernel supports it
83
+ EM.epoll
84
+ # TODO enable SSL
85
+ EM.run do
86
+ Jekyll.logger.info("LiveReload Server:", "#{opts['host']}:#{opts['reload_port']}")
87
+ EM.start_server(opts['host'], opts['reload_port'], HttpAwareConnection, opts) do |ws|
88
+ ws.onopen do |handshake|
89
+ connect(ws, handshake)
90
+ end
91
+
92
+ ws.onclose do
93
+ disconnect(ws)
94
+ end
95
+
96
+ ws.onmessage do |msg|
97
+ print_message(msg)
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ Jekyll::Hooks.register(:site, :post_render) do |site|
104
+ regenerator = Jekyll::Regenerator.new(site)
105
+ @changed_pages = site.pages.select do |p|
106
+ regenerator.regenerate?(p)
107
+ end
108
+ end
109
+
110
+ Jekyll::Hooks.register(:site, :post_write) do
111
+ reload(@changed_pages) unless @changed_pages.nil?
112
+ @changed_pages = nil
113
+ end
114
+ end
115
+
116
+ private
117
+
118
+ # For a description of the protocol see http://feedback.livereload.com/knowledgebase/articles/86174-livereload-protocol
119
+ def reload(pages)
120
+ pages.each do |p|
121
+ msg = {
122
+ :command => 'reload',
123
+ :path => p.path,
124
+ :liveCSS => true,
125
+ }
126
+
127
+ # TODO Add support for override URL?
128
+ # See http://feedback.livereload.com/knowledgebase/articles/86220-preview-css-changes-against-a-live-site-then-uplo
129
+
130
+ Jekyll.logger.debug("LiveReload:", "Reloading #{p.path}")
131
+ @websockets.each do |ws|
132
+ ws.send(JSON.dump(msg))
133
+ end
134
+ end
135
+ end
136
+
137
+ def connect(ws, _handshake)
138
+ @connections_count += 1
139
+ Jekyll.logger.info("LiveReload:", "Browser connected") if @connections_count == 1
140
+ ws.send(
141
+ JSON.dump(
142
+ :command => 'hello',
143
+ :protocols => ['http://livereload.com/protocols/official-7'],
144
+ :serverName => 'jekyll livereload',
145
+ ))
146
+
147
+ @websockets << ws
148
+ end
149
+
150
+ def disconnect(ws)
151
+ @websockets.delete(ws)
152
+ end
153
+
154
+ def print_message(json_message)
155
+ msg = JSON.parse(json_message)
156
+ # Not sure what the 'url' command even does in LiveReload
157
+ Jekyll.logger.info("LiveReload:", "Browser URL: #{msg['url']}") if msg['command'] == 'url'
158
+ end
159
+ end
160
+ end
data/lib/mime.types ADDED
@@ -0,0 +1,800 @@
1
+ # Woah there. Do not edit this file directly.
2
+ # This file is generated automatically by script/vendor-mimes.
3
+
4
+ application/andrew-inset ez
5
+ application/applixware aw
6
+ application/atom+xml atom
7
+ application/atomcat+xml atomcat
8
+ application/atomsvc+xml atomsvc
9
+ application/bdoc bdoc
10
+ application/ccxml+xml ccxml
11
+ application/cdmi-capability cdmia
12
+ application/cdmi-container cdmic
13
+ application/cdmi-domain cdmid
14
+ application/cdmi-object cdmio
15
+ application/cdmi-queue cdmiq
16
+ application/cu-seeme cu
17
+ application/dash+xml mdp
18
+ application/davmount+xml davmount
19
+ application/docbook+xml dbk
20
+ application/dssc+der dssc
21
+ application/dssc+xml xdssc
22
+ application/ecmascript ecma
23
+ application/emma+xml emma
24
+ application/epub+zip epub
25
+ application/exi exi
26
+ application/font-tdpfr pfr
27
+ application/font-woff woff
28
+ application/font-woff2 woff2
29
+ application/gml+xml gml
30
+ application/gpx+xml gpx
31
+ application/gxf gxf
32
+ application/hyperstudio stk
33
+ application/inkml+xml ink inkml
34
+ application/ipfix ipfix
35
+ application/java-archive jar war ear
36
+ application/java-serialized-object ser
37
+ application/java-vm class
38
+ application/javascript js
39
+ application/json json map
40
+ application/json5 json5
41
+ application/jsonml+json jsonml
42
+ application/ld+json jsonld
43
+ application/lost+xml lostxml
44
+ application/mac-binhex40 hqx
45
+ application/mac-compactpro cpt
46
+ application/mads+xml mads
47
+ application/manifest+json webmanifest
48
+ application/marc mrc
49
+ application/marcxml+xml mrcx
50
+ application/mathematica ma nb mb
51
+ application/mathml+xml mathml
52
+ application/mbox mbox
53
+ application/mediaservercontrol+xml mscml
54
+ application/metalink+xml metalink
55
+ application/metalink4+xml meta4
56
+ application/mets+xml mets
57
+ application/mods+xml mods
58
+ application/mp21 m21 mp21
59
+ application/mp4 mp4s m4p
60
+ application/msword doc dot
61
+ application/mxf mxf
62
+ application/octet-stream bin dms lrf mar so dist distz pkg bpk dump elc deploy exe dll deb dmg iso img msi msp msm buffer
63
+ application/oda oda
64
+ application/oebps-package+xml opf
65
+ application/ogg ogx
66
+ application/omdoc+xml omdoc
67
+ application/onenote onetoc onetoc2 onetmp onepkg
68
+ application/oxps oxps
69
+ application/patch-ops-error+xml xer
70
+ application/pdf pdf
71
+ application/pgp-encrypted pgp
72
+ application/pgp-signature asc sig
73
+ application/pics-rules prf
74
+ application/pkcs10 p10
75
+ application/pkcs7-mime p7m p7c
76
+ application/pkcs7-signature p7s
77
+ application/pkcs8 p8
78
+ application/pkix-attr-cert ac
79
+ application/pkix-cert cer
80
+ application/pkix-crl crl
81
+ application/pkix-pkipath pkipath
82
+ application/pkixcmp pki
83
+ application/pls+xml pls
84
+ application/postscript ai eps ps
85
+ application/prs.cww cww
86
+ application/pskc+xml pskcxml
87
+ application/rdf+xml rdf
88
+ application/reginfo+xml rif
89
+ application/relax-ng-compact-syntax rnc
90
+ application/resource-lists+xml rl
91
+ application/resource-lists-diff+xml rld
92
+ application/rls-services+xml rs
93
+ application/rpki-ghostbusters gbr
94
+ application/rpki-manifest mft
95
+ application/rpki-roa roa
96
+ application/rsd+xml rsd
97
+ application/rss+xml rss
98
+ application/rtf rtf
99
+ application/sbml+xml sbml
100
+ application/scvp-cv-request scq
101
+ application/scvp-cv-response scs
102
+ application/scvp-vp-request spq
103
+ application/scvp-vp-response spp
104
+ application/sdp sdp
105
+ application/set-payment-initiation setpay
106
+ application/set-registration-initiation setreg
107
+ application/shf+xml shf
108
+ application/smil+xml smi smil
109
+ application/sparql-query rq
110
+ application/sparql-results+xml srx
111
+ application/srgs gram
112
+ application/srgs+xml grxml
113
+ application/sru+xml sru
114
+ application/ssdl+xml ssdl
115
+ application/ssml+xml ssml
116
+ application/tei+xml tei teicorpus
117
+ application/thraud+xml tfi
118
+ application/timestamped-data tsd
119
+ application/vnd.3gpp.pic-bw-large plb
120
+ application/vnd.3gpp.pic-bw-small psb
121
+ application/vnd.3gpp.pic-bw-var pvb
122
+ application/vnd.3gpp2.tcap tcap
123
+ application/vnd.3m.post-it-notes pwn
124
+ application/vnd.accpac.simply.aso aso
125
+ application/vnd.accpac.simply.imp imp
126
+ application/vnd.acucobol acu
127
+ application/vnd.acucorp atc acutc
128
+ application/vnd.adobe.air-application-installer-package+zip air
129
+ application/vnd.adobe.formscentral.fcdt fcdt
130
+ application/vnd.adobe.fxp fxp fxpl
131
+ application/vnd.adobe.xdp+xml xdp
132
+ application/vnd.adobe.xfdf xfdf
133
+ application/vnd.ahead.space ahead
134
+ application/vnd.airzip.filesecure.azf azf
135
+ application/vnd.airzip.filesecure.azs azs
136
+ application/vnd.amazon.ebook azw
137
+ application/vnd.americandynamics.acc acc
138
+ application/vnd.amiga.ami ami
139
+ application/vnd.android.package-archive apk
140
+ application/vnd.anser-web-certificate-issue-initiation cii
141
+ application/vnd.anser-web-funds-transfer-initiation fti
142
+ application/vnd.antix.game-component atx
143
+ application/vnd.apple.installer+xml mpkg
144
+ application/vnd.apple.mpegurl m3u8
145
+ application/vnd.aristanetworks.swi swi
146
+ application/vnd.astraea-software.iota iota
147
+ application/vnd.audiograph aep
148
+ application/vnd.blueice.multipass mpm
149
+ application/vnd.bmi bmi
150
+ application/vnd.businessobjects rep
151
+ application/vnd.chemdraw+xml cdxml
152
+ application/vnd.chipnuts.karaoke-mmd mmd
153
+ application/vnd.cinderella cdy
154
+ application/vnd.claymore cla
155
+ application/vnd.cloanto.rp9 rp9
156
+ application/vnd.clonk.c4group c4g c4d c4f c4p c4u
157
+ application/vnd.cluetrust.cartomobile-config c11amc
158
+ application/vnd.cluetrust.cartomobile-config-pkg c11amz
159
+ application/vnd.commonspace csp
160
+ application/vnd.contact.cmsg cdbcmsg
161
+ application/vnd.cosmocaller cmc
162
+ application/vnd.crick.clicker clkx
163
+ application/vnd.crick.clicker.keyboard clkk
164
+ application/vnd.crick.clicker.palette clkp
165
+ application/vnd.crick.clicker.template clkt
166
+ application/vnd.crick.clicker.wordbank clkw
167
+ application/vnd.criticaltools.wbs+xml wbs
168
+ application/vnd.ctc-posml pml
169
+ application/vnd.cups-ppd ppd
170
+ application/vnd.curl.car car
171
+ application/vnd.curl.pcurl pcurl
172
+ application/vnd.dart dart
173
+ application/vnd.data-vision.rdz rdz
174
+ application/vnd.dece.data uvf uvvf uvd uvvd
175
+ application/vnd.dece.ttml+xml uvt uvvt
176
+ application/vnd.dece.unspecified uvx uvvx
177
+ application/vnd.dece.zip uvz uvvz
178
+ application/vnd.denovo.fcselayout-link fe_launch
179
+ application/vnd.dna dna
180
+ application/vnd.dolby.mlp mlp
181
+ application/vnd.dpgraph dpg
182
+ application/vnd.dreamfactory dfac
183
+ application/vnd.ds-keypoint kpxx
184
+ application/vnd.dvb.ait ait
185
+ application/vnd.dvb.service svc
186
+ application/vnd.dynageo geo
187
+ application/vnd.ecowin.chart mag
188
+ application/vnd.enliven nml
189
+ application/vnd.epson.esf esf
190
+ application/vnd.epson.msf msf
191
+ application/vnd.epson.quickanime qam
192
+ application/vnd.epson.salt slt
193
+ application/vnd.epson.ssf ssf
194
+ application/vnd.eszigno3+xml es3 et3
195
+ application/vnd.ezpix-album ez2
196
+ application/vnd.ezpix-package ez3
197
+ application/vnd.fdf fdf
198
+ application/vnd.fdsn.mseed mseed
199
+ application/vnd.fdsn.seed seed dataless
200
+ application/vnd.flographit gph
201
+ application/vnd.fluxtime.clip ftc
202
+ application/vnd.framemaker fm frame maker book
203
+ application/vnd.frogans.fnc fnc
204
+ application/vnd.frogans.ltf ltf
205
+ application/vnd.fsc.weblaunch fsc
206
+ application/vnd.fujitsu.oasys oas
207
+ application/vnd.fujitsu.oasys2 oa2
208
+ application/vnd.fujitsu.oasys3 oa3
209
+ application/vnd.fujitsu.oasysgp fg5
210
+ application/vnd.fujitsu.oasysprs bh2
211
+ application/vnd.fujixerox.ddd ddd
212
+ application/vnd.fujixerox.docuworks xdw
213
+ application/vnd.fujixerox.docuworks.binder xbd
214
+ application/vnd.fuzzysheet fzs
215
+ application/vnd.genomatix.tuxedo txd
216
+ application/vnd.geogebra.file ggb
217
+ application/vnd.geogebra.tool ggt
218
+ application/vnd.geometry-explorer gex gre
219
+ application/vnd.geonext gxt
220
+ application/vnd.geoplan g2w
221
+ application/vnd.geospace g3w
222
+ application/vnd.gmx gmx
223
+ application/vnd.google-earth.kml+xml kml
224
+ application/vnd.google-earth.kmz kmz
225
+ application/vnd.grafeq gqf gqs
226
+ application/vnd.groove-account gac
227
+ application/vnd.groove-help ghf
228
+ application/vnd.groove-identity-message gim
229
+ application/vnd.groove-injector grv
230
+ application/vnd.groove-tool-message gtm
231
+ application/vnd.groove-tool-template tpl
232
+ application/vnd.groove-vcard vcg
233
+ application/vnd.hal+xml hal
234
+ application/vnd.handheld-entertainment+xml zmm
235
+ application/vnd.hbci hbci
236
+ application/vnd.hhe.lesson-player les
237
+ application/vnd.hp-hpgl hpgl
238
+ application/vnd.hp-hpid hpid
239
+ application/vnd.hp-hps hps
240
+ application/vnd.hp-jlyt jlt
241
+ application/vnd.hp-pcl pcl
242
+ application/vnd.hp-pclxl pclxl
243
+ application/vnd.hydrostatix.sof-data sfd-hdstx
244
+ application/vnd.ibm.minipay mpy
245
+ application/vnd.ibm.modcap afp listafp list3820
246
+ application/vnd.ibm.rights-management irm
247
+ application/vnd.ibm.secure-container sc
248
+ application/vnd.iccprofile icc icm
249
+ application/vnd.igloader igl
250
+ application/vnd.immervision-ivp ivp
251
+ application/vnd.immervision-ivu ivu
252
+ application/vnd.insors.igm igm
253
+ application/vnd.intercon.formnet xpw xpx
254
+ application/vnd.intergeo i2g
255
+ application/vnd.intu.qbo qbo
256
+ application/vnd.intu.qfx qfx
257
+ application/vnd.ipunplugged.rcprofile rcprofile
258
+ application/vnd.irepository.package+xml irp
259
+ application/vnd.is-xpr xpr
260
+ application/vnd.isac.fcs fcs
261
+ application/vnd.jam jam
262
+ application/vnd.jcp.javame.midlet-rms rms
263
+ application/vnd.jisp jisp
264
+ application/vnd.joost.joda-archive joda
265
+ application/vnd.kahootz ktz ktr
266
+ application/vnd.kde.karbon karbon
267
+ application/vnd.kde.kchart chrt
268
+ application/vnd.kde.kformula kfo
269
+ application/vnd.kde.kivio flw
270
+ application/vnd.kde.kontour kon
271
+ application/vnd.kde.kpresenter kpr kpt
272
+ application/vnd.kde.kspread ksp
273
+ application/vnd.kde.kword kwd kwt
274
+ application/vnd.kenameaapp htke
275
+ application/vnd.kidspiration kia
276
+ application/vnd.kinar kne knp
277
+ application/vnd.koan skp skd skt skm
278
+ application/vnd.kodak-descriptor sse
279
+ application/vnd.las.las+xml lasxml
280
+ application/vnd.llamagraphics.life-balance.desktop lbd
281
+ application/vnd.llamagraphics.life-balance.exchange+xml lbe
282
+ application/vnd.lotus-1-2-3 123
283
+ application/vnd.lotus-approach apr
284
+ application/vnd.lotus-freelance pre
285
+ application/vnd.lotus-notes nsf
286
+ application/vnd.lotus-organizer org
287
+ application/vnd.lotus-screencam scm
288
+ application/vnd.lotus-wordpro lwp
289
+ application/vnd.macports.portpkg portpkg
290
+ application/vnd.mcd mcd
291
+ application/vnd.medcalcdata mc1
292
+ application/vnd.mediastation.cdkey cdkey
293
+ application/vnd.mfer mwf
294
+ application/vnd.mfmp mfm
295
+ application/vnd.micrografx.flo flo
296
+ application/vnd.micrografx.igx igx
297
+ application/vnd.mif mif
298
+ application/vnd.mobius.daf daf
299
+ application/vnd.mobius.dis dis
300
+ application/vnd.mobius.mbk mbk
301
+ application/vnd.mobius.mqy mqy
302
+ application/vnd.mobius.msl msl
303
+ application/vnd.mobius.plc plc
304
+ application/vnd.mobius.txf txf
305
+ application/vnd.mophun.application mpn
306
+ application/vnd.mophun.certificate mpc
307
+ application/vnd.mozilla.xul+xml xul
308
+ application/vnd.ms-artgalry cil
309
+ application/vnd.ms-cab-compressed cab
310
+ application/vnd.ms-excel xls xlm xla xlc xlt xlw
311
+ application/vnd.ms-excel.addin.macroenabled.12 xlam
312
+ application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb
313
+ application/vnd.ms-excel.sheet.macroenabled.12 xlsm
314
+ application/vnd.ms-excel.template.macroenabled.12 xltm
315
+ application/vnd.ms-fontobject eot
316
+ application/vnd.ms-htmlhelp chm
317
+ application/vnd.ms-ims ims
318
+ application/vnd.ms-lrm lrm
319
+ application/vnd.ms-officetheme thmx
320
+ application/vnd.ms-pki.seccat cat
321
+ application/vnd.ms-pki.stl stl
322
+ application/vnd.ms-powerpoint ppt pps pot
323
+ application/vnd.ms-powerpoint.addin.macroenabled.12 ppam
324
+ application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm
325
+ application/vnd.ms-powerpoint.slide.macroenabled.12 sldm
326
+ application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm
327
+ application/vnd.ms-powerpoint.template.macroenabled.12 potm
328
+ application/vnd.ms-project mpp mpt
329
+ application/vnd.ms-word.document.macroenabled.12 docm
330
+ application/vnd.ms-word.template.macroenabled.12 dotm
331
+ application/vnd.ms-works wps wks wcm wdb
332
+ application/vnd.ms-wpl wpl
333
+ application/vnd.ms-xpsdocument xps
334
+ application/vnd.mseq mseq
335
+ application/vnd.musician mus
336
+ application/vnd.muvee.style msty
337
+ application/vnd.mynfc taglet
338
+ application/vnd.neurolanguage.nlu nlu
339
+ application/vnd.nitf ntf nitf
340
+ application/vnd.noblenet-directory nnd
341
+ application/vnd.noblenet-sealer nns
342
+ application/vnd.noblenet-web nnw
343
+ application/vnd.nokia.n-gage.data ngdat
344
+ application/vnd.nokia.n-gage.symbian.install n-gage
345
+ application/vnd.nokia.radio-preset rpst
346
+ application/vnd.nokia.radio-presets rpss
347
+ application/vnd.novadigm.edm edm
348
+ application/vnd.novadigm.edx edx
349
+ application/vnd.novadigm.ext ext
350
+ application/vnd.oasis.opendocument.chart odc
351
+ application/vnd.oasis.opendocument.chart-template otc
352
+ application/vnd.oasis.opendocument.database odb
353
+ application/vnd.oasis.opendocument.formula odf
354
+ application/vnd.oasis.opendocument.formula-template odft
355
+ application/vnd.oasis.opendocument.graphics odg
356
+ application/vnd.oasis.opendocument.graphics-template otg
357
+ application/vnd.oasis.opendocument.image odi
358
+ application/vnd.oasis.opendocument.image-template oti
359
+ application/vnd.oasis.opendocument.presentation odp
360
+ application/vnd.oasis.opendocument.presentation-template otp
361
+ application/vnd.oasis.opendocument.spreadsheet ods
362
+ application/vnd.oasis.opendocument.spreadsheet-template ots
363
+ application/vnd.oasis.opendocument.text odt
364
+ application/vnd.oasis.opendocument.text-master odm
365
+ application/vnd.oasis.opendocument.text-template ott
366
+ application/vnd.oasis.opendocument.text-web oth
367
+ application/vnd.olpc-sugar xo
368
+ application/vnd.oma.dd2+xml dd2
369
+ application/vnd.openofficeorg.extension oxt
370
+ application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
371
+ application/vnd.openxmlformats-officedocument.presentationml.slide sldx
372
+ application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
373
+ application/vnd.openxmlformats-officedocument.presentationml.template potx
374
+ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
375
+ application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
376
+ application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
377
+ application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
378
+ application/vnd.osgeo.mapguide.package mgp
379
+ application/vnd.osgi.dp dp
380
+ application/vnd.osgi.subsystem esa
381
+ application/vnd.palm pdb pqa oprc
382
+ application/vnd.pawaafile paw
383
+ application/vnd.pg.format str
384
+ application/vnd.pg.osasli ei6
385
+ application/vnd.picsel efif
386
+ application/vnd.pmi.widget wg
387
+ application/vnd.pocketlearn plf
388
+ application/vnd.powerbuilder6 pbd
389
+ application/vnd.previewsystems.box box
390
+ application/vnd.proteus.magazine mgz
391
+ application/vnd.publishare-delta-tree qps
392
+ application/vnd.pvi.ptid1 ptid
393
+ application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
394
+ application/vnd.realvnc.bed bed
395
+ application/vnd.recordare.musicxml mxl
396
+ application/vnd.recordare.musicxml+xml musicxml
397
+ application/vnd.rig.cryptonote cryptonote
398
+ application/vnd.rim.cod cod
399
+ application/vnd.rn-realmedia rm
400
+ application/vnd.rn-realmedia-vbr rmvb
401
+ application/vnd.route66.link66+xml link66
402
+ application/vnd.sailingtracker.track st
403
+ application/vnd.seemail see
404
+ application/vnd.sema sema
405
+ application/vnd.semd semd
406
+ application/vnd.semf semf
407
+ application/vnd.shana.informed.formdata ifm
408
+ application/vnd.shana.informed.formtemplate itp
409
+ application/vnd.shana.informed.interchange iif
410
+ application/vnd.shana.informed.package ipk
411
+ application/vnd.simtech-mindmapper twd twds
412
+ application/vnd.smaf mmf
413
+ application/vnd.smart.teacher teacher
414
+ application/vnd.solent.sdkm+xml sdkm sdkd
415
+ application/vnd.spotfire.dxp dxp
416
+ application/vnd.spotfire.sfs sfs
417
+ application/vnd.stardivision.calc sdc
418
+ application/vnd.stardivision.draw sda
419
+ application/vnd.stardivision.impress sdd
420
+ application/vnd.stardivision.math smf
421
+ application/vnd.stardivision.writer sdw vor
422
+ application/vnd.stardivision.writer-global sgl
423
+ application/vnd.stepmania.package smzip
424
+ application/vnd.stepmania.stepchart sm
425
+ application/vnd.sun.xml.calc sxc
426
+ application/vnd.sun.xml.calc.template stc
427
+ application/vnd.sun.xml.draw sxd
428
+ application/vnd.sun.xml.draw.template std
429
+ application/vnd.sun.xml.impress sxi
430
+ application/vnd.sun.xml.impress.template sti
431
+ application/vnd.sun.xml.math sxm
432
+ application/vnd.sun.xml.writer sxw
433
+ application/vnd.sun.xml.writer.global sxg
434
+ application/vnd.sun.xml.writer.template stw
435
+ application/vnd.sus-calendar sus susp
436
+ application/vnd.svd svd
437
+ application/vnd.symbian.install sis sisx
438
+ application/vnd.syncml+xml xsm
439
+ application/vnd.syncml.dm+wbxml bdm
440
+ application/vnd.syncml.dm+xml xdm
441
+ application/vnd.tao.intent-module-archive tao
442
+ application/vnd.tcpdump.pcap pcap cap dmp
443
+ application/vnd.tmobile-livetv tmo
444
+ application/vnd.trid.tpt tpt
445
+ application/vnd.triscape.mxs mxs
446
+ application/vnd.trueapp tra
447
+ application/vnd.ufdl ufd ufdl
448
+ application/vnd.uiq.theme utz
449
+ application/vnd.umajin umj
450
+ application/vnd.unity unityweb
451
+ application/vnd.uoml+xml uoml
452
+ application/vnd.vcx vcx
453
+ application/vnd.visio vsd vst vss vsw
454
+ application/vnd.visionary vis
455
+ application/vnd.vsf vsf
456
+ application/vnd.wap.wbxml wbxml
457
+ application/vnd.wap.wmlc wmlc
458
+ application/vnd.wap.wmlscriptc wmlsc
459
+ application/vnd.webturbo wtb
460
+ application/vnd.wolfram.player nbp
461
+ application/vnd.wordperfect wpd
462
+ application/vnd.wqd wqd
463
+ application/vnd.wt.stf stf
464
+ application/vnd.xara xar
465
+ application/vnd.xfdl xfdl
466
+ application/vnd.yamaha.hv-dic hvd
467
+ application/vnd.yamaha.hv-script hvs
468
+ application/vnd.yamaha.hv-voice hvp
469
+ application/vnd.yamaha.openscoreformat osf
470
+ application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg
471
+ application/vnd.yamaha.smaf-audio saf
472
+ application/vnd.yamaha.smaf-phrase spf
473
+ application/vnd.yellowriver-custom-menu cmp
474
+ application/vnd.zul zir zirz
475
+ application/vnd.zzazz.deck+xml zaz
476
+ application/voicexml+xml vxml
477
+ application/widget wgt
478
+ application/winhlp hlp
479
+ application/wsdl+xml wsdl
480
+ application/wspolicy+xml wspolicy
481
+ application/x-7z-compressed 7z
482
+ application/x-abiword abw
483
+ application/x-ace-compressed ace
484
+ application/x-authorware-bin aab x32 u32 vox
485
+ application/x-authorware-map aam
486
+ application/x-authorware-seg aas
487
+ application/x-bcpio bcpio
488
+ application/x-bittorrent torrent
489
+ application/x-blorb blb blorb
490
+ application/x-bzip bz
491
+ application/x-bzip2 bz2 boz
492
+ application/x-cbr cbr cba cbt cbz cb7
493
+ application/x-cdlink vcd
494
+ application/x-cfs-compressed cfs
495
+ application/x-chat chat
496
+ application/x-chess-pgn pgn
497
+ application/x-chrome-extension crx
498
+ application/x-cocoa cco
499
+ application/x-conference nsc
500
+ application/x-cpio cpio
501
+ application/x-csh csh
502
+ application/x-debian-package udeb
503
+ application/x-dgc-compressed dgc
504
+ application/x-director dir dcr dxr cst cct cxt w3d fgd swa
505
+ application/x-doom wad
506
+ application/x-dtbncx+xml ncx
507
+ application/x-dtbook+xml dtb
508
+ application/x-dtbresource+xml res
509
+ application/x-dvi dvi
510
+ application/x-envoy evy
511
+ application/x-eva eva
512
+ application/x-font-bdf bdf
513
+ application/x-font-ghostscript gsf
514
+ application/x-font-linux-psf psf
515
+ application/x-font-otf otf
516
+ application/x-font-pcf pcf
517
+ application/x-font-snf snf
518
+ application/x-font-ttf ttf ttc
519
+ application/x-font-type1 pfa pfb pfm afm
520
+ application/x-freearc arc
521
+ application/x-futuresplash spl
522
+ application/x-gca-compressed gca
523
+ application/x-glulx ulx
524
+ application/x-gnumeric gnumeric
525
+ application/x-gramps-xml gramps
526
+ application/x-gtar gtar
527
+ application/x-hdf hdf
528
+ application/x-httpd-php php
529
+ application/x-install-instructions install
530
+ application/x-java-archive-diff jardiff
531
+ application/x-java-jnlp-file jnlp
532
+ application/x-latex latex
533
+ application/x-lua-bytecode luac
534
+ application/x-lzh-compressed lzh lha
535
+ application/x-makeself run
536
+ application/x-mie mie
537
+ application/x-mobipocket-ebook prc mobi
538
+ application/x-ms-application application
539
+ application/x-ms-shortcut lnk
540
+ application/x-ms-wmd wmd
541
+ application/x-ms-wmz wmz
542
+ application/x-ms-xbap xbap
543
+ application/x-msaccess mdb
544
+ application/x-msbinder obd
545
+ application/x-mscardfile crd
546
+ application/x-msclip clp
547
+ application/x-msdownload com bat
548
+ application/x-msmediaview mvb m13 m14
549
+ application/x-msmetafile wmf emf emz
550
+ application/x-msmoney mny
551
+ application/x-mspublisher pub
552
+ application/x-msschedule scd
553
+ application/x-msterminal trm
554
+ application/x-mswrite wri
555
+ application/x-netcdf nc cdf
556
+ application/x-ns-proxy-autoconfig pac
557
+ application/x-nzb nzb
558
+ application/x-perl pl pm
559
+ application/x-pkcs12 p12 pfx
560
+ application/x-pkcs7-certificates p7b spc
561
+ application/x-pkcs7-certreqresp p7r
562
+ application/x-rar-compressed rar
563
+ application/x-redhat-package-manager rpm
564
+ application/x-research-info-systems ris
565
+ application/x-sea sea
566
+ application/x-sh sh
567
+ application/x-shar shar
568
+ application/x-shockwave-flash swf
569
+ application/x-silverlight-app xap
570
+ application/x-sql sql
571
+ application/x-stuffit sit
572
+ application/x-stuffitx sitx
573
+ application/x-subrip srt
574
+ application/x-sv4cpio sv4cpio
575
+ application/x-sv4crc sv4crc
576
+ application/x-t3vm-image t3
577
+ application/x-tads gam
578
+ application/x-tar tar
579
+ application/x-tcl tcl tk
580
+ application/x-tex tex
581
+ application/x-tex-tfm tfm
582
+ application/x-texinfo texinfo texi
583
+ application/x-tgif obj
584
+ application/x-ustar ustar
585
+ application/x-wais-source src
586
+ application/x-web-app-manifest+json webapp
587
+ application/x-x509-ca-cert der crt pem
588
+ application/x-xfig fig
589
+ application/x-xliff+xml xlf
590
+ application/x-xpinstall xpi
591
+ application/x-xz xz
592
+ application/x-zmachine z1 z2 z3 z4 z5 z6 z7 z8
593
+ application/xaml+xml xaml
594
+ application/xcap-diff+xml xdf
595
+ application/xenc+xml xenc
596
+ application/xhtml+xml xhtml xht
597
+ application/xml xml xsl xsd
598
+ application/xml-dtd dtd
599
+ application/xop+xml xop
600
+ application/xproc+xml xpl
601
+ application/xslt+xml xslt
602
+ application/xspf+xml xspf
603
+ application/xv+xml mxml xhvml xvml xvm
604
+ application/yang yang
605
+ application/yin+xml yin
606
+ application/zip zip
607
+ audio/adpcm adp
608
+ audio/basic au snd
609
+ audio/midi mid midi kar rmi
610
+ audio/mp4 mp4a m4a
611
+ audio/mpeg mpga mp2 mp2a mp3 m2a m3a
612
+ audio/ogg oga ogg spx
613
+ audio/s3m s3m
614
+ audio/silk sil
615
+ audio/vnd.dece.audio uva uvva
616
+ audio/vnd.digital-winds eol
617
+ audio/vnd.dra dra
618
+ audio/vnd.dts dts
619
+ audio/vnd.dts.hd dtshd
620
+ audio/vnd.lucent.voice lvp
621
+ audio/vnd.ms-playready.media.pya pya
622
+ audio/vnd.nuera.ecelp4800 ecelp4800
623
+ audio/vnd.nuera.ecelp7470 ecelp7470
624
+ audio/vnd.nuera.ecelp9600 ecelp9600
625
+ audio/vnd.rip rip
626
+ audio/wav wav
627
+ audio/webm weba
628
+ audio/x-aac aac
629
+ audio/x-aiff aif aiff aifc
630
+ audio/x-caf caf
631
+ audio/x-flac flac
632
+ audio/x-matroska mka
633
+ audio/x-mpegurl m3u
634
+ audio/x-ms-wax wax
635
+ audio/x-ms-wma wma
636
+ audio/x-pn-realaudio ram ra
637
+ audio/x-pn-realaudio-plugin rmp
638
+ audio/xm xm
639
+ chemical/x-cdx cdx
640
+ chemical/x-cif cif
641
+ chemical/x-cmdf cmdf
642
+ chemical/x-cml cml
643
+ chemical/x-csml csml
644
+ chemical/x-xyz xyz
645
+ image/bmp bmp
646
+ image/cgm cgm
647
+ image/g3fax g3
648
+ image/gif gif
649
+ image/ief ief
650
+ image/jpeg jpeg jpg jpe
651
+ image/ktx ktx
652
+ image/png png
653
+ image/prs.btif btif
654
+ image/sgi sgi
655
+ image/svg+xml svg svgz
656
+ image/tiff tiff tif
657
+ image/vnd.adobe.photoshop psd
658
+ image/vnd.dece.graphic uvi uvvi uvg uvvg
659
+ image/vnd.djvu djvu djv
660
+ image/vnd.dvb.subtitle sub
661
+ image/vnd.dwg dwg
662
+ image/vnd.dxf dxf
663
+ image/vnd.fastbidsheet fbs
664
+ image/vnd.fpx fpx
665
+ image/vnd.fst fst
666
+ image/vnd.fujixerox.edmics-mmr mmr
667
+ image/vnd.fujixerox.edmics-rlc rlc
668
+ image/vnd.ms-modi mdi
669
+ image/vnd.ms-photo wdp
670
+ image/vnd.net-fpx npx
671
+ image/vnd.wap.wbmp wbmp
672
+ image/vnd.xiff xif
673
+ image/webp webp
674
+ image/x-3ds 3ds
675
+ image/x-cmu-raster ras
676
+ image/x-cmx cmx
677
+ image/x-freehand fh fhc fh4 fh5 fh7
678
+ image/x-icon ico
679
+ image/x-jng jng
680
+ image/x-mrsid-image sid
681
+ image/x-pcx pcx
682
+ image/x-pict pic pct
683
+ image/x-portable-anymap pnm
684
+ image/x-portable-bitmap pbm
685
+ image/x-portable-graymap pgm
686
+ image/x-portable-pixmap ppm
687
+ image/x-rgb rgb
688
+ image/x-tga tga
689
+ image/x-xbitmap xbm
690
+ image/x-xpixmap xpm
691
+ image/x-xwindowdump xwd
692
+ message/rfc822 eml mime
693
+ model/iges igs iges
694
+ model/mesh msh mesh silo
695
+ model/vnd.collada+xml dae
696
+ model/vnd.dwf dwf
697
+ model/vnd.gdl gdl
698
+ model/vnd.gtw gtw
699
+ model/vnd.mts mts
700
+ model/vnd.vtu vtu
701
+ model/vrml wrl vrml
702
+ model/x3d+binary x3db x3dbz
703
+ model/x3d+vrml x3dv x3dvz
704
+ model/x3d+xml x3d x3dz
705
+ text/cache-manifest appcache manifest
706
+ text/calendar ics ifb
707
+ text/coffeescript coffee litcoffee
708
+ text/css css
709
+ text/csv csv
710
+ text/hjson hjson
711
+ text/html html htm shtml
712
+ text/jade jade
713
+ text/jsx jsx
714
+ text/less less
715
+ text/mathml mml
716
+ text/n3 n3
717
+ text/plain txt text conf def list log in ini
718
+ text/prs.lines.tag dsc
719
+ text/richtext rtx
720
+ text/sgml sgml sgm
721
+ text/stylus stylus styl
722
+ text/tab-separated-values tsv
723
+ text/troff t tr roff man me ms
724
+ text/turtle ttl
725
+ text/uri-list uri uris urls
726
+ text/vcard vcard
727
+ text/vnd.curl curl
728
+ text/vnd.curl.dcurl dcurl
729
+ text/vnd.curl.mcurl mcurl
730
+ text/vnd.curl.scurl scurl
731
+ text/vnd.fly fly
732
+ text/vnd.fmi.flexstor flx
733
+ text/vnd.graphviz gv
734
+ text/vnd.in3d.3dml 3dml
735
+ text/vnd.in3d.spot spot
736
+ text/vnd.sun.j2me.app-descriptor jad
737
+ text/vnd.wap.wml wml
738
+ text/vnd.wap.wmlscript wmls
739
+ text/vtt vtt
740
+ text/x-asm s asm
741
+ text/x-c c cc cxx cpp h hh dic
742
+ text/x-component htc
743
+ text/x-fortran f for f77 f90
744
+ text/x-handlebars-template hbs
745
+ text/x-java-source java
746
+ text/x-lua lua
747
+ text/x-markdown markdown md mkd
748
+ text/x-nfo nfo
749
+ text/x-opml opml
750
+ text/x-pascal p pas
751
+ text/x-processing pde
752
+ text/x-sass sass
753
+ text/x-scss scss
754
+ text/x-setext etx
755
+ text/x-sfv sfv
756
+ text/x-uuencode uu
757
+ text/x-vcalendar vcs
758
+ text/x-vcard vcf
759
+ text/yaml yaml yml
760
+ video/3gpp 3gp 3gpp
761
+ video/3gpp2 3g2
762
+ video/h261 h261
763
+ video/h263 h263
764
+ video/h264 h264
765
+ video/jpeg jpgv
766
+ video/jpm jpm jpgm
767
+ video/mj2 mj2 mjp2
768
+ video/mp2t ts
769
+ video/mp4 mp4 mp4v mpg4
770
+ video/mpeg mpeg mpg mpe m1v m2v
771
+ video/ogg ogv
772
+ video/quicktime qt mov
773
+ video/vnd.dece.hd uvh uvvh
774
+ video/vnd.dece.mobile uvm uvvm
775
+ video/vnd.dece.pd uvp uvvp
776
+ video/vnd.dece.sd uvs uvvs
777
+ video/vnd.dece.video uvv uvvv
778
+ video/vnd.dvb.file dvb
779
+ video/vnd.fvt fvt
780
+ video/vnd.mpegurl mxu m4u
781
+ video/vnd.ms-playready.media.pyv pyv
782
+ video/vnd.uvvu.mp4 uvu uvvu
783
+ video/vnd.vivo viv
784
+ video/webm webm
785
+ video/x-f4v f4v
786
+ video/x-fli fli
787
+ video/x-flv flv
788
+ video/x-m4v m4v
789
+ video/x-matroska mkv mk3d mks
790
+ video/x-mng mng
791
+ video/x-ms-asf asf asx
792
+ video/x-ms-vob vob
793
+ video/x-ms-wm wm
794
+ video/x-ms-wmv wmv
795
+ video/x-ms-wmx wmx
796
+ video/x-ms-wvx wvx
797
+ video/x-msvideo avi
798
+ video/x-sgi-movie movie
799
+ video/x-smv smv
800
+ x-conference/x-cooltalk ice