diff --git a/lib/wheat/mime.js b/lib/wheat/mime.js new file mode 100644 index 0000000..d17cd57 --- /dev/null +++ b/lib/wheat/mime.js @@ -0,0 +1,187 @@ +var DEFAULT_MIME = 'application/octet-stream'; + +// Mini mime module for static file serving +var Mime = module.exports = { + + type: function getMime(path) { + var index = path.lastIndexOf("."); + if (index < 0) { + return DEFAULT_MIME; + } + var type = Mime.TYPES[path.substring(index).toLowerCase()] || DEFAULT_MIME; + return (/(text|javascript)/).test(type) ? type + "; charset=utf-8" : type; + }, + + TYPES: { + ".3gp" : "video/3gpp", + ".a" : "application/octet-stream", + ".ai" : "application/postscript", + ".aif" : "audio/x-aiff", + ".aiff" : "audio/x-aiff", + ".asc" : "application/pgp-signature", + ".asf" : "video/x-ms-asf", + ".asm" : "text/x-asm", + ".asx" : "video/x-ms-asf", + ".atom" : "application/atom+xml", + ".au" : "audio/basic", + ".avi" : "video/x-msvideo", + ".bat" : "application/x-msdownload", + ".bin" : "application/octet-stream", + ".bmp" : "image/bmp", + ".bz2" : "application/x-bzip2", + ".c" : "text/x-c", + ".cab" : "application/vnd.ms-cab-compressed", + ".cc" : "text/x-c", + ".chm" : "application/vnd.ms-htmlhelp", + ".class" : "application/octet-stream", + ".com" : "application/x-msdownload", + ".conf" : "text/plain", + ".cpp" : "text/x-c", + ".crt" : "application/x-x509-ca-cert", + ".css" : "text/css", + ".csv" : "text/csv", + ".cxx" : "text/x-c", + ".deb" : "application/x-debian-package", + ".der" : "application/x-x509-ca-cert", + ".diff" : "text/x-diff", + ".djv" : "image/vnd.djvu", + ".djvu" : "image/vnd.djvu", + ".dll" : "application/x-msdownload", + ".dmg" : "application/octet-stream", + ".doc" : "application/msword", + ".dot" : "application/msword", + ".dtd" : "application/xml-dtd", + ".dvi" : "application/x-dvi", + ".ear" : "application/java-archive", + ".eml" : "message/rfc822", + ".eps" : "application/postscript", + ".exe" : "application/x-msdownload", + ".f" : "text/x-fortran", + ".f77" : "text/x-fortran", + ".f90" : "text/x-fortran", + ".flv" : "video/x-flv", + ".for" : "text/x-fortran", + ".gem" : "application/octet-stream", + ".gemspec" : "text/x-script.ruby", + ".gif" : "image/gif", + ".gz" : "application/x-gzip", + ".h" : "text/x-c", + ".hh" : "text/x-c", + ".htm" : "text/html", + ".html" : "text/html", + ".ico" : "image/vnd.microsoft.icon", + ".ics" : "text/calendar", + ".ifb" : "text/calendar", + ".iso" : "application/octet-stream", + ".jar" : "application/java-archive", + ".java" : "text/x-java-source", + ".jnlp" : "application/x-java-jnlp-file", + ".jpeg" : "image/jpeg", + ".jpg" : "image/jpeg", + ".js" : "application/javascript", + ".json" : "application/json", + ".log" : "text/plain", + ".m3u" : "audio/x-mpegurl", + ".m4v" : "video/mp4", + ".man" : "text/troff", + ".mathml" : "application/mathml+xml", + ".mbox" : "application/mbox", + ".markdown" : "text/markdown", + ".md" : "text/markdown", + ".mdoc" : "text/troff", + ".me" : "text/troff", + ".mid" : "audio/midi", + ".midi" : "audio/midi", + ".mime" : "message/rfc822", + ".mml" : "application/mathml+xml", + ".mng" : "video/x-mng", + ".mov" : "video/quicktime", + ".mp3" : "audio/mpeg", + ".mp4" : "video/mp4", + ".mp4v" : "video/mp4", + ".mpeg" : "video/mpeg", + ".mpg" : "video/mpeg", + ".ms" : "text/troff", + ".msi" : "application/x-msdownload", + ".odp" : "application/vnd.oasis.opendocument.presentation", + ".ods" : "application/vnd.oasis.opendocument.spreadsheet", + ".odt" : "application/vnd.oasis.opendocument.text", + ".ogg" : "application/ogg", + ".p" : "text/x-pascal", + ".pas" : "text/x-pascal", + ".pbm" : "image/x-portable-bitmap", + ".pdf" : "application/pdf", + ".pem" : "application/x-x509-ca-cert", + ".pgm" : "image/x-portable-graymap", + ".pgp" : "application/pgp-encrypted", + ".pkg" : "application/octet-stream", + ".pl" : "text/x-script.perl", + ".pm" : "text/x-script.perl-module", + ".png" : "image/png", + ".pnm" : "image/x-portable-anymap", + ".ppm" : "image/x-portable-pixmap", + ".pps" : "application/vnd.ms-powerpoint", + ".ppt" : "application/vnd.ms-powerpoint", + ".ps" : "application/postscript", + ".psd" : "image/vnd.adobe.photoshop", + ".py" : "text/x-script.python", + ".qt" : "video/quicktime", + ".ra" : "audio/x-pn-realaudio", + ".rake" : "text/x-script.ruby", + ".ram" : "audio/x-pn-realaudio", + ".rar" : "application/x-rar-compressed", + ".rb" : "text/x-script.ruby", + ".rdf" : "application/rdf+xml", + ".roff" : "text/troff", + ".rpm" : "application/x-redhat-package-manager", + ".rss" : "application/rss+xml", + ".rtf" : "application/rtf", + ".ru" : "text/x-script.ruby", + ".s" : "text/x-asm", + ".sgm" : "text/sgml", + ".sgml" : "text/sgml", + ".sh" : "application/x-sh", + ".sig" : "application/pgp-signature", + ".snd" : "audio/basic", + ".so" : "application/octet-stream", + ".svg" : "image/svg+xml", + ".svgz" : "image/svg+xml", + ".swf" : "application/x-shockwave-flash", + ".t" : "text/troff", + ".tar" : "application/x-tar", + ".tbz" : "application/x-bzip-compressed-tar", + ".tci" : "application/x-topcloud", + ".tcl" : "application/x-tcl", + ".tex" : "application/x-tex", + ".texi" : "application/x-texinfo", + ".texinfo" : "application/x-texinfo", + ".text" : "text/plain", + ".tif" : "image/tiff", + ".tiff" : "image/tiff", + ".torrent" : "application/x-bittorrent", + ".tr" : "text/troff", + ".ttf" : "application/x-font-ttf", + ".txt" : "text/plain", + ".vcf" : "text/x-vcard", + ".vcs" : "text/x-vcalendar", + ".vrml" : "model/vrml", + ".war" : "application/java-archive", + ".wav" : "audio/x-wav", + ".wma" : "audio/x-ms-wma", + ".wmv" : "video/x-ms-wmv", + ".wmx" : "video/x-ms-wmx", + ".wrl" : "model/vrml", + ".wsdl" : "application/wsdl+xml", + ".woff" : "applicaton/x-font-woff", + ".xbm" : "image/x-xbitmap", + ".xhtml" : "application/xhtml+xml", + ".xls" : "application/vnd.ms-excel", + ".xml" : "application/xml", + ".xpm" : "image/x-xpixmap", + ".xsl" : "application/xml", + ".xslt" : "application/xslt+xml", + ".yaml" : "text/yaml", + ".yml" : "text/yaml", + ".zip" : "application/zip" + } +}; diff --git a/lib/wheat/renderers.js b/lib/wheat/renderers.js index 09b83d8..b978ff4 100644 --- a/lib/wheat/renderers.js +++ b/lib/wheat/renderers.js @@ -5,7 +5,7 @@ var Git = require('./git'), Prettify = require('./prettify'), MD5 = require('./md5'), ChildProcess = require('child_process'), - Mime = require('connect/providers/static').mime, + Mime = require('./mime'), Step = require('./step'); // Execute a child process, feed it a buffer and get a new buffer filtered.