html5-boilerplate 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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);