html5-boilerplate 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -41,7 +41,7 @@ Rails Installation
41
41
 
42
42
  public/javascripts/dd_belatedpng.js
43
43
  public/javascripts/jquery-1.4.2.min.js
44
- public/javascripts/modernizr-1.5.min.js
44
+ public/javascripts/modernizr-1.6.min.js
45
45
  public/javascripts/plugins.js
46
46
  public/javascripts/rails.js
47
47
  public/javascripts/profiling/charts.swf
@@ -53,6 +53,7 @@ Rails Installation
53
53
  config/initializers/compass.rb
54
54
  config/google.yml
55
55
  config/nginx.conf
56
+ config/mime.types
56
57
 
57
58
  The Scss files above will automatically get compiled to your Sass compilation directory:
58
59
 
@@ -105,7 +106,7 @@ If you omit them, be sure to edit your javascript and style tags accordingly in
105
106
 
106
107
  js/dd_belatedpng.js
107
108
  js/jquery-1.4.2.min.js
108
- js/modernizr-1.5.min.js
109
+ js/modernizr-1.6.min.js
109
110
  js/plugins.js
110
111
  js/profiling/charts.swf
111
112
  js/profiling/config.js
@@ -115,6 +116,7 @@ If you omit them, be sure to edit your javascript and style tags accordingly in
115
116
  .htaccess
116
117
  config.rb
117
118
  nginx.conf
119
+ mime.types
118
120
  web.config
119
121
 
120
122
  Run `compass watch my_project` and the SCSS files above will automatically
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
@@ -7,7 +7,7 @@ module Html5BoilerplateHelper
7
7
  haml_concat("<!--[if IE 7 ]> #{ tag(name, add_class('ie7', attrs), true) } <![endif]-->".html_safe)
8
8
  haml_concat("<!--[if IE 8 ]> #{ tag(name, add_class('ie8', attrs), true) } <![endif]-->".html_safe)
9
9
  haml_concat("<!--[if IE 9 ]> #{ tag(name, add_class('ie9', attrs), true) } <![endif]-->".html_safe)
10
- haml_concat("<!--[if (gt IE 9)|!(IE)]><!-->".html_safe)
10
+ haml_concat("<!--[if (gte IE 9)|!(IE)]><!-->".html_safe)
11
11
  haml_tag name, attrs do
12
12
  haml_concat("<!--<![endif]-->".html_safe)
13
13
  block.call
@@ -42,8 +42,7 @@
42
42
  }
43
43
 
44
44
  // Hide only visually, but have it available for screenreaders
45
- // www.webaim.org/techniques/css/invisiblecontent/
46
- // Solution from: j.mp/visuallyhidden - Thanks Jonathan Neal!
45
+ // www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden
47
46
  @mixin visually-hidden {
48
47
  position: absolute !important;
49
48
  clip: rect(1px 1px 1px 1px); // IE6, IE7
@@ -18,35 +18,26 @@
18
18
 
19
19
  //
20
20
  // print styles
21
- // inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/
21
+ // inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/
22
22
 
23
23
  @mixin media-print {
24
- * { background: transparent !important; color: #444 !important; text-shadow: none !important; }
25
-
24
+ * { background: transparent !important; color: black !important; text-shadow: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
26
25
  a, a:visited { color: #444 !important; text-decoration: underline; }
27
-
28
- a:after { content: " (" attr(href) ")"; }
29
-
30
- abbr:after { content: " (" attr(title) ")"; }
31
-
32
- .ir a:after { content: ""; } // Don't show links for images
33
-
26
+ a[href]:after { content: " (" attr(href) ")"; }
27
+ abbr[title]:after { content: " (" attr(title) ")"; }
28
+ .ir a:after { content: ""; } /* Don't show links for images */
34
29
  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
35
-
36
- thead { display: table-header-group; } // css-discuss.incutio.com/wiki/Printing_Tables
37
-
30
+ thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
38
31
  tr, img { page-break-inside: avoid; }
39
-
40
32
  @page { margin: 0.5cm; }
41
-
42
33
  p, h2, h3 { orphans: 3; widows: 3; }
43
-
44
34
  h2, h3{ page-break-after: avoid; }
45
35
  }
46
36
 
47
37
 
48
38
  //
49
39
  // Media queries for responsive design
40
+ // These follow after primary styles so they will successfully override.
50
41
  //
51
42
 
52
43
  @mixin media-orientation-portrait {
@@ -2,13 +2,13 @@
2
2
  // style.css contains a reset, font normalization and some base styles.
3
3
  //
4
4
  // credit is left where credit is due.
5
- // additionally, much inspiration was taken from these projects:
5
+ // much inspiration was taken from these projects:
6
6
  // yui.yahooapis.com/2.8.1/build/base/base.css
7
7
  // camendesign.com/design/
8
8
  // praegnanz.de/weblog/htmlcssjs-kickstart
9
9
  //
10
10
  // html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
11
- // v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark
11
+ // v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
12
12
  // html5doctor.com/html-5-reset-stylesheet/
13
13
  //
14
14
 
@@ -45,6 +45,8 @@ $list-left-margin: 1.8em !default;
45
45
  @include webkit-tap-highlight;
46
46
 
47
47
  @include ie-hacks;
48
+
49
+ @include no-nav-margins;
48
50
  }
49
51
 
50
52
  @mixin sub{
@@ -82,7 +84,7 @@ $list-left-margin: 1.8em !default;
82
84
 
83
85
  // hand cursor on clickable input elements
84
86
  @mixin hand-cursor-inputs {
85
- label, input[type=button], input[type=submit], button { cursor: pointer; }
87
+ label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
86
88
  }
87
89
 
88
90
  // webkit browsers add a 2px margin outside the chrome of form elements
@@ -119,3 +121,8 @@ $list-left-margin: 1.8em !default;
119
121
 
120
122
  .ie6 legend, .ie7 legend { margin-left: -7px; } // thnx ivannikolic!
121
123
  }
124
+
125
+ @mixin no-nav-margins {
126
+ // Remove margins for navigation lists
127
+ nav ul, nav li { margin: 0; }
128
+ }
@@ -6,14 +6,19 @@
6
6
  Remove this if you use the .htaccess
7
7
  %meta{ :content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible" }/
8
8
 
9
+ -# encoding must be specified within the first 512 bytes www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset
10
+
11
+ -# meta element for compatibility mode needs to be before all elements except title & meta msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx
12
+ -# Chrome Frame is only invoked if meta element for compatibility mode is within the first 1K bytes code.google.com/p/chromium/issues/detail?id=23003
13
+
9
14
  %title
10
15
  == #{ controller.controller_name.titleize } - #{ controller.action_name.titleize }
11
-
16
+
12
17
  %meta{ :content => "", :name => "description" }/
13
18
  %meta{ :content => "", :name => "author" }/
14
19
 
15
20
  -# Mobile viewport optimized: j.mp/bplateviewport
16
- %meta{ :content => "width=device-width; initial-scale=1.0", :name => "viewport" }/
21
+ %meta{ :content => "width=device-width, initial-scale=1.0", :name => "viewport" }/
17
22
 
18
23
  -# Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references
19
24
  -# %link{ :href => "/favicon.ico", :rel => "shortcut icon" }/
@@ -22,6 +27,6 @@
22
27
  = render :partial => 'layouts/stylesheets'
23
28
 
24
29
  -# All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects
25
- = javascript_include_tag 'modernizr-1.5.min'
30
+ = javascript_include_tag 'modernizr-1.6.min'
26
31
 
27
32
  = csrf_meta_tag
@@ -1,11 +1,11 @@
1
1
  -# Grab Google CDN's jQuery
2
2
  -# Looks for google_api_key first in ENV['GOOGLE_API_KEY'] then in config/google.yml
3
3
  - if !google_api_key.blank?
4
- = javascript_include_tag "http://www.google.com/jsapi?key=#{google_api_key}"
4
+ = javascript_include_tag "//www.google.com/jsapi?key=#{google_api_key}"
5
5
  :javascript
6
6
  google.load("jquery", "1.4.2");
7
7
  - else
8
- = javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
8
+ = javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
9
9
 
10
10
  -# fall back to local jQuery if necessary
11
11
  :javascript
@@ -14,9 +14,8 @@
14
14
  = javascript_include_tag 'rails', 'plugins', 'application'
15
15
 
16
16
  /[if lt IE 7 ]
17
- = javascript_include_tag 'dd_belatedpng'
18
17
  :javascript
19
- DD_belatedPNG.fix('img, .png_bg');
18
+ $.getScript("/javascripts/dd_belatedpng.js",function(){ DD_belatedPNG.fix('img, .png_bg'); });
20
19
 
21
20
  -# Append your own using content_for :javascripts
22
21
  = yield :javascripts
@@ -1,16 +1,25 @@
1
1
  <?xml version="1.0"?>
2
- <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
2
+ <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
3
3
  <cross-domain-policy>
4
- <!--
5
- If you host a crossdomain.xml file with allow-access-from domain=“*”
6
- and don’t understand all of the points described here, you probably
7
- have a nasty security vulnerability. ~ simon willison
8
-
9
- Please read: www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html
10
-
11
- <allow-access-from domain="*" to-ports="*" />
12
-
13
- -->
14
- </cross-domain-policy>
4
+
5
+
6
+ <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
15
7
 
8
+ <!-- Most restrictive policy: -->
9
+ <site-control permitted-cross-domain-policies="none"/>
10
+
11
+
12
+
13
+ <!-- Least restrictive policy: -->
14
+ <!--
15
+ <site-control permitted-cross-domain-policies="all"/>
16
+ <allow-access-from domain="*" to-ports="*" secure="false"/>
17
+ <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
18
+ -->
19
+ <!--
20
+ If you host a crossdomain.xml file with allow-access-from domain=“*”
21
+ and don’t understand all of the points described here, you probably
22
+ have a nasty security vulnerability. ~ simon willison
23
+ -->
16
24
 
25
+ </cross-domain-policy>
@@ -1,6 +1,9 @@
1
1
  # Apache configuration file
2
2
  # httpd.apache.org/docs/2.2/mod/quickreference.html
3
3
 
4
+ # Note .htaccess files are an overhead, this logic should be in your Apache config if possible
5
+ # httpd.apache.org/docs/2.2/howto/htaccess.html
6
+
4
7
  # Techniques in here adapted from all over, including:
5
8
  # Kroc Camen: camendesign.com/.htaccess
6
9
  # perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
@@ -23,11 +26,12 @@
23
26
  # Cache control is set only if mod_headers is enabled, so that's unncessary to declare
24
27
  </IfModule>
25
28
 
26
- # hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
27
- # Disabled. Uncomment to serve cross-domain ajax requests
28
- #<IfModule mod_headers.c>
29
- # Header set Access-Control-Allow-Origin "*"
30
- #</IfModule>
29
+ # Serve cross-domain ajax requests, disabled.
30
+ # enable-cors.org
31
+ # code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
32
+ # <IfModule mod_headers.c>
33
+ # Header set Access-Control-Allow-Origin "*"
34
+ # </IfModule>
31
35
 
32
36
 
33
37
 
@@ -43,30 +47,40 @@
43
47
  </FilesMatch>
44
48
 
45
49
 
50
+ # audio
51
+ AddType audio/ogg oga ogg
52
+
46
53
  # video
47
- AddType video/ogg ogg ogv
48
- AddType video/mp4 mp4
49
- AddType video/webm webm
54
+ AddType video/ogg ogv
55
+ AddType video/mp4 mp4
56
+ AddType video/webm webm
50
57
 
51
58
  # Proper svg serving. Required for svg webfonts on iPad
52
59
  # twitter.com/FontSquirrel/status/14855840545
53
- AddType image/svg+xml svg svgz
54
- AddEncoding gzip svgz
55
-
56
- # webfonts
57
- AddType application/vnd.ms-fontobject eot
58
- AddType font/truetype ttf
59
- AddType font/opentype otf
60
- AddType font/woff woff
60
+ AddType image/svg+xml svg svgz
61
+ AddEncoding gzip svgz
62
+
63
+ # webfonts
64
+ AddType application/vnd.ms-fontobject eot
65
+ AddType font/truetype ttf
66
+ AddType font/opentype otf
67
+ AddType font/woff woff
68
+
69
+ # assorted types
70
+ AddType image/vnd.microsoft.icon ico
71
+ AddType image/webp webp
72
+ AddType text/cache-manifest manifest
73
+ AddType text/x-component htc
74
+ AddType application/x-chrome-extension crx
75
+ AddType application/x-xpinstall xpi
76
+ AddType application/octet-stream safariextz
61
77
 
62
- AddType text/cache-manifest manifest
63
- AddType text/x-component htc
64
78
 
65
79
 
66
80
  # allow concatenation from within specific js and css files
67
81
 
68
82
  # e.g. Inside of script.combined.js you could have
69
- # <!--#include file="jquery-1.4.2.js" -->
83
+ # <!--#include file="jquery-1.4.4.js" -->
70
84
  # <!--#include file="jquery.idletimer.js" -->
71
85
  # and they would be included into this single file
72
86
 
@@ -88,8 +102,20 @@ AddType text/x-component htc
88
102
  <IfModule mod_deflate.c>
89
103
 
90
104
  # html, txt, css, js, json, xml, htc:
91
- AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/json
105
+ <IfModule filter_module>
106
+ FilterDeclare COMPRESS
107
+ FilterProvider COMPRESS DEFLATE resp=Content-Type /text/(html|css|javascript|plain|x(ml|-component))/
108
+ FilterProvider COMPRESS DEFLATE resp=Content-Type /application/(javascript|json|xml|x-javascript)/
109
+ FilterChain COMPRESS
110
+ FilterProtocol COMPRESS change=yes;byteranges=no
111
+ </IfModule>
112
+
113
+ <IfModule !mod_filter.c>
114
+ # Legacy versions of Apache
115
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
116
+ AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
92
117
  AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
118
+ </IfModule>
93
119
 
94
120
  # webfonts and svg:
95
121
  <FilesMatch "\.(ttf|otf|eot|svg)$" >
@@ -109,7 +135,6 @@ AddType text/x-component htc
109
135
  # "access plus 1 week" or so
110
136
 
111
137
  <IfModule mod_expires.c>
112
- Header set Cache-Control "public"
113
138
  ExpiresActive on
114
139
 
115
140
  # Perhaps better to whitelist expires rules? Perhaps.
@@ -154,6 +179,8 @@ AddType text/x-component htc
154
179
  ExpiresByType text/css "access plus 1 month"
155
180
  ExpiresByType application/javascript "access plus 1 month"
156
181
  ExpiresByType text/javascript "access plus 1 month"
182
+
183
+ Header append Cache-Control "public"
157
184
  </IfModule>
158
185
 
159
186
 
@@ -0,0 +1,149 @@
1
+ ############ Options you really have to take care of ####################
2
+
3
+ ## Run as an unpriveleged user
4
+ server.username = "www"
5
+ server.groupname = "www"
6
+
7
+ ## to help the rc.scripts
8
+ server.pid-file = "/var/run/lighttpd/lighttpd.pid"
9
+
10
+ ## A static document-root. For virtual hosting take a look at the
11
+ ## mod_simple_vhost module.
12
+ server.document-root = "/var/www/sites/go/here/"
13
+
14
+ ## modules to load
15
+ # at least mod_access and mod_accesslog should be loaded
16
+ server.modules = (
17
+ "mod_access",
18
+ "mod_accesslog",
19
+ "mod_redirect",
20
+ "mod_compress",
21
+ "mod_expire"
22
+ )
23
+
24
+ ### File uploads
25
+ # Make sure this folder exists and is writable to server.username
26
+ server.upload-dirs = ( "/tmp/lighttpd/uploads" )
27
+
28
+ ## where to send error-messages to
29
+ server.errorlog = "/var/log/lighttpd/error.log"
30
+
31
+ #### accesslog module
32
+ accesslog.filename = "/var/log/lighttpd/access.log"
33
+
34
+ ### compress module
35
+ # Make sure this folder exists and is writable to server.username
36
+ compress.cache-dir = "/tmp/lighttpd/compress/"
37
+ compress.filetype = (
38
+ "text/plain",
39
+ "text/html",
40
+ "text/css",
41
+ "application/json",
42
+ "text/javascript",
43
+ "application/javascript",
44
+ "application/x-javascript",
45
+ "text/xml",
46
+ "application/xml",
47
+ "application/xml-rss",
48
+ "text/x-component",
49
+ )
50
+
51
+ # files to check for if .../ is requested
52
+ index-file.names = (
53
+ "index.html",
54
+ "index.htm",
55
+ )
56
+
57
+ ## set the event-handler (read the performance section in the manual)
58
+ # server.event-handler = "freebsd-kqueue" # needed on OS X
59
+
60
+ # mimetype mapping
61
+ mimetype.assign = (
62
+ ".pdf" => "application/pdf",
63
+ ".sig" => "application/pgp-signature",
64
+ ".spl" => "application/futuresplash",
65
+ ".class" => "application/octet-stream",
66
+ ".safariextz" => "application/octet-stream",
67
+ ".ps" => "application/postscript",
68
+ ".torrent" => "application/x-bittorrent",
69
+ ".crx" => "application/x-chrome-extension",
70
+ ".dvi" => "application/x-dvi",
71
+ ".gz" => "application/x-gzip",
72
+ ".pac" => "application/x-ns-proxy-autoconfig",
73
+ ".swf" => "application/x-shockwave-flash",
74
+ ".tar.gz" => "application/x-tgz",
75
+ ".tgz" => "application/x-tgz",
76
+ ".tar" => "application/x-tar",
77
+ ".xpi" => "application/x-xpinstall",
78
+ ".zip" => "application/zip",
79
+ ".mp3" => "audio/mpeg",
80
+ ".m3u" => "audio/x-mpegurl",
81
+ ".wma" => "audio/x-ms-wma",
82
+ ".wax" => "audio/x-ms-wax",
83
+ ".ogg" => "application/ogg",
84
+ ".wav" => "audio/x-wav",
85
+ ".gif" => "image/gif",
86
+ ".jar" => "application/x-java-archive",
87
+ ".jpg" => "image/jpeg",
88
+ ".jpeg" => "image/jpeg",
89
+ ".png" => "image/png",
90
+ ".xbm" => "image/x-xbitmap",
91
+ ".xpm" => "image/x-xpixmap",
92
+ ".xwd" => "image/x-xwindowdump",
93
+ ".css" => "text/css",
94
+ ".html" => "text/html",
95
+ ".htm" => "text/html",
96
+ ".js" => "text/javascript",
97
+ ".json" => "text/javascript",
98
+ ".asc" => "text/plain",
99
+ ".c" => "text/plain",
100
+ ".cpp" => "text/plain",
101
+ ".log" => "text/plain",
102
+ ".conf" => "text/plain",
103
+ ".text" => "text/plain",
104
+ ".txt" => "text/plain",
105
+ ".dtd" => "text/xml",
106
+ ".xml" => "text/xml",
107
+ ".mpeg" => "video/mpeg",
108
+ ".mpg" => "video/mpeg",
109
+ ".mov" => "video/quicktime",
110
+ ".qt" => "video/quicktime",
111
+ ".avi" => "video/x-msvideo",
112
+ ".asf" => "video/x-ms-asf",
113
+ ".asx" => "video/x-ms-asf",
114
+ ".wmv" => "video/x-ms-wmv",
115
+ ".bz2" => "application/x-bzip",
116
+ ".tbz" => "application/x-bzip-compressed-tar",
117
+ ".tar.bz2" => "application/x-bzip-compressed-tar",
118
+
119
+
120
+
121
+ # default mime type
122
+ "" => "application/octet-stream",
123
+ )
124
+
125
+ ## deny access the file-extensions
126
+ #
127
+ # ~ is for backupfiles from vi, emacs, joe, ...
128
+ # .inc is often used for code includes which should in general not be part
129
+ # of the document-root
130
+ url.access-deny = ( "~", ".inc" )
131
+
132
+ $HTTP["url"] =~ "\.pdf$" {
133
+ server.range-requests = "disable"
134
+ }
135
+
136
+ ##
137
+ # which extensions should not be handle via static-file transfer
138
+ #
139
+ # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
140
+ static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
141
+
142
+ ## bind to all ips, or change to a specific ip
143
+ server.bind = "0.0.0.0"
144
+
145
+ # If its an asset, expires in a month from now
146
+ expire.url = (
147
+ "\.(ico|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)" => "access plus 10 years",
148
+ ".*" => "access plus 1 month"
149
+ )
@@ -0,0 +1,80 @@
1
+ types {
2
+ text/html html htm shtml;
3
+ text/css css;
4
+ text/xml xml rss;
5
+ image/gif gif;
6
+ image/jpeg jpeg jpg;
7
+ application/x-javascript js;
8
+ application/atom+xml atom;
9
+
10
+ text/cache-manifest manifest;
11
+ text/mathml mml;
12
+ text/plain txt;
13
+ text/vnd.sun.j2me.app-descriptor jad;
14
+ text/vnd.wap.wml wml;
15
+ text/x-component htc;
16
+
17
+ image/png png;
18
+ image/svg+xml svg svgz;
19
+ image/tiff tif tiff;
20
+ image/vnd.wap.wbmp wbmp;
21
+ image/webp webp;
22
+ image/vnd.microsoft.icon ico;
23
+ image/x-jng jng;
24
+ image/x-ms-bmp bmp;
25
+
26
+ application/java-archive jar war ear;
27
+ application/mac-binhex40 hqx;
28
+ application/msword doc;
29
+ application/pdf pdf;
30
+ application/postscript ps eps ai;
31
+ application/rtf rtf;
32
+ application/vnd.ms-excel xls;
33
+ application/vnd.ms-powerpoint ppt;
34
+ application/vnd.wap.wmlc wmlc;
35
+ application/vnd.wap.xhtml+xml xhtml;
36
+ application/x-chrome-extension crx;
37
+ application/x-cocoa cco;
38
+ application/x-java-archive-diff jardiff;
39
+ application/x-java-jnlp-file jnlp;
40
+ application/x-makeself run;
41
+ application/x-perl pl pm;
42
+ application/x-pilot prc pdb;
43
+ application/x-rar-compressed rar;
44
+ application/x-redhat-package-manager rpm;
45
+ application/x-sea sea;
46
+ application/x-shockwave-flash swf;
47
+ application/x-stuffit sit;
48
+ application/x-tcl tcl tk;
49
+ application/x-x509-ca-cert der pem crt;
50
+ application/x-xpinstall xpi;
51
+ application/zip zip;
52
+
53
+ application/octet-stream bin exe dll;
54
+ application/octet-stream deb;
55
+ application/octet-stream dmg;
56
+ application/octet-stream iso img;
57
+ application/octet-stream msi msp msm;
58
+ application/octet-stream safariextz
59
+
60
+ audio/midi mid midi kar;
61
+ audio/mpeg mp3;
62
+ audio/x-realaudio ra;
63
+ audio/ogg oga ogg;
64
+
65
+ video/3gpp 3gpp 3gp;
66
+ video/mpeg mpeg mpg;
67
+ video/ogg ogv;
68
+ video/quicktime mov;
69
+ video/webm webm;
70
+ video/x-flv flv;
71
+ video/x-mng mng;
72
+ video/x-ms-asf asx asf;
73
+ video/x-ms-wmv wmv;
74
+ video/x-msvideo avi;
75
+
76
+ application/vnd.ms-fontobject eot;
77
+ font/truetype ttf;
78
+ font/opentype otf;
79
+ font/woff woff;
80
+ }
@@ -1,68 +1,108 @@
1
+ # Set another default user than root for security reasons
1
2
  user www www;
2
- worker_processes 5;
3
- error_log logs/error.log;
4
- pid logs/nginx.pid;
3
+
4
+ # As a thumb rule: One per CPU. If you are serving a large amount
5
+ # of static files, which requires blocking disk reads, you may want
6
+ # to increase this from the number of cpu_cores available on your
7
+ # system.
8
+ #
9
+ # The maximum number of connections for Nginx is calculated by:
10
+ # max_clients = worker_processes * worker_connections
11
+ worker_processes 1;
12
+
13
+ # Maximum file descriptors that can be opened per process
14
+ # This should be > worker_connections
5
15
  worker_rlimit_nofile 8192;
6
16
 
7
17
  events {
8
- worker_connections 4096;
18
+ # When you need > 8000 * cpu_cores connections, you start optimizing
19
+ # your OS, and this is probably the point at where you hire people
20
+ # who are smarter than you, this is *a lot* of requests.
21
+ worker_connections 8000;
22
+
23
+ # This sets up some smart queueing for accept(2)'ing requests
24
+ # Set it to "on" if you have > worker_processes
25
+ accept_mutex off;
26
+
27
+ # These settings are OS specific, by defualt Nginx uses select(2),
28
+ # however, for a large number of requests epoll(2) and kqueue(2)
29
+ # are generally faster than the default (select(2))
30
+ # use epoll; # enable for Linux 2.6+
31
+ # use kqueue; # enable for *BSD (FreeBSD, OS X, ..)
9
32
  }
10
33
 
34
+ # Change these paths to somewhere that suits you!
35
+ error_log logs/error.log;
36
+ pid logs/nginx.pid;
37
+
11
38
  http {
39
+ # Set the mime-types
12
40
  include mime.types;
41
+
42
+ # And the fallback mime-type
13
43
  default_type application/octet-stream;
44
+
45
+ # Format for our log files
14
46
  log_format main '$remote_addr - $remote_user [$time_local] $status '
15
47
  '"$request" $body_bytes_sent "$http_referer" '
16
48
  '"$http_user_agent" "$http_x_forwarded_for"';
49
+
50
+ # Click tracking!
17
51
  access_log logs/access.log main;
18
52
 
19
- keepalive_timeout 65;
53
+ # ~2 seconds is often enough for HTML/CSS, but connections in
54
+ # Nginx are cheap, so generally it's safe to increase it
55
+ keepalive_timeout 5;
20
56
 
57
+ # You usually want to serve static files with Nginx
21
58
  sendfile on;
22
- tcp_nopush on;
23
- tcp_nodelay off;
24
59
 
60
+ tcp_nopush on; # off may be better for Comet/long-poll stuff
61
+ tcp_nodelay off; # on may be better for Comet/long-poll stuff
62
+
63
+ # Enable Gzip
25
64
  gzip on;
26
65
  gzip_http_version 1.0;
27
66
  gzip_comp_level 2;
28
67
  gzip_min_length 1100;
29
68
  gzip_buffers 4 8k;
30
69
  gzip_proxied any;
31
- gzip_types text/html text/plain text/xml application/xml application/xml+rss text/css text/javascript application/javascript application/json;
70
+ gzip_types text/plain text/xml application/xml application/xml+rss text/css text/javascript application/javascript application/json;
32
71
 
33
72
  gzip_static on;
34
-
73
+
35
74
  gzip_proxied expired no-cache no-store private auth;
36
75
  gzip_disable "MSIE [1-6]\.";
37
76
  gzip_vary on;
38
77
 
39
78
  server {
40
- listen 80 default deferred;
41
- server_name example.com;
42
- expires 1M;
79
+ # listen 80 default deferred; # for Linux
80
+ # listen 80 default accept_filter=httpready; # for FreeBSD
81
+ listen 80 default;
43
82
 
83
+ # e.g. "localhost" to accept all connections, or "www.example.com"
84
+ # to handle the requests for "example.com" (and www.example.com)
85
+ server_name _;
86
+
87
+ # Path for static files
44
88
  root /sites/example.com/public;
45
89
 
46
- #static assets
47
- location ~* ^.+\.(manifest)$ {
48
- expires -1D;
90
+ expires 1M;
91
+
92
+ # Static assets
93
+ location ~* ^.+\.(manifest)$ {
94
+ expires -1;
49
95
  root /sites/example.com/public;
50
96
  access_log logs/static.log;
51
97
  }
98
+
52
99
  location ~* ^.+\.(ico|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
53
- # only set expires max IFF the file is a static file and exists
100
+ # Only set expires max IFF the file is a static file and exists
54
101
  if (-f $request_filename) {
55
102
  expires max;
56
103
  root /sites/example.com/public;
57
104
  access_log logs/static.log;
58
105
  }
59
106
  }
60
-
61
- }
62
- server {
63
- server_name www.example.com;
64
- rewrite ^(.*) http://example.com$1 permanent;
65
107
  }
66
-
67
108
  }
68
-
@@ -144,6 +144,9 @@
144
144
  <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
145
145
  <mimeMap fileExtension=".otf" mimeType="font/otf" />
146
146
  <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
147
+ <mimeMap fileExtension=".crx" mimeType="application/x-chrome-extension" />
148
+ <mimeMap fileExtension=".xpi" mimeType="application/x-xpinstall" />
149
+ <mimeMap fileExtension=".safariextz" mimeType="application/octet-stream" />
147
150
 
148
151
  </staticContent>
149
152
  <httpProtocol>
@@ -4,7 +4,7 @@
4
4
  <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
5
5
  <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
6
6
  <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
7
- <!--[if (gt IE 9)|!(IE)]><!-->
7
+ <!--[if (gte IE 9)|!(IE)]><!-->
8
8
  %html.no-js{ :lang => "en" }
9
9
  <!--<![endif]-->
10
10
  %head
@@ -15,12 +15,17 @@
15
15
  Remove this if you use the .htaccess
16
16
  %meta{ :content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible" }/
17
17
 
18
+ -# encoding must be specified within the first 512 bytes www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset
19
+
20
+ -# meta element for compatibility mode needs to be before all elements except title & meta msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx
21
+ -# Chrome Frame is only invoked if meta element for compatibility mode is within the first 1K bytes code.google.com/p/chromium/issues/detail?id=23003
22
+
18
23
  %title
19
24
  %meta{ :content => "", :name => "description" }/
20
25
  %meta{ :content => "", :name => "author" }/
21
26
 
22
27
  -# Mobile viewport optimized: j.mp/bplateviewport
23
- %meta{ :content => "width=device-width; initial-scale=1.0", :name => "viewport" }/
28
+ %meta{ :content => "width=device-width, initial-scale=1.0", :name => "viewport" }/
24
29
 
25
30
  -# Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references
26
31
  -# %link{ :href => "/favicon.ico", :rel => "shortcut icon" }/
@@ -33,7 +38,7 @@
33
38
  -# %link{ :href => "css/handheld.css?v=1", :media => "handheld", :rel => "stylesheet" }/
34
39
 
35
40
  -# All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects
36
- %script{ :src => "js/modernizr-1.5.min.js" }
41
+ %script{ :src => "js/modernizr-1.6.min.js" }
37
42
 
38
43
  %body
39
44
  #container
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Modernizr v1.6
3
+ * http://www.modernizr.com
4
+ *
5
+ * Developed by:
6
+ * - Faruk Ates http://farukat.es/
7
+ * - Paul Irish http://paulirish.com/
8
+ *
9
+ * Copyright (c) 2009-2010
10
+ * Dual-licensed under the BSD or MIT licenses.
11
+ * http://www.modernizr.com/license/
12
+ */
13
+ window.Modernizr=function(i,e,u){function s(a,b){return(""+a).indexOf(b)!==-1}function D(a,b){for(var c in a)if(j[a[c]]!==u&&(!b||b(a[c],E)))return true}function n(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1);c=(a+" "+F.join(c+" ")+c).split(" ");return!!D(c,b)}function S(){f.input=function(a){for(var b=0,c=a.length;b<c;b++)L[a[b]]=!!(a[b]in h);return L}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));f.inputtypes=function(a){for(var b=0,c,k=a.length;b<
14
+ k;b++){h.setAttribute("type",a[b]);if(c=h.type!=="text"){h.value=M;if(/^range$/.test(h.type)&&h.style.WebkitAppearance!==u){l.appendChild(h);c=e.defaultView;c=c.getComputedStyle&&c.getComputedStyle(h,null).WebkitAppearance!=="textfield"&&h.offsetHeight!==0;l.removeChild(h)}else/^(search|tel)$/.test(h.type)||(c=/^(url|email)$/.test(h.type)?h.checkValidity&&h.checkValidity()===false:h.value!=M)}N[a[b]]=!!c}return N}("search tel url email datetime date month week time datetime-local number range color".split(" "))}
15
+ var f={},l=e.documentElement,E=e.createElement("modernizr"),j=E.style,h=e.createElement("input"),M=":)",O=Object.prototype.toString,q=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),F="Webkit Moz O ms Khtml".split(" "),v={svg:"http://www.w3.org/2000/svg"},d={},N={},L={},P=[],w,Q=function(a){var b=document.createElement("style"),c=e.createElement("div");b.textContent=a+"{#modernizr{height:3px}}";(e.head||e.getElementsByTagName("head")[0]).appendChild(b);c.id="modernizr";l.appendChild(c);a=c.offsetHeight===
16
+ 3;b.parentNode.removeChild(b);c.parentNode.removeChild(c);return!!a},o=function(){var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return function(b,c){c=c||document.createElement(a[b]||"div");b="on"+b;var k=b in c;if(!k){c.setAttribute||(c=document.createElement("div"));if(c.setAttribute&&c.removeAttribute){c.setAttribute(b,"");k=typeof c[b]=="function";if(typeof c[b]!="undefined")c[b]=u;c.removeAttribute(b)}}return k}}(),G={}.hasOwnProperty,R;R=
17
+ typeof G!=="undefined"&&typeof G.call!=="undefined"?function(a,b){return G.call(a,b)}:function(a,b){return b in a&&typeof a.constructor.prototype[b]==="undefined"};d.flexbox=function(){var a=e.createElement("div"),b=e.createElement("div");(function(k,g,r,x){g+=":";k.style.cssText=(g+q.join(r+";"+g)).slice(0,-g.length)+(x||"")})(a,"display","box","width:42px;padding:0;");b.style.cssText=q.join("box-flex:1;")+"width:10px;";a.appendChild(b);l.appendChild(a);var c=b.offsetWidth===42;a.removeChild(b);
18
+ l.removeChild(a);return c};d.canvas=function(){var a=e.createElement("canvas");return!!(a.getContext&&a.getContext("2d"))};d.canvastext=function(){return!!(f.canvas&&typeof e.createElement("canvas").getContext("2d").fillText=="function")};d.webgl=function(){var a=e.createElement("canvas");try{if(a.getContext("webgl"))return true}catch(b){}try{if(a.getContext("experimental-webgl"))return true}catch(c){}return false};d.touch=function(){return"ontouchstart"in i||Q("@media ("+q.join("touch-enabled),(")+
19
+ "modernizr)")};d.geolocation=function(){return!!navigator.geolocation};d.postmessage=function(){return!!i.postMessage};d.websqldatabase=function(){return!!i.openDatabase};d.indexedDB=function(){for(var a=-1,b=F.length;++a<b;){var c=F[a].toLowerCase();if(i[c+"_indexedDB"]||i[c+"IndexedDB"])return true}return false};d.hashchange=function(){return o("hashchange",i)&&(document.documentMode===u||document.documentMode>7)};d.history=function(){return!!(i.history&&history.pushState)};d.draganddrop=function(){return o("drag")&&
20
+ o("dragstart")&&o("dragenter")&&o("dragover")&&o("dragleave")&&o("dragend")&&o("drop")};d.websockets=function(){return"WebSocket"in i};d.rgba=function(){j.cssText="background-color:rgba(150,255,150,.5)";return s(j.backgroundColor,"rgba")};d.hsla=function(){j.cssText="background-color:hsla(120,40%,100%,.5)";return s(j.backgroundColor,"rgba")||s(j.backgroundColor,"hsla")};d.multiplebgs=function(){j.cssText="background:url(//:),url(//:),red url(//:)";return/(url\s*\(.*?){3}/.test(j.background)};d.backgroundsize=
21
+ function(){return n("backgroundSize")};d.borderimage=function(){return n("borderImage")};d.borderradius=function(){return n("borderRadius","",function(a){return s(a,"orderRadius")})};d.boxshadow=function(){return n("boxShadow")};d.textshadow=function(){return e.createElement("div").style.textShadow===""};d.opacity=function(){var a=q.join("opacity:.5;")+"";j.cssText=a;return s(j.opacity,"0.5")};d.cssanimations=function(){return n("animationName")};d.csscolumns=function(){return n("columnCount")};d.cssgradients=
22
+ function(){var a=("background-image:"+q.join("gradient(linear,left top,right bottom,from(#9f9),to(white));background-image:")+q.join("linear-gradient(left top,#9f9, white);background-image:")).slice(0,-17);j.cssText=a;return s(j.backgroundImage,"gradient")};d.cssreflections=function(){return n("boxReflect")};d.csstransforms=function(){return!!D(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])};d.csstransforms3d=function(){var a=!!D(["perspectiveProperty","WebkitPerspective",
23
+ "MozPerspective","OPerspective","msPerspective"]);if(a)a=Q("@media ("+q.join("transform-3d),(")+"modernizr)");return a};d.csstransitions=function(){return n("transitionProperty")};d.fontface=function(){var a,b=e.head||e.getElementsByTagName("head")[0]||l,c=e.createElement("style"),k=e.implementation||{hasFeature:function(){return false}};c.type="text/css";b.insertBefore(c,b.firstChild);a=c.sheet||c.styleSheet;b=k.hasFeature("CSS2","")?function(g){if(!(a&&g))return false;var r=false;try{a.insertRule(g,
24
+ 0);r=!/unknown/i.test(a.cssRules[0].cssText);a.deleteRule(a.cssRules.length-1)}catch(x){}return r}:function(g){if(!(a&&g))return false;a.cssText=g;return a.cssText.length!==0&&!/unknown/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(g.split(" ")[0])===0};f._fontfaceready=function(g){g(f.fontface)};return b('@font-face { font-family: "font"; src: "font.ttf"; }')};d.video=function(){var a=e.createElement("video"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('video/ogg; codecs="theora"');
25
+ b.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"')||a.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');b.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return b};d.audio=function(){var a=e.createElement("audio"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('audio/ogg; codecs="vorbis"');b.mp3=a.canPlayType("audio/mpeg;");b.wav=a.canPlayType('audio/wav; codecs="1"');b.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")}return b};d.localstorage=function(){try{return"localStorage"in
26
+ i&&i.localStorage!==null}catch(a){return false}};d.sessionstorage=function(){try{return"sessionStorage"in i&&i.sessionStorage!==null}catch(a){return false}};d.webWorkers=function(){return!!i.Worker};d.applicationcache=function(){return!!i.applicationCache};d.svg=function(){return!!e.createElementNS&&!!e.createElementNS(v.svg,"svg").createSVGRect};d.inlinesvg=function(){var a=document.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==v.svg};d.smil=function(){return!!e.createElementNS&&
27
+ /SVG/.test(O.call(e.createElementNS(v.svg,"animate")))};d.svgclippaths=function(){return!!e.createElementNS&&/SVG/.test(O.call(e.createElementNS(v.svg,"clipPath")))};for(var H in d)if(R(d,H)){w=H.toLowerCase();f[w]=d[H]();P.push((f[w]?"":"no-")+w)}f.input||S();f.crosswindowmessaging=f.postmessage;f.historymanagement=f.history;f.addTest=function(a,b){a=a.toLowerCase();if(!f[a]){b=!!b();l.className+=" "+(b?"":"no-")+a;f[a]=b;return f}};j.cssText="";E=h=null;i.attachEvent&&function(){var a=e.createElement("div");
28
+ a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function c(p){for(var m=-1;++m<r;)p.createElement(g[m])}function k(p,m){for(var I=p.length,t=-1,y,J=[];++t<I;){y=p[t];m=y.media||m;J.push(k(y.imports,m));J.push(y.cssText)}return J.join("")}var g="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video".split("|"),r=g.length,x=RegExp("<(/*)(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video)",
29
+ "gi"),T=RegExp("\\b(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video)\\b(?!.*[;}])","gi"),z=b.createDocumentFragment(),A=b.documentElement,K=A.firstChild,B=b.createElement("style"),C=b.createElement("body");B.media="all";c(b);c(z);a.attachEvent("onbeforeprint",function(){for(var p=-1;++p<r;)for(var m=b.getElementsByTagName(g[p]),I=m.length,t=-1;++t<I;)if(m[t].className.indexOf("iepp_")<0)m[t].className+=" iepp_"+
30
+ g[p];K.insertBefore(B,K.firstChild);B.styleSheet.cssText=k(b.styleSheets,"all").replace(T,".iepp_$1");z.appendChild(b.body);A.appendChild(C);C.innerHTML=z.firstChild.innerHTML.replace(x,"<$1bdo")});a.attachEvent("onafterprint",function(){C.innerHTML="";A.removeChild(C);K.removeChild(B);A.appendChild(z.firstChild)})}(this,document);f._enableHTML5=true;f._version="1.6";l.className=l.className.replace(/\bno-js\b/,"")+" js";l.className+=" "+P.join(" ");return f}(this,this.document);
@@ -16,9 +16,10 @@ if Compass.configuration.project_type == :rails
16
16
  file '_stylesheets.html.haml', :to => 'app/views/layouts/_stylesheets.html.haml'
17
17
  file 'files/google.yml', :to => 'config/google.yml'
18
18
  file 'files/nginx.conf', :to => 'config/nginx.conf'
19
+ file 'files/mime.types', :to => 'config/mime.types'
19
20
  javascript 'javascripts/dd_belatedpng.js', :to => 'dd_belatedpng.js'
20
21
  javascript 'javascripts/jquery-1.4.2.min.js', :to => 'jquery-1.4.2.min.js'
21
- javascript 'javascripts/modernizr-1.5.min.js', :to => 'modernizr-1.5.min.js'
22
+ javascript 'javascripts/modernizr-1.6.min.js', :to => 'modernizr-1.6.min.js'
22
23
  javascript 'javascripts/plugins.js', :to => 'plugins.js'
23
24
  javascript 'javascripts/rails.js', :to => 'rails.js'
24
25
  javascript 'javascripts/profiling/charts.swf', :to => 'profiling/charts.swf'
@@ -28,10 +29,11 @@ if Compass.configuration.project_type == :rails
28
29
  else
29
30
  html 'index.html.haml'
30
31
  file 'files/nginx.conf', :to => 'nginx.conf'
32
+ file 'files/mime.types', :to => 'mime.types'
31
33
  file 'files/web.config', :to => 'web.config'
32
34
  javascript 'javascripts/dd_belatedpng.js', :to => 'dd_belatedpng.js'
33
35
  javascript 'javascripts/jquery-1.4.2.min.js', :to => 'jquery-1.4.2.min.js'
34
- javascript 'javascripts/modernizr-1.5.min.js', :to => 'modernizr-1.5.min.js'
36
+ javascript 'javascripts/modernizr-1.6.min.js', :to => 'modernizr-1.6.min.js'
35
37
  javascript 'javascripts/plugins.js', :to => 'plugins.js'
36
38
  javascript 'javascripts/profiling/charts.swf', :to => 'profiling/charts.swf'
37
39
  javascript 'javascripts/profiling/config.js', :to => 'profiling/config.js'
@@ -43,6 +43,8 @@ sup { @include sup; }
43
43
 
44
44
  @include ie-hacks;
45
45
 
46
+ @include no-nav-margins;
47
+
46
48
 
47
49
  //--------------------------------
48
50
  // Helpers
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 4
9
- version: 0.2.4
8
+ - 5
9
+ version: 0.2.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Peter Gumeson
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-08 00:00:00 -07:00
17
+ date: 2010-11-19 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -66,6 +66,8 @@ files:
66
66
  - templates/project/files/crossdomain.xml
67
67
  - templates/project/files/favicon.ico
68
68
  - templates/project/files/google.yml
69
+ - templates/project/files/lighttpd.conf
70
+ - templates/project/files/mime.types
69
71
  - templates/project/files/nginx.conf
70
72
  - templates/project/files/robots.txt
71
73
  - templates/project/files/web.config
@@ -73,7 +75,7 @@ files:
73
75
  - templates/project/index.html.haml
74
76
  - templates/project/javascripts/dd_belatedpng.js
75
77
  - templates/project/javascripts/jquery-1.4.2.min.js
76
- - templates/project/javascripts/modernizr-1.5.min.js
78
+ - templates/project/javascripts/modernizr-1.6.min.js
77
79
  - templates/project/javascripts/plugins.js
78
80
  - templates/project/javascripts/profiling/charts.swf
79
81
  - templates/project/javascripts/profiling/config.js
@@ -1,28 +0,0 @@
1
- /*!
2
- * Modernizr JavaScript library 1.5
3
- * http://www.modernizr.com/
4
- *
5
- * Copyright (c) 2009-2010 Faruk Ates - http://farukat.es/
6
- * Dual-licensed under the BSD and MIT licenses.
7
- * http://www.modernizr.com/license/
8
- *
9
- * Featuring major contributions by
10
- * Paul Irish - http://paulirish.com
11
- */
12
- window.Modernizr=function(i,e,I){function C(a,b){for(var c in a)if(m[a[c]]!==I&&(!b||b(a[c],D)))return true}function r(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1);return!!C([a,"Webkit"+c,"Moz"+c,"O"+c,"ms"+c,"Khtml"+c],b)}function P(){j[E]=function(a){for(var b=0,c=a.length;b<c;b++)J[a[b]]=!!(a[b]in n);return J}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));j[Q]=function(a){for(var b=0,c,h=a.length;b<h;b++){n.setAttribute("type",a[b]);if(c=n.type!==
13
- "text"){n.value=K;/tel|search/.test(n.type)||(c=/url|email/.test(n.type)?n.checkValidity&&n.checkValidity()===false:n.value!=K)}L[a[b]]=!!c}return L}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var j={},s=e.documentElement,D=e.createElement("modernizr"),m=D.style,n=e.createElement("input"),E="input",Q=E+"types",K=":)",M=Object.prototype.toString,y=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),d={},L={},J={},N=[],u=function(){var a={select:"input",
14
- change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"},b={};return function(c,h){var t=arguments.length==1;if(t&&b[c])return b[c];h=h||document.createElement(a[c]||"div");c="on"+c;var g=c in h;if(!g&&h.setAttribute){h.setAttribute(c,"return;");g=typeof h[c]=="function"}h=null;return t?(b[c]=g):g}}(),F={}.hasOwnProperty,O;O=typeof F!=="undefined"&&typeof F.call!=="undefined"?function(a,b){return F.call(a,b)}:function(a,b){return b in a&&typeof a.constructor.prototype[b]==="undefined"};
15
- d.canvas=function(){return!!e.createElement("canvas").getContext};d.canvastext=function(){return!!(d.canvas()&&typeof e.createElement("canvas").getContext("2d").fillText=="function")};d.geolocation=function(){return!!navigator.geolocation};d.crosswindowmessaging=function(){return!!i.postMessage};d.websqldatabase=function(){var a=!!i.openDatabase;if(a)try{a=!!openDatabase("testdb","1.0","html5 test db",2E5)}catch(b){a=false}return a};d.indexedDB=function(){return!!i.indexedDB};d.hashchange=function(){return u("hashchange",
16
- i)&&(document.documentMode===I||document.documentMode>7)};d.historymanagement=function(){return!!(i.history&&history.pushState)};d.draganddrop=function(){return u("drag")&&u("dragstart")&&u("dragenter")&&u("dragover")&&u("dragleave")&&u("dragend")&&u("drop")};d.websockets=function(){return"WebSocket"in i};d.rgba=function(){m.cssText="background-color:rgba(150,255,150,.5)";return(""+m.backgroundColor).indexOf("rgba")!==-1};d.hsla=function(){m.cssText="background-color:hsla(120,40%,100%,.5)";return(""+
17
- m.backgroundColor).indexOf("rgba")!==-1};d.multiplebgs=function(){m.cssText="background:url(//:),url(//:),red url(//:)";return/(url\s*\(.*?){3}/.test(m.background)};d.backgroundsize=function(){return r("backgroundSize")};d.borderimage=function(){return r("borderImage")};d.borderradius=function(){return r("borderRadius","",function(a){return(""+a).indexOf("orderRadius")!==-1})};d.boxshadow=function(){return r("boxShadow")};d.opacity=function(){var a=y.join("opacity:.5;")+"";m.cssText=a;return(""+m.opacity).indexOf("0.5")!==
18
- -1};d.cssanimations=function(){return r("animationName")};d.csscolumns=function(){return r("columnCount")};d.cssgradients=function(){var a=("background-image:"+y.join("gradient(linear,left top,right bottom,from(#9f9),to(white));background-image:")+y.join("linear-gradient(left top,#9f9, white);background-image:")).slice(0,-17);m.cssText=a;return(""+m.backgroundImage).indexOf("gradient")!==-1};d.cssreflections=function(){return r("boxReflect")};d.csstransforms=function(){return!!C(["transformProperty",
19
- "WebkitTransform","MozTransform","OTransform","msTransform"])};d.csstransforms3d=function(){var a=!!C(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);if(a){var b=document.createElement("style"),c=e.createElement("div");b.textContent="@media ("+y.join("transform-3d),(")+"modernizr){#modernizr{height:3px}}";e.getElementsByTagName("head")[0].appendChild(b);c.id="modernizr";s.appendChild(c);a=c.offsetHeight===3;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}return a};
20
- d.csstransitions=function(){return r("transitionProperty")};d.fontface=function(){var a;if(/*@cc_on@if(@_jscript_version>=5)!@end@*/0)a=true;else{var b=e.createElement("style"),c=e.createElement("span"),h,t=false,g=e.body,o,w;b.textContent="@font-face{font-family:testfont;src:url('data:font/ttf;base64,AAEAAAAMAIAAAwBAT1MvMliohmwAAADMAAAAVmNtYXCp5qrBAAABJAAAANhjdnQgACICiAAAAfwAAAAEZ2FzcP//AAMAAAIAAAAACGdseWYv5OZoAAACCAAAANxoZWFk69bnvwAAAuQAAAA2aGhlYQUJAt8AAAMcAAAAJGhtdHgGDgC4AAADQAAAABRsb2NhAIQAwgAAA1QAAAAMbWF4cABVANgAAANgAAAAIG5hbWUgXduAAAADgAAABPVwb3N03NkzmgAACHgAAAA4AAECBAEsAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAACAAMDAAAAAAAAgAACbwAAAAoAAAAAAAAAAFBmRWQAAAAgqS8DM/8zAFwDMwDNAAAABQAAAAAAAAAAAAMAAAADAAAAHAABAAAAAABGAAMAAQAAAK4ABAAqAAAABgAEAAEAAgAuqQD//wAAAC6pAP///9ZXAwAAAAAAAAACAAAABgBoAAAAAAAvAAEAAAAAAAAAAAAAAAAAAAABAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEACoAAAAGAAQAAQACAC6pAP//AAAALqkA////1lcDAAAAAAAAAAIAAAAiAogAAAAB//8AAgACACIAAAEyAqoAAwAHAC6xAQAvPLIHBADtMrEGBdw8sgMCAO0yALEDAC88sgUEAO0ysgcGAfw8sgECAO0yMxEhESczESMiARDuzMwCqv1WIgJmAAACAFUAAAIRAc0ADwAfAAATFRQWOwEyNj0BNCYrASIGARQGKwEiJj0BNDY7ATIWFX8aIvAiGhoi8CIaAZIoN/43KCg3/jcoAWD0JB4eJPQkHh7++EY2NkbVRjY2RgAAAAABAEH/+QCdAEEACQAANjQ2MzIWFAYjIkEeEA8fHw8QDxwWFhwWAAAAAQAAAAIAAIuYbWpfDzz1AAsEAAAAAADFn9IuAAAAAMWf0i797/8zA4gDMwAAAAgAAgAAAAAAAAABAAADM/8zAFwDx/3v/98DiAABAAAAAAAAAAAAAAAAAAAABQF2ACIAAAAAAVUAAAJmAFUA3QBBAAAAKgAqACoAWgBuAAEAAAAFAFAABwBUAAQAAgAAAAEAAQAAAEAALgADAAMAAAAQAMYAAQAAAAAAAACLAAAAAQAAAAAAAQAhAIsAAQAAAAAAAgAFAKwAAQAAAAAAAwBDALEAAQAAAAAABAAnAPQAAQAAAAAABQAKARsAAQAAAAAABgAmASUAAQAAAAAADgAaAUsAAwABBAkAAAEWAWUAAwABBAkAAQBCAnsAAwABBAkAAgAKAr0AAwABBAkAAwCGAscAAwABBAkABABOA00AAwABBAkABQAUA5sAAwABBAkABgBMA68AAwABBAkADgA0A/tDb3B5cmlnaHQgMjAwOSBieSBEYW5pZWwgSm9obnNvbi4gIFJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgT3BlbiBGb250IExpY2Vuc2UuIEtheWFoIExpIGdseXBocyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEdQTCB2ZXJzaW9uIDMuYmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhTGlnaHRiYWVjMmE5MmJmZmU1MDMyIC0gc3Vic2V0IG9mIEZvbnRGb3JnZSAyLjAgOiBKdXJhIExpZ2h0IDogMjMtMS0yMDA5YmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhIExpZ2h0VmVyc2lvbiAyIGJhZWMyYTkyYmZmZTUwMzIgLSBzdWJzZXQgb2YgSnVyYUxpZ2h0aHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMAA5ACAAYgB5ACAARABhAG4AaQBlAGwAIABKAG8AaABuAHMAbwBuAC4AIAAgAFIAZQBsAGUAYQBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdABoAGUAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUALgAgAEsAYQB5AGEAaAAgAEwAaQAgAGcAbAB5AHAAaABzACAAYQByAGUAIAByAGUAbABlAGEAcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEcAUABMACAAdgBlAHIAcwBpAG8AbgAgADMALgBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQBMAGkAZwBoAHQAYgBhAGUAYwAyAGEAOQAyAGIAZgBmAGUANQAwADMAMgAgAC0AIABzAHUAYgBzAGUAdAAgAG8AZgAgAEYAbwBuAHQARgBvAHIAZwBlACAAMgAuADAAIAA6ACAASgB1AHIAYQAgAEwAaQBnAGgAdAAgADoAIAAyADMALQAxAC0AMgAwADAAOQBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQAgAEwAaQBnAGgAdABWAGUAcgBzAGkAbwBuACAAMgAgAGIAYQBlAGMAMgBhADkAMgBiAGYAZgBlADUAMAAzADIAIAAtACAAcwB1AGIAcwBlAHQAIABvAGYAIABKAHUAcgBhAEwAaQBnAGgAdABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAAAAAAgAAAAAAAP+BADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQACAQIAEQt6ZXJva2F5YWhsaQ==')}";
21
- e.getElementsByTagName("head")[0].appendChild(b);c.setAttribute("style","font:99px _,arial,helvetica;position:absolute;visibility:hidden");if(!g){g=s.appendChild(e.createElement("fontface"));t=true}c.innerHTML="........";c.id="fonttest";g.appendChild(c);h=c.offsetWidth*c.offsetHeight;c.style.font="99px testfont,_,arial,helvetica";a=h!==c.offsetWidth*c.offsetHeight;var v=function(){if(g.parentNode){a=j.fontface=h!==c.offsetWidth*c.offsetHeight;s.className=s.className.replace(/(no-)?fontface\b/,"")+
22
- (a?" ":" no-")+"fontface"}};setTimeout(v,75);setTimeout(v,150);addEventListener("load",function(){v();(w=true)&&o&&o(a);setTimeout(function(){t||(g=c);g.parentNode.removeChild(g);b.parentNode.removeChild(b)},50)},false)}j._fontfaceready=function(p){w||a?p(a):(o=p)};return a||h!==c.offsetWidth};d.video=function(){var a=e.createElement("video"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('video/ogg; codecs="theora"');b.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"');b.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return b};
23
- d.audio=function(){var a=e.createElement("audio"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('audio/ogg; codecs="vorbis"');b.mp3=a.canPlayType("audio/mpeg;");b.wav=a.canPlayType('audio/wav; codecs="1"');b.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")}return b};d.localStorage=function(){return"localStorage"in i&&i.localStorage!==null};d.sessionStorage=function(){try{return"sessionStorage"in i&&i.sessionStorage!==null}catch(a){return false}};d.webworkers=function(){return!!i.Worker};
24
- d.applicationCache=function(){var a=i.applicationCache;return!!(a&&typeof a.status!="undefined"&&typeof a.update=="function"&&typeof a.swapCache=="function")};d.svg=function(){return!!e.createElementNS&&!!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect};d.smil=function(){return!!e.createElementNS&&/SVG/.test(M.call(e.createElementNS("http://www.w3.org/2000/svg","animate")))};d.svgclippaths=function(){return!!e.createElementNS&&/SVG/.test(M.call(e.createElementNS("http://www.w3.org/2000/svg",
25
- "clipPath")))};for(var z in d)if(O(d,z))N.push(((j[z.toLowerCase()]=d[z]())?"":"no-")+z.toLowerCase());j[E]||P();j.addTest=function(a,b){a=a.toLowerCase();if(!j[a]){b=!!b();s.className+=" "+(b?"":"no-")+a;j[a]=b;return j}};m.cssText="";D=n=null;(function(){var a=e.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1})()&&function(a,b){function c(f,k){if(o[f])o[f].styleSheet.cssText+=k;else{var l=t[G],q=b[A]("style");q.media=f;l.insertBefore(q,l[G]);o[f]=q;c(f,k)}}function h(f,
26
- k){for(var l=new RegExp("\\b("+w+")\\b(?!.*[;}])","gi"),q=function(B){return".iepp_"+B},x=-1;++x<f.length;){k=f[x].media||k;h(f[x].imports,k);c(k,f[x].cssText.replace(l,q))}}for(var t=b.documentElement,g=b.createDocumentFragment(),o={},w="abbr|article|aside|audio|canvas|command|datalist|details|figure|figcaption|footer|header|hgroup|keygen|mark|meter|nav|output|progress|section|source|summary|time|video",v=w.split("|"),p=[],H=-1,G="firstChild",A="createElement";++H<v.length;){b[A](v[H]);g[A](v[H])}g=
27
- g.appendChild(b[A]("div"));a.attachEvent("onbeforeprint",function(){for(var f,k=b.getElementsByTagName("*"),l,q,x=new RegExp("^"+w+"$","i"),B=-1;++B<k.length;)if((f=k[B])&&(q=f.nodeName.match(x))){l=new RegExp("^\\s*<"+q+"(.*)\\/"+q+">\\s*$","i");g.innerHTML=f.outerHTML.replace(/\r|\n/g," ").replace(l,f.currentStyle.display=="block"?"<div$1/div>":"<span$1/span>");l=g.childNodes[0];l.className+=" iepp_"+q;l=p[p.length]=[f,l];f.parentNode.replaceChild(l[1],l[0])}h(b.styleSheets,"all")});a.attachEvent("onafterprint",
28
- function(){for(var f=-1,k;++f<p.length;)p[f][1].parentNode.replaceChild(p[f][0],p[f][1]);for(k in o)t[G].removeChild(o[k]);o={};p=[]})}(this,e);j._enableHTML5=true;j._version="1.5";s.className=s.className.replace(/\bno-js\b/,"")+" js";s.className+=" "+N.join(" ");return j}(this,this.document);