Skip to content
This repository
Browse code

Merge pull request #29 from heygrady/master

Updating to use compass-h5bp
  • Loading branch information...
commit 72a79894417bbc59099f7ed002a31ebee03d514c 2 parents 089ce4d + 8fa3d1f
Peter Gumeson authored

Showing 37 changed files with 811 additions and 959 deletions. Show diff stats Hide diff stats

  1. +5 0 .gitignore
  2. +12 3 README.md
  3. +1 1  VERSION
  4. +14 11 html5-boilerplate.gemspec
  5. +1 0  lib/app/helpers/html5_boilerplate_helper.rb
  6. +0 20 stylesheets/_html5-boilerplate.scss
  7. +0 42 stylesheets/html5-boilerplate/_fonts.scss
  8. +0 71 stylesheets/html5-boilerplate/_helpers.scss
  9. +0 35 stylesheets/html5-boilerplate/_media.scss
  10. +0 43 stylesheets/html5-boilerplate/_reset.scss
  11. +0 126 stylesheets/html5-boilerplate/_styles.scss
  12. +8 5 templates/project/_head.html.haml
  13. +16 6 templates/project/_javascripts.html.haml
  14. +1 1  templates/project/_stylesheets.html.haml
  15. +1 1  templates/project/application.html.haml
  16. BIN  templates/project/files/apple-touch-icon-114x114-precomposed.png
  17. BIN  templates/project/files/apple-touch-icon-57x57-precomposed.png
  18. BIN  templates/project/files/apple-touch-icon-72x72-precomposed.png
  19. BIN  templates/project/files/apple-touch-icon-precomposed.png
  20. BIN  templates/project/files/apple-touch-icon.png
  21. +135 110 templates/project/files/htaccess
  22. +0 8 templates/project/handheld.scss
  23. +37 20 templates/project/index.html.haml
  24. +369 253 templates/project/javascripts/{jquery-1.6.js → jquery-1.6.2.js}
  25. +18 0 templates/project/javascripts/jquery-1.6.2.min.js
  26. +0 16 templates/project/javascripts/jquery-1.6.min.js
  27. +0 2  templates/project/javascripts/modernizr-1.7.min.js
  28. +4 0 templates/project/javascripts/modernizr-2.0.6.min.js
  29. +7 3 templates/project/javascripts/plugins.js
  30. +90 37 templates/project/javascripts/rails.js
  31. +0 7 templates/project/javascripts/respond.min.js
  32. +10 7 templates/project/manifest.rb
  33. +9 18 templates/project/partials/_base.scss
  34. +20 14 templates/project/partials/_media.scss
  35. +47 57 templates/project/partials/_overrides.scss
  36. +0 32 templates/project/partials/_page.scss
  37. +6 10 templates/project/style.scss
5 .gitignore
@@ -3,3 +3,8 @@
3 3 tmp/*
4 4 pkg/*
5 5 html5-boilerplate-*.gem
  6 +
  7 +/.project
  8 +/config.rb
  9 +/test/style.css
  10 +/.sass-cache
15 README.md
Source Rendered
@@ -74,6 +74,10 @@ Start your Rails server, and you're done!
74 74 public/robots.txt
75 75 public/humans.txt
76 76 public/apple-touch-icon.png
  77 + public/apple-touch-icon-57x57-precomposed.png
  78 + public/apple-touch-icon-72x72-precomposed.png
  79 + public/apple-touch-icon-114x114-precomposed.png
  80 + public/apple-touch-icon-precomposed.png
77 81 public/favicon.ico
78 82
79 83 public/javascripts/jquery.min.js
@@ -113,7 +117,7 @@ Use this if you're not using Rails, but still want compass and the html5-boilerp
113 117 It will create a simplified index.html (with haml source), but without the nice Rails helpers.
114 118
115 119 gem install html5-boilerplate
116   - compass create my_project -r html5-boilerplate -u html5-boilerplate --javascripts-dir js --css-dir css
  120 + compass create my_project -r compass-h5bp -r html5-boilerplate -u html5-boilerplate --javascripts-dir js --css-dir css
117 121
118 122 The `--javascripts-dir` and `--css-dir` flags are to keep consistent with the original project layout.
119 123 If you omit them, be sure to edit your javascript and style tags accordingly in index.html.
@@ -127,6 +131,10 @@ If you omit them, be sure to edit your javascript and style tags accordingly in
127 131 robots.txt
128 132 humans.txt
129 133 apple-touch-icon.png
  134 + apple-touch-icon-57x57-precomposed.png
  135 + apple-touch-icon-72x72-precomposed.png
  136 + apple-touch-icon-114x114-precomposed.png
  137 + apple-touch-icon-precomposed.png
130 138 favicon.ico
131 139
132 140 src/style.scss
@@ -136,9 +144,10 @@ If you omit them, be sure to edit your javascript and style tags accordingly in
136 144 src/partials/_fonts.scss
137 145 src/partials/_media.scss
138 146
139   - js/jquery.min.js
140   - js/modernizr.min.js
  147 + js/jquery-1.6.2.min.js
  148 + js/modernizr-2.0.6.min.js
141 149 js/plugins.js
  150 + js/script.js
142 151
143 152 .htaccess
144 153 config.rb
2  VERSION
... ... @@ -1 +1 @@
1   -1.0.0
  1 +2.0.0
25 html5-boilerplate.gemspec
... ... @@ -1,24 +1,27 @@
1 1 # -*- encoding: utf-8 -*-
2 2
3 3 Gem::Specification.new do |s|
4   - s.version = "1.0.0"
5   - s.date = "2011-05-11"
  4 + s.name = "html5-boilerplate"
  5 + s.version = "2.0.0"
  6 + s.date = "2011-12-19"
6 7
7   - s.name = "html5-boilerplate"
8   - s.authors = ["Peter Gumeson"]
9   - s.summary = %q{A Compass extension based on Paul Irish's HTML5 Boilerplate}
  8 + s.authors = ["Peter Gumeson", "Grady Kuhnline"]
  9 + s.email = ["gumeson@gmail.com"]
  10 + s.homepage = "http://github.com/sporkd/compass-html5-boilerplate"
  11 +
  12 + s.summary = %q{A Compass extension based on Paul Irish's HTML5 Boilerplate}
10 13 s.description = %q{A Compass extension based on Paul Irish's HTML5 Boilerplate at http://html5boilerplate.com}
11   - s.email = "gumeson@gmail.com"
12   - s.homepage = "http://github.com/sporkd/compass-html5-boilerplate"
13 14
14   - s.files = %w(README.md LICENSE VERSION)
  15 +
  16 + s.files = %w(README.md LICENSE VERSION)
15 17 s.files += %w(templates/project/files/htaccess)
16 18 s.files += Dir.glob("lib/**/*.*")
17   - s.files += Dir.glob("stylesheets/**/*.*")
  19 + #s.files += Dir.glob("stylesheets/**/*.*")
18 20 s.files += Dir.glob("templates/**/*.*")
19 21
20 22 s.has_rdoc = false
21 23 s.require_paths = ["lib"]
22   - s.rubygems_version = %q{1.7.2}
23   - s.add_dependency("compass", [">= 0.11.1"])
  24 +
  25 + s.add_dependency("compass")
  26 + s.add_dependency("compass-h5bp")
24 27 end
1  lib/app/helpers/html5_boilerplate_helper.rb
... ... @@ -1,6 +1,7 @@
1 1 module Html5BoilerplateHelper
2 2 # Create a named haml tag to wrap IE conditional around a block
3 3 # http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither
  4 + # Consider adding an manifest.appcache: h5bp.com/d/Offline
4 5 def ie_tag(name=:body, attrs={}, &block)
5 6 attrs.symbolize_keys!
6 7 haml_concat("<!--[if lt IE 7]> #{ tag(name, add_class('ie6', attrs), true) } <![endif]-->".html_safe)
20 stylesheets/_html5-boilerplate.scss
... ... @@ -1,20 +0,0 @@
1   -// HTML5 Boilerplate
2   -//
3   -// Credit is left where credit is due.
4   -// Much inspiration was taken from these projects:
5   -// - yui.yahooapis.com/2.8.1/build/base/base.css
6   -// - camendesign.com/design/
7   -// - praegnanz.de/weblog/htmlcssjs-kickstart
8   -
9   -@import "html5-boilerplate/reset";
10   -@import "html5-boilerplate/fonts";
11   -@import "html5-boilerplate/styles";
12   -@import "html5-boilerplate/helpers";
13   -@import "html5-boilerplate/media";
14   -
15   -@mixin html5-boilerplate {
16   - @include html5-boilerplate-reset;
17   - @include html5-boilerplate-fonts;
18   - @include html5-boilerplate-styles;
19   - @include html5-boilerplate-helpers;
20   -}
42 stylesheets/html5-boilerplate/_fonts.scss
... ... @@ -1,42 +0,0 @@
1   -$base-font-family: unquote("sans-serif") !default;
2   -$base-font-size: 13px !default;
3   -$base-line-height: 1.231 !default;
4   -
5   -//
6   -// Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/
7   -// Whatever parts of this port of YUI to Sass that are copyrightable, are Copyright (c) 2008, Christopher Eppstein. All Rights Reserved.
8   -//
9   -
10   -@mixin html5-boilerplate-fonts($family: $base-font-family, $size: $base-font-size, $line-height: $base-line-height) {
11   - body {
12   - font-size: $size;
13   - font-family: $family;
14   - line-height: $line-height; // hack retained to preserve specificity
15   - *font-size: small;
16   - }
17   -
18   - // Normalize monospace sizing:
19   - // en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome
20   - pre, code, kbd, samp { font-family: monospace, sans-serif; }
21   -}
22   -
23   -@mixin font-smoothing {
24   - @warn "The 'font-smoothing' mixin has been deprecated as it made monospace too thin.";
25   -}
26   -
27   -// Sets the font size specified in pixels using percents so that the base
28   -// font size changes and 1em has the correct value. When nesting font size
29   -// declarations, within the DOM tree, the base_font_size must be the parent's
30   -// effective font-size in pixels.
31   -// Usage Examples:
32   -// .big
33   -// +font-size(16px)
34   -// .bigger
35   -// +font-size(18px)
36   -// .big .bigger
37   -// +font-size(18px, 16px)
38   -//
39   -// For more information see the table found at http://developer.yahoo.com/yui/3/cssfonts/#fontsize
40   -@mixin font-size($size, $base-font-size: $base-font-size) {
41   - font-size: ceil(percentage($size / $base-font-size));
42   -}
71 stylesheets/html5-boilerplate/_helpers.scss
... ... @@ -1,71 +0,0 @@
1   -@import "compass/typography/text/replacement";
2   -@import "compass/utilities/general/clearfix";
3   -
4   -//
5   -// Non-semantic helper classes
6   -// It's better to include these mixins in your own styles
7   -//
8   -
9   -@mixin html5-boilerplate-helpers {
10   - .ir { @include image-replacement; }
11   -
12   - .hidden { @include hidden; }
13   -
14   - .visuallyhidden { @include visually-hidden; }
15   -
16   - .clearfix { @include micro-clearfix; }
17   -}
18   -
19   -// Almost the same as compass replace-text
20   -// but adding direction: ltr
21   -@mixin image-replacement($img: none, $x: 50%, $y: 50%) {
22   - @include hide-text;
23   - direction: ltr;
24   - background-repeat: no-repeat;
25   - @if $img != none {
26   - background-image: image-url($img);
27   - background-position: $x $y;
28   - }
29   -}
30   -
31   -@mixin sized-image-replacement($img, $x: 50%, $y: 50%) {
32   - @include image-replacement($img, $x, $y);
33   - width: image-width($img);
34   - height: image-height($img);
35   -}
36   -
37   -// Hide for both screenreaders and browsers
38   -// css-discuss.incutio.com/wiki/Screenreader_Visibility
39   -@mixin hidden {
40   - display:none;
41   - visibility: hidden;
42   -}
43   -
44   -// Hide only visually, but have it available for screenreaders: by Jon Neal
45   -// www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden
46   -@mixin visually-hidden {
47   - border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px;
48   - // Extends the .visuallyhidden class to allow the element to be focusable
49   - // when navigated to via the keyboard: drupal.org/node/897638
50   - &.focusable:active, &.focusable:focus {
51   - clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto;
52   - }
53   -}
54   -
55   -// Hide visually and from screenreaders, but maintain layout
56   -@mixin invisible { visibility: hidden; }
57   -
58   -// The Magnificent Clearfix: Updated to prevent margin-collapsing on child elements in most situations.
59   -// nicolasgallagher.com/micro-clearfix-hack/
60   -@mixin micro-clearfix {
61   - &:before, &:after { content: ""; display: table; }
62   - &:after { clear: both; }
63   - zoom: 1;
64   -}
65   -
66   -
67   -// The Magnificent CLEARFIX << j.mp/phayesclearfix
68   -@mixin magnificent-clearfix {
69   - @warn "The 'magnificent-clearfix' mixin has been deprecated. Use 'pie-clearfix' in compass core instead.";
70   - @include pie-clearfix;
71   -}
35 stylesheets/html5-boilerplate/_media.scss
... ... @@ -1,35 +0,0 @@
1   -@mixin html5-boilerplate-media {
2   - @warn "The 'html5-boilerplate-media' mixin has been deprecated.";
3   -}
4   -
5   -//
6   -// Print styles
7   -// Inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/
8   -
9   -@mixin media-print {
10   - * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
11   - -ms-filter: none !important; } // Black prints faster: sanbeiji.com/archives/953
12   - a, a:visited { color: #444 !important; text-decoration: underline; }
13   - a[href]:after { content: " (" attr(href) ")"; }
14   - abbr[title]:after { content: " (" attr(title) ")"; }
15   - .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } // Don't show links for images, or javascript/internal links
16   - pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
17   - thead { display: table-header-group; } // css-discuss.incutio.com/wiki/Printing_Tables
18   - tr, img { page-break-inside: avoid; }
19   - img { max-width: 100% !important; }
20   - @page { margin: 0.5cm; }
21   - p, h2, h3 { orphans: 3; widows: 3; }
22   - h2, h3{ page-break-after: avoid; }
23   -}
24   -
25   -@mixin media-orientation-portrait {
26   - @warn "The 'media-orientation-portrait' mixin has been deprecated.";
27   -}
28   -
29   -@mixin media-orientation-landscape {
30   - @warn "The 'media-orientation-landscape' mixin has been deprecated.";
31   -}
32   -
33   -@mixin media-mobile($optimize: true) {
34   - @warn "The 'media-mobile' mixin has been deprecated.";
35   -}
43 stylesheets/html5-boilerplate/_reset.scss
... ... @@ -1,43 +0,0 @@
1   -// html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
2   -// v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
3   -// html5doctor.com/html-5-reset-stylesheet/
4   -
5   -@mixin html5-boilerplate-reset {
6   - html, body, div, span, object, iframe,
7   - h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8   - abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
9   - small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
10   - fieldset, form, label, legend,
11   - table, caption, tbody, tfoot, thead, tr, th, td,
12   - article, aside, canvas, details, figcaption, figure,
13   - footer, header, hgroup, menu, nav, section, summary,
14   - time, mark, audio, video {
15   - margin: 0;
16   - padding: 0;
17   - border: 0;
18   - font-size: 100%;
19   - vertical-align: baseline;
20   - }
21   -
22   - article, aside, details, figcaption, figure,
23   - footer, header, hgroup, menu, nav, section {
24   - display: block;
25   - }
26   -
27   - blockquote, q { quotes: none; }
28   -
29   - blockquote:before, blockquote:after,
30   - q:before, q:after { content: ""; content: none; }
31   -
32   - ins { background-color: #ff9; color: #000; text-decoration: none; }
33   -
34   - mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
35   -
36   - del { text-decoration: line-through; }
37   -
38   - abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
39   -
40   - table { border-collapse: collapse; border-spacing: 0; }
41   -
42   - hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
43   -}
126 stylesheets/html5-boilerplate/_styles.scss
... ... @@ -1,126 +0,0 @@
1   -$font-color: #444 !default; //looks better than black: twitter.com/H_FJ/statuses/11800719859
2   -$link-color: #607890 !default;
3   -$link-hover-color: #036 !default;
4   -$link-active-color: #607890 !default;
5   -$link-visited-color: #607890 !default;
6   -$selected-font-color: #fff !default;
7   -$selected-background-color: #ff5e99 !default;
8   -$list-left-margin: 1.8em !default;
9   -
10   -//
11   -// Minimal base styles
12   -//
13   -
14   -@mixin html5-boilerplate-styles {
15   - html { @include force-scrollbar; }
16   -
17   - ul, ol { margin-left: $list-left-margin; }
18   - ol { list-style-type: decimal; }
19   -
20   - td { vertical-align: top; }
21   -
22   - sub { @include sub; }
23   -
24   - sup { @include sup; }
25   -
26   - @include accessible-focus;
27   -
28   - @include quoted-pre;
29   -
30   - @include hand-cursor-inputs;
31   -
32   - @include reset-form-elements;
33   -
34   - @include selected-text;
35   -
36   - @include webkit-tap-highlight;
37   -
38   - @include ie-hacks;
39   -
40   - @include no-nav-margins;
41   -}
42   -
43   -// set sub, sup without affecting line-height: gist.github.com/413930
44   -@mixin sub{
45   - font-size: 75%; line-height: 0; position: relative; bottom: -0.25em;
46   -}
47   -@mixin sup{
48   - font-size: 75%; line-height: 0; position: relative; top: -0.5em;
49   -}
50   -
51   -// accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test
52   -@mixin accessible-focus {
53   - a:hover, a:active { outline: none; }
54   -}
55   -
56   -// www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap
57   -@mixin quoted-pre {
58   - pre {
59   - white-space: pre; white-space: pre-wrap; word-wrap: break-word;
60   - padding: 15px;
61   - }
62   -}
63   -
64   -// Align checkboxes, radios, text inputs with their label by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css
65   -@mixin align-input-labels {
66   - @warn "The 'align-input-labels' mixin has been deprecated.";
67   -}
68   -
69   -// Hand cursor on clickable input elements
70   -@mixin hand-cursor-inputs {
71   - label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
72   -}
73   -
74   -@mixin reset-form-elements {
75   - // 1) Make inputs and buttons play nice in IE: www.viget.com/inspire/styling-the-button-element-in-internet-explorer/
76   - // 2) WebKit browsers add a 2px margin outside the chrome of form elements.
77   - // Firefox adds a 1px margin above and below textareas
78   - // 3) Set font-size to match <body>'s, and font-family to sans-serif
79   - // 4) Align to baseline
80   - button, input, select, textarea { width: auto; overflow: visible; margin: 0; font-size: 100%; font-family: sans-serif; vertical-align: baseline; }
81   -
82   - // 1) Remove default scrollbar in IE: www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/
83   - // 2) Align to text-top
84   - textarea { overflow: auto; vertical-align: text-top; }
85   -
86   - // Remove extra padding and inner border in Firefox
87   - input::-moz-focus-inner,
88   - button::-moz-focus-inner { border: 0; padding: 0; }
89   -}
90   -
91   -@mixin webkit-reset-form-elements {
92   - @warn "The 'webkit-reset-form-elements' mixin has been deprecated. Use 'reset-form-elements' instead.";
93   -}
94   -
95   -// These selection declarations have to be separate.
96   -// No text-shadow: twitter.com/miketaylr/status/12228805301
97   -// Also: hot pink!
98   -@mixin selected-text {
99   - ::-moz-selection{ background:$selected-background-color; color: $selected-font-color; text-shadow: none; }
100   - ::selection { background: $selected-background-color; color: $selected-font-color; text-shadow: none; }
101   -}
102   -
103   -// j.mp/webkit-tap-highlight-color
104   -@mixin webkit-tap-highlight {
105   - a:link { -webkit-tap-highlight-color: $selected-background-color; }
106   -}
107   -
108   -// 1) Always force a scrollbar in non-IE
109   -// 2) Remove iOS text size adjust without disabling user zoom:
110   -// www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
111   -@mixin force-scrollbar {
112   - overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;
113   -}
114   -
115   -@mixin ie-hacks {
116   - // Bicubic resizing for non-native sized IMG:
117   - // code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
118   - .ie7 img { -ms-interpolation-mode: bicubic; }
119   -
120   - .ie6 legend, .ie7 legend { margin-left: -7px; }
121   -}
122   -
123   -@mixin no-nav-margins {
124   - // remove margins for navigation lists
125   - nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
126   -}
13 templates/project/_head.html.haml
... ... @@ -1,7 +1,8 @@
1 1 %meta{ :charset => "utf-8" }/
2 2
3   --# Always force latest IE rendering engine (even in intranet) & Chrome Frame
4   --# Remove this if you use the .htaccess
  3 +-#
  4 + Use the .htaccess and remove these lines to avoid edge case issues.
  5 + More info: h5bp.com/b/378
5 6 %meta{ "http-equiv" => "X-UA-Compatible", :content => "IE=edge,chrome=1" }/
6 7
7 8 %title
@@ -19,8 +20,10 @@
19 20 - if local_assigns[:stylesheet_partial]
20 21 = render :partial => local_assigns[:stylesheet_partial]
21 22
22   --# All JavaScript at the bottom, except for Modernizr and Respond.
23   --# Modernizr enables HTML5 elements & feature detects; Respond is a polyfill for min/max-width CSS3 Media Queries
24   -= javascript_include_tag 'modernizr.min', 'respond.min'
  23 +-#
  24 + All JavaScript at the bottom, except for Modernizr / Respond.
  25 + Modernizr enables HTML5 elements & feature detects; Respond is a polyfill for min/max-width CSS3 Media Queries
  26 + For optimal performance, use a custom Modernizr build: www.modernizr.com/download/
  27 += javascript_include_tag 'modernizr.min'
25 28
26 29 = csrf_meta_tag
22 templates/project/_javascripts.html.haml
@@ -3,13 +3,13 @@
3 3 -# remote_jquery and local_jquery helpers use minified jquery unless Rails.env is development
4 4 - if !google_api_key.blank?
5 5 = javascript_include_tag "//www.google.com/jsapi?key=#{google_api_key}"
6   - :javascript
7   - google.load(#{ remote_jquery("1.6") });
  6 + %script
  7 + google.load(#{ remote_jquery("1.6.2") });
8 8 - else
9   - = javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/#{ local_jquery("1.6") }"
  9 + = javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/#{ local_jquery("1.6.2") }"
10 10
11 11 -# fall back to local jQuery if necessary
12   -:javascript
  12 +%script
13 13 window.jQuery || document.write("<script src='/javascripts/jquery.min.js'>\x3C/script>")
14 14
15 15 = javascript_include_tag 'rails', 'plugins', 'application'
@@ -20,8 +20,18 @@
20 20 -# asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
21 21 -# Looks for google_account_id first in ENV['GOOGLE_ACCOUNT_ID'] then in config/google.yml
22 22 - if !google_account_id.blank?
23   - :javascript
  23 + %script
24 24 var _gaq=[["_setAccount","#{google_account_id}"],["_trackPageview"],["_trackPageLoadTime"]];
25 25 (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
26 26 g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";
27   - s.parentNode.insertBefore(g,s)}(document,"script"));
  27 + s.parentNode.insertBefore(g,s)}(document,"script"));
  28 +
  29 +-#
  30 + Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.
  31 + chromium.org/developers/how-tos/chrome-frame-getting-started
  32 +
  33 +<!--[if lt IE 7]>
  34 +%script{ :src => "//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js" }
  35 +%script
  36 + window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})
  37 +<![endif]-->
2  templates/project/_stylesheets.html.haml
... ... @@ -1,5 +1,5 @@
1 1 -# CSS: implied media="all"
2   -= stylesheet_link_tag 'style', :media => 'all'
  2 += stylesheet_link_tag 'style'
3 3
4 4 -# Append your own using content_for :stylesheets
5 5 = yield :stylesheets
2  templates/project/application.html.haml
... ... @@ -1,6 +1,6 @@
1 1 !!! 5
2 2 -# http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither
3   --ie_html :class => 'no-js', :lang => 'en' do
  3 +-ie_html :class => 'no-js oldie', :lang => 'en' do
4 4 %head
5 5 -# To render a different stylesheet partial inside the head (i.e. for admin layout)
6 6 -# just copy _stylesheets.html.haml, and point to that partial instead.
BIN  templates/project/files/apple-touch-icon-114x114-precomposed.png
BIN  templates/project/files/apple-touch-icon-57x57-precomposed.png
BIN  templates/project/files/apple-touch-icon-72x72-precomposed.png
BIN  templates/project/files/apple-touch-icon-precomposed.png
BIN  templates/project/files/apple-touch-icon.png
245 templates/project/files/htaccess
@@ -25,18 +25,12 @@
25 25 # github.com/rails/rails/commit/123eb25#commitcomment-118920
26 26 # Use ChromeFrame if it's installed for a better experience for the poor IE folk
27 27
28   -<IfModule mod_setenvif.c>
29   - <IfModule mod_headers.c>
30   - BrowserMatch MSIE ie
31   - Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
32   - </IfModule>
33   -</IfModule>
34   -
35 28 <IfModule mod_headers.c>
36   -# Because X-UA-Compatible isn't sent to non-IE (to save header bytes),
37   -# We need to inform proxies that content changes based on UA
38   - Header append Vary User-Agent
39   -# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
  29 + Header set X-UA-Compatible "IE=Edge,chrome=1"
  30 + # mod_headers can't match by content-type, but we don't want to send this header on *everything*...
  31 + <FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|xpi|safariextz|vcf)$" >
  32 + Header unset X-UA-Compatible
  33 + </FilesMatch>
40 34 </IfModule>
41 35
42 36
@@ -58,11 +52,11 @@
58 52 # Webfont access
59 53 # ----------------------------------------------------------------------
60 54
61   -# allow access from all domains for webfonts
62   -# alternatively you could only whitelist
63   -# your subdomains like "sub.domain.com"
  55 +# Allow access from all domains for webfonts.
  56 +# Alternatively you could only whitelist your
  57 +# subdomains like "subdomain.example.com".
64 58
65   -<FilesMatch "\.(ttf|otf|eot|woff|font.css)$">
  59 +<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
66 60 <IfModule mod_headers.c>
67 61 Header set Access-Control-Allow-Origin "*"
68 62 </IfModule>
@@ -74,26 +68,34 @@
74 68 # Proper MIME type for all files
75 69 # ----------------------------------------------------------------------
76 70
77   -# audio
  71 +
  72 +# JavaScript
  73 +# Normalize to standard type (it's sniffed in IE anyways)
  74 +# tools.ietf.org/html/rfc4329#section-7.2
  75 +AddType application/javascript js
  76 +
  77 +# Audio
78 78 AddType audio/ogg oga ogg
  79 +AddType audio/mp4 m4a
79 80
80   -# video
  81 +# Video
81 82 AddType video/ogg ogv
82   -AddType video/mp4 mp4
  83 +AddType video/mp4 mp4 m4v
83 84 AddType video/webm webm
84 85
85   -# Proper svg serving. Required for svg webfonts on iPad
  86 +# SVG.
  87 +# Required for svg webfonts on iPad
86 88 # twitter.com/FontSquirrel/status/14855840545
87 89 AddType image/svg+xml svg svgz
88 90 AddEncoding gzip svgz
89 91
90   -# webfonts
  92 +# Webfonts
91 93 AddType application/vnd.ms-fontobject eot
92   -AddType font/truetype ttf
  94 +AddType application/x-font-ttf ttf ttc
93 95 AddType font/opentype otf
94 96 AddType application/x-font-woff woff
95 97
96   -# assorted types
  98 +# Assorted types
97 99 AddType image/x-icon ico
98 100 AddType image/webp webp
99 101 AddType text/cache-manifest appcache manifest
@@ -101,6 +103,7 @@ AddType text/x-component htc
101 103 AddType application/x-chrome-extension crx
102 104 AddType application/x-xpinstall xpi
103 105 AddType application/octet-stream safariextz
  106 +AddType text/x-vcard vcf
104 107
105 108
106 109
@@ -111,54 +114,69 @@ AddType application/octet-stream safariextz
111 114 # e.g. Inside of script.combined.js you could have
112 115 # <!--#include file="libs/jquery-1.5.0.min.js" -->
113 116 # <!--#include file="plugins/jquery.idletimer.js" -->
114   -# and they would be included into this single file
  117 +# and they would be included into this single file.
115 118
116   -# this is not in use in the boilerplate as it stands. you may
117   -# choose to name your files in this way for this advantage
118   -# or concatenate and minify them manually.
  119 +# This is not in use in the boilerplate as it stands. You may
  120 +# choose to name your files in this way for this advantage or
  121 +# concatenate and minify them manually.
119 122 # Disabled by default.
120 123
121   -# <FilesMatch "\.combined\.(js|css)$">
122   -# Options +Includes
123   -# SetOutputFilter INCLUDES
124   -# </FilesMatch>
125   -
  124 +#<FilesMatch "\.combined\.js$">
  125 +# Options +Includes
  126 +# AddOutputFilterByType INCLUDES application/javascript application/json
  127 +# SetOutputFilter INCLUDES
  128 +#</FilesMatch>
  129 +#<FilesMatch "\.combined\.css$">
  130 +# Options +Includes
  131 +# AddOutputFilterByType INCLUDES text/css
  132 +# SetOutputFilter INCLUDES
  133 +#</FilesMatch>
126 134
127 135
128 136 # ----------------------------------------------------------------------
129   -# gzip compression
  137 +# Gzip compression
130 138 # ----------------------------------------------------------------------
131 139
132 140 <IfModule mod_deflate.c>
133 141
134   -
135   -# force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  142 +# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
136 143 <IfModule mod_setenvif.c>
137 144 <IfModule mod_headers.c>
138   - SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s,?\s(gzip|deflate)?|X{4,13}|~{4,13}|-{4,13})$ HAVE_Accept-Encoding
  145 + SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
139 146 RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
140 147 </IfModule>
141 148 </IfModule>
142   -# html, txt, css, js, json, xml, htc:
  149 +
  150 +# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
143 151 <IfModule filter_module>
144 152 FilterDeclare COMPRESS
145   - FilterProvider COMPRESS DEFLATE resp=Content-Type /text/(html|css|javascript|plain|x(ml|-component))/
146   - FilterProvider COMPRESS DEFLATE resp=Content-Type /application/(javascript|json|xml|x-javascript)/
  153 + FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
  154 + FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
  155 + FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
  156 + FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
  157 + FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
  158 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
  159 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
  160 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
  161 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
  162 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
  163 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
  164 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
  165 + FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
  166 + FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
  167 + FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
147 168 FilterChain COMPRESS
148   - FilterProtocol COMPRESS change=yes;byteranges=no
  169 + FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
149 170 </IfModule>
150 171
151 172 <IfModule !mod_filter.c>
152 173 # Legacy versions of Apache
153 174 AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
154   - AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
  175 + AddOutputFilterByType DEFLATE application/javascript
155 176 AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
  177 + AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
  178 + AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
156 179 </IfModule>
157   -
158   -# webfonts and svg:
159   - <FilesMatch "\.(ttf|otf|eot|svg)$" >
160   - SetOutputFilter DEFLATE
161   - </FilesMatch>
162 180 </IfModule>
163 181
164 182
@@ -167,14 +185,14 @@ AddType application/octet-stream safariextz
167 185 # Expires headers (for better cache control)
168 186 # ----------------------------------------------------------------------
169 187
170   -# these are pretty far-future expires headers
171   -# they assume you control versioning with cachebusting query params like
  188 +# These are pretty far-future expires headers.
  189 +# They assume you control versioning with cachebusting query params like
172 190 # <script src="application.js?20100608">
173   -# additionally, consider that outdated proxies may miscache
  191 +# Additionally, consider that outdated proxies may miscache
174 192 # www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
175 193
176   -# if you don't use filenames to version, lower the css and js to something like
177   -# "access plus 1 week" or so
  194 +# If you don't use filenames to version, lower the CSS and JS to something like
  195 +# "access plus 1 week" or so.
178 196
179 197 <IfModule mod_expires.c>
180 198 ExpiresActive on
@@ -182,24 +200,25 @@ AddType application/octet-stream safariextz
182 200 # Perhaps better to whitelist expires rules? Perhaps.
183 201 ExpiresDefault "access plus 1 month"
184 202
185   -# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
  203 +# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
186 204 ExpiresByType text/cache-manifest "access plus 0 seconds"
187 205
188   -# your document html
  206 +# Your document html
189 207 ExpiresByType text/html "access plus 0 seconds"
190 208
191   -# data
  209 +# Data
192 210 ExpiresByType text/xml "access plus 0 seconds"
193 211 ExpiresByType application/xml "access plus 0 seconds"
194 212 ExpiresByType application/json "access plus 0 seconds"
195 213
196   -# rss feed
  214 +# Feed
197 215 ExpiresByType application/rss+xml "access plus 1 hour"
  216 + ExpiresByType application/atom+xml "access plus 1 hour"
198 217
199   -# favicon (cannot be renamed)
  218 +# Favicon (cannot be renamed)
200 219 ExpiresByType image/x-icon "access plus 1 week"
201 220
202   -# media: images, video, audio
  221 +# Media: images, video, audio
203 222 ExpiresByType image/gif "access plus 1 month"
204 223 ExpiresByType image/png "access plus 1 month"
205 224 ExpiresByType image/jpg "access plus 1 month"
@@ -209,20 +228,19 @@ AddType application/octet-stream safariextz
209 228 ExpiresByType video/mp4 "access plus 1 month"
210 229 ExpiresByType video/webm "access plus 1 month"
211 230
212   -# htc files (css3pie)
  231 +# HTC files (css3pie)
213 232 ExpiresByType text/x-component "access plus 1 month"
214 233
215   -# webfonts
  234 +# Webfonts
216 235 ExpiresByType font/truetype "access plus 1 month"
217 236 ExpiresByType font/opentype "access plus 1 month"
218 237 ExpiresByType application/x-font-woff "access plus 1 month"
219 238 ExpiresByType image/svg+xml "access plus 1 month"
220 239 ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
221 240
222   -# css and javascript
223   - ExpiresByType text/css "access plus 2 months"
224   - ExpiresByType application/javascript "access plus 2 months"
225   - ExpiresByType text/javascript "access plus 2 months"
  241 +# CSS and JavaScript
  242 + ExpiresByType text/css "access plus 1 year"
  243 + ExpiresByType application/javascript "access plus 1 year"
226 244
227 245 <IfModule mod_headers.c>
228 246 Header append Cache-Control "public"
@@ -236,6 +254,11 @@ AddType application/octet-stream safariextz
236 254 # ETag removal
237 255 # ----------------------------------------------------------------------
238 256
  257 +# FileETag None is not enough for every server.
  258 +<IfModule mod_headers.c>
  259 + Header unset ETag
  260 +</IfModule>
  261 +
239 262 # Since we're sending far-future expires, we don't need ETags for
240 263 # static content.
241 264 # developer.yahoo.com/performance/rules.html#etags
@@ -278,8 +301,10 @@ FileETag None
278 301 # ----------------------------------------------------------------------
279 302
280 303 # Turning on the rewrite engine is necessary for the following rules and features.
  304 +# FollowSymLinks must be enabled for this to work.
281 305
282 306 <IfModule mod_rewrite.c>
  307 + Options +FollowSymlinks
283 308 RewriteEngine On
284 309 </IfModule>
285 310
@@ -303,66 +328,30 @@ FileETag None
303 328 # ----------------------------------------------------------------------
304 329
305 330 # Option 1:
306   -# Rewrite "www.domain.com -> domain.com"
  331 +# Rewrite "www.example.com -> example.com"
307 332
308 333 <IfModule mod_rewrite.c>
309 334 RewriteCond %{HTTPS} !=on
310 335 RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
311   - RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
  336 + RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
312 337 </IfModule>
313 338
314 339 # ----------------------------------------------------------------------
315 340
316 341 # Option 2:
317   -# To rewrite "domain.com -> www.domain.com" uncomment the following lines.
  342 +# To rewrite "example.com -> www.example.com" uncomment the following lines.
318 343 # Be aware that the following rule might not be a good idea if you
319 344 # use "real" subdomains for certain parts of your website.
320 345
321 346 # <IfModule mod_rewrite.c>
322 347 # RewriteCond %{HTTPS} !=on
323 348 # RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
324   -# RewriteCond %{HTTP_HOST} (.+)$ [NC]
325   -# RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
  349 +# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
326 350 # </IfModule>
327 351
328 352
329 353
330 354 # ----------------------------------------------------------------------
331   -# Add/remove trailing slash to (non-file) URLs
332   -# ----------------------------------------------------------------------
333   -
334   -# Google treats URLs with and without trailing slashes separately.
335   -# Forcing a trailing slash is usually preferred, but all that's really
336   -# important is that one correctly redirects to the other.
337   -
338   -# By default option 1 (force trailing slash) is activated.
339   -# http://googlewebmastercentral.blogspot.com/2010/04/to-slash-or-not-to-slash.html
340   -# http://www.alistapart.com/articles/slashforward/
341   -# http://httpd.apache.org/docs/2.0/misc/rewriteguide.html#url Trailing Slash Problem
342   -
343   -# ----------------------------------------------------------------------
344   -
345   -# Option 1:
346   -# Rewrite "domain.com/foo -> domain.com/foo/"
347   -
348   -#<IfModule mod_rewrite.c>
349   -# RewriteCond %{REQUEST_FILENAME} !-f
350   -# RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
351   -# RewriteRule ^(.*)$ /$1/ [R=301,L]
352   -#</IfModule>
353   -
354   -# ----------------------------------------------------------------------
355   -
356   -# Option 2:
357   -# Rewrite "domain.com/foo/ -> domain.com/foo"
358   -
359   -#<IfModule mod_rewrite.c>
360   -# RewriteRule ^(.*)/$ /$1 [R=301,L]
361   -#</IfModule>
362   -
363   -
364   -
365   -# ----------------------------------------------------------------------
366 355 # Built-in filename-based cache busting
367 356 # ----------------------------------------------------------------------
368 357
@@ -387,12 +376,12 @@ FileETag None
387 376 # ----------------------------------------------------------------------
388 377
389 378 # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
390   -# https://www.domain.com when your cert only allows https://secure.domain.com
  379 +# https://www.example.com when your cert only allows https://secure.example.com
391 380 # Uncomment the following lines to use this feature.
392 381
393 382 # <IfModule mod_rewrite.c>
394 383 # RewriteCond %{SERVER_PORT} !^443
395   -# RewriteRule (.*) https://example-domain-please-change-me.com/$1 [R=301,L]
  384 +# RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]
396 385 # </IfModule>
397 386
398 387
@@ -409,7 +398,7 @@ Options -MultiViews
409 398
410 399
411 400 # ----------------------------------------------------------------------
412   -# custom 404 page
  401 +# Custom 404 page
413 402 # ----------------------------------------------------------------------
414 403
415 404 # You can add custom pages to handle 500 or 403 pretty easily, if you like.
@@ -421,11 +410,11 @@ ErrorDocument 404 /404.html
421 410 # UTF-8 encoding
422 411 # ----------------------------------------------------------------------
423 412
424   -# use utf-8 encoding for anything served text/plain or text/html
  413 +# Use UTF-8 encoding for anything served text/plain or text/html
425 414 AddDefaultCharset utf-8
426 415
427   -# force utf-8 for a number of file formats
428   -AddCharset utf-8 .html .css .js .xml .json .rss
  416 +# Force UTF-8 for a number of file formats
  417 +AddCharset utf-8 .html .css .js .xml .json .rss .atom
429 418
430 419
431 420
@@ -470,9 +459,45 @@ Options -Indexes
470 459
471 460 # php_flag register_globals Off
472 461
  462 +# Rename session cookie to something else, than PHPSESSID
  463 +# php_value session.name sid
  464 +
  465 +# Do not show you are using PHP
  466 +# Note: Move this line to php.ini since it won't work in .htaccess
  467 +# php_flag expose_php Off
  468 +
  469 +# Level of log detail - log all errors
  470 +# php_value error_reporting -1
  471 +
  472 +# Write errors to log file
  473 +# php_flag log_errors On
  474 +
  475 +# Do not display errors in browser (production - Off, development - On)
  476 +# php_flag display_errors Off
  477 +
  478 +# Do not display startup errors (production - Off, development - On)
  479 +# php_flag display_startup_errors Off
  480 +
  481 +# Format errors in plain text
  482 +# Note: Leave this setting 'On' for xdebug's var_dump() output
  483 +# php_flag html_errors Off
  484 +
  485 +# Show multiple occurrence of error
  486 +# php_flag ignore_repeated_errors Off
  487 +
  488 +# Show same errors from different sources
  489 +# php_flag ignore_repeated_source Off
  490 +
  491 +# Size limit for error messages
  492 +# php_value log_errors_max_len 1024
  493 +
  494 +# Don't precede error with string (doesn't accept empty string, use whitespace if you need)
  495 +# php_value error_prepend_string " "
  496 +
  497 +# Don't prepend to error (doesn't accept empty string, use whitespace if you need)
  498 +# php_value error_append_string " "
473 499
474 500 # Increase cookie security
475 501 <IfModule php5_module>
476   -php_value session.cookie_httponly true
  502 + php_value session.cookie_httponly true
477 503 </IfModule>
478   -
8 templates/project/handheld.scss
... ... @@ -1,8 +0,0 @@
1   -* {
2   - float: none; // Screens are not big enough to account for floats
3   - background: #fff; // As much contrast as possible */
4   - color: #000;
5   -}
6   -
7   -// Slightly reducing font size to reduce need to scroll
8   -body { font-size: 80%; }
57 templates/project/index.html.haml
... ... @@ -1,16 +1,18 @@
1 1 !!! 5
2 2 -# paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
3   -<!--[if lt IE 7]> <html lang="en" class="no-js ie6"> <![endif]-->
4   -<!--[if IE 7]> <html lang="en" class="no-js ie7"> <![endif]-->
5   -<!--[if IE 8]> <html lang="en" class="no-js ie8"> <![endif]-->
  3 +<!--[if lt IE 7]> <html lang="en" class="no-js ie6 oldie"> <![endif]-->
  4 +<!--[if IE 7]> <html lang="en" class="no-js ie7 oldie"> <![endif]-->
  5 +<!--[if IE 8]> <html lang="en" class="no-js ie8 oldie"> <![endif]-->
  6 +-# Consider adding an manifest.appcache: h5bp.com/d/Offline
6 7 <!--[if gt IE 8]><!-->
7 8 %html.no-js{ :lang => "en" }
8 9 <!--<![endif]-->
9 10 %head
10 11 %meta{ :charset => "utf-8" }/
11 12
12   - -# Always force latest IE rendering engine (even in intranet) & Chrome Frame
13   - -# Remove this if you use the .htaccess
  13 + -#
  14 + Use the .htaccess and remove these lines to avoid edge case issues.
  15 + More info: h5bp.com/b/378
14 16 %meta{ "http-equiv" => "X-UA-Compatible", :content => "IE=edge,chrome=1" }/
15 17
16 18 %title
@@ -23,33 +25,48 @@
23 25 -# Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons
24 26
25 27 -# CSS: implied media="all"
26   - %link{ :href => "css/style.css?v=1", :media => "all", :rel => "stylesheet" }/
  28 + -# CSS concatenated and minified via ant build script
  29 + %link{ :rel => "stylesheet", :href => "css/style.css"}/
27 30
28   - -# All JavaScript at the bottom, except for Modernizr and Respond.
29   - -# Modernizr enables HTML5 elements & feature detects; Respond is a polyfill for min/max-width CSS3 Media Queries
30   - %script{ :src => "js/modernizr.min.js" }
31   - %script{ :src => "js/respond.min.js" }
  31 + -#
  32 + All JavaScript at the bottom, except for Modernizr / Respond.
  33 + Modernizr enables HTML5 elements & feature detects; Respond is a polyfill for min/max-width CSS3 Media Queries
  34 + For optimal performance, use a custom Modernizr build: www.modernizr.com/download/
  35 + %script{ :src => "js/modernizr-2.0.6.min.js" }
32 36
33 37 %body
34 38 #container
35 39 %header
36 40 #main{ :role => 'main' }
37 41 %footer
38   -
39   - -#
40   - Javascript at the bottom for fast page loading
41   - Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary
42   - %script{ :src => "//ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.js" }
43   - :javascript
44   - window.jQuery || document.write("<script src='js/jquery.min.js'>\x3C/script>")
  42 + -# end of #container
  43 +
  44 + -# Javascript at the bottom for fast page loading
  45 +
  46 + -# Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline
  47 + %script{ :src => "//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" }
  48 + %script
  49 + window.jQuery || document.write("<script src='js/jquery-1.6.2.min.js'>\x3C/script>")
45 50
46   - %script{ :src => "js/plugins.js?v=1" }
47   - %script{ :src => "js/script.js?v=1" }
  51 + -# scripts concatenated and minified via ant build script
  52 + %script{ :src => "js/plugins.js" }
  53 + %script{ :src => "js/script.js" }
  54 + -# end scripts
48 55
49 56 -# asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
50 57 -# change the UA-XXXXX-X to be your site's ID
51   - :javascript
  58 + %script
52 59 var _gaq=[["_setAccount","UA-XXXXX-X"],["_trackPageview"],["_trackPageLoadTime"]];
53 60 (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
54 61 g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";
55 62 s.parentNode.insertBefore(g,s)}(document,"script"));
  63 +
  64 + -#
  65 + Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.
  66 + chromium.org/developers/how-tos/chrome-frame-getting-started
  67 +
  68 + <!--[if lt IE 7]>
  69 + %script{ :src => "//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js" }
  70 + %script
  71 + window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})});
  72 + <![endif]-->
622 templates/project/javascripts/jquery-1.6.js → templates/project/javascripts/jquery-1.6.2.js