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 +4 -2
- data/VERSION +1 -1
- data/lib/app/helpers/html5_boilerplate_helper.rb +1 -1
- data/stylesheets/html5-boilerplate/_helpers.scss +1 -2
- data/stylesheets/html5-boilerplate/_media.scss +7 -16
- data/stylesheets/html5-boilerplate/_reset.scss +2 -2
- data/stylesheets/html5-boilerplate/_styles.scss +8 -1
- data/templates/project/_head.html.haml +8 -3
- data/templates/project/_javascripts.html.haml +3 -4
- data/templates/project/files/crossdomain.xml +21 -12
- data/templates/project/files/htaccess +48 -21
- data/templates/project/files/lighttpd.conf +149 -0
- data/templates/project/files/mime.types +80 -0
- data/templates/project/files/nginx.conf +63 -23
- data/templates/project/files/web.config +3 -0
- data/templates/project/index.html.haml +8 -3
- data/templates/project/javascripts/modernizr-1.6.min.js +30 -0
- data/templates/project/manifest.rb +4 -2
- data/templates/project/partials/_example.scss +2 -0
- metadata +6 -4
- data/templates/project/javascripts/modernizr-1.5.min.js +0 -28
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.
|
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.
|
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.
|
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 (
|
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:
|
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
|
-
|
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
|
-
//
|
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.
|
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
|
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.
|
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 "
|
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 "
|
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.
|
2
|
+
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
3
3
|
<cross-domain-policy>
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
#
|
27
|
-
#
|
28
|
-
|
29
|
-
#
|
30
|
-
|
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
|
48
|
-
AddType video/mp4
|
49
|
-
AddType video/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
|
54
|
-
AddEncoding gzip
|
55
|
-
|
56
|
-
# webfonts
|
57
|
-
AddType application/vnd.ms-fontobject
|
58
|
-
AddType font/truetype
|
59
|
-
AddType font/opentype
|
60
|
-
AddType font/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.
|
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
|
-
|
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
|
-
|
3
|
-
|
4
|
-
|
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
|
-
|
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
|
-
|
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/
|
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
|
-
|
42
|
-
|
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
|
-
|
47
|
-
|
48
|
-
|
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
|
-
#
|
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 (
|
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
|
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.
|
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.
|
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.
|
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'
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
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-
|
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.
|
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);
|