sass-twitter-bootstrap 0.1.0

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.
Files changed (243) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +14 -0
  4. data/LICENSE +176 -0
  5. data/Makefile +94 -0
  6. data/README.md +217 -0
  7. data/Rakefile +52 -0
  8. data/bootstrap-2.0.4.css +4661 -0
  9. data/bootstrap-2.0.4.min.css +9 -0
  10. data/bootstrap-responsive-2.0.4.css +932 -0
  11. data/bootstrap-responsive-2.0.4.min.css +9 -0
  12. data/docs/assets/css/bootstrap-responsive.css +932 -0
  13. data/docs/assets/css/bootstrap.css +4661 -0
  14. data/docs/assets/css/docs.css +846 -0
  15. data/docs/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
  16. data/docs/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  17. data/docs/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
  18. data/docs/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
  19. data/docs/assets/ico/favicon.ico +0 -0
  20. data/docs/assets/img/bird.png +0 -0
  21. data/docs/assets/img/bootstrap-mdo-sfmoma-01.jpg +0 -0
  22. data/docs/assets/img/bootstrap-mdo-sfmoma-02.jpg +0 -0
  23. data/docs/assets/img/bootstrap-mdo-sfmoma-03.jpg +0 -0
  24. data/docs/assets/img/browsers.png +0 -0
  25. data/docs/assets/img/example-sites/fleetio.png +0 -0
  26. data/docs/assets/img/example-sites/jshint.png +0 -0
  27. data/docs/assets/img/example-sites/kippt.png +0 -0
  28. data/docs/assets/img/example-sites/soundready.png +0 -0
  29. data/docs/assets/img/examples/bootstrap-example-fluid.jpg +0 -0
  30. data/docs/assets/img/examples/bootstrap-example-hero.jpg +0 -0
  31. data/docs/assets/img/examples/bootstrap-example-starter.jpg +0 -0
  32. data/docs/assets/img/github-16px.png +0 -0
  33. data/docs/assets/img/glyphicons-halflings-white.png +0 -0
  34. data/docs/assets/img/glyphicons-halflings.png +0 -0
  35. data/docs/assets/img/glyphicons/glyphicons_009_magic.png +0 -0
  36. data/docs/assets/img/glyphicons/glyphicons_042_group.png +0 -0
  37. data/docs/assets/img/glyphicons/glyphicons_079_podium.png +0 -0
  38. data/docs/assets/img/glyphicons/glyphicons_082_roundabout.png +0 -0
  39. data/docs/assets/img/glyphicons/glyphicons_155_show_thumbnails.png +0 -0
  40. data/docs/assets/img/glyphicons/glyphicons_163_iphone.png +0 -0
  41. data/docs/assets/img/glyphicons/glyphicons_214_resize_small.png +0 -0
  42. data/docs/assets/img/glyphicons/glyphicons_266_book_open.png +0 -0
  43. data/docs/assets/img/grid-18px-masked.png +0 -0
  44. data/docs/assets/img/icon-css3.png +0 -0
  45. data/docs/assets/img/icon-github.png +0 -0
  46. data/docs/assets/img/icon-html5.png +0 -0
  47. data/docs/assets/img/icon-twitter.png +0 -0
  48. data/docs/assets/img/less-logo-large.png +0 -0
  49. data/docs/assets/img/less-small.png +0 -0
  50. data/docs/assets/img/responsive-illustrations.png +0 -0
  51. data/docs/assets/js/README.md +106 -0
  52. data/docs/assets/js/application.js +184 -0
  53. data/docs/assets/js/bootstrap-alert.js +90 -0
  54. data/docs/assets/js/bootstrap-button.js +96 -0
  55. data/docs/assets/js/bootstrap-carousel.js +169 -0
  56. data/docs/assets/js/bootstrap-collapse.js +157 -0
  57. data/docs/assets/js/bootstrap-dropdown.js +100 -0
  58. data/docs/assets/js/bootstrap-modal.js +218 -0
  59. data/docs/assets/js/bootstrap-popover.js +98 -0
  60. data/docs/assets/js/bootstrap-scrollspy.js +151 -0
  61. data/docs/assets/js/bootstrap-tab.js +135 -0
  62. data/docs/assets/js/bootstrap-tooltip.js +275 -0
  63. data/docs/assets/js/bootstrap-transition.js +61 -0
  64. data/docs/assets/js/bootstrap-typeahead.js +285 -0
  65. data/docs/assets/js/bootstrap.js +1825 -0
  66. data/docs/assets/js/bootstrap.min.js +6 -0
  67. data/docs/assets/js/google-code-prettify/prettify.css +30 -0
  68. data/docs/assets/js/google-code-prettify/prettify.js +28 -0
  69. data/docs/assets/js/jquery.js +9252 -0
  70. data/docs/base-css.html +1710 -0
  71. data/docs/build/index.js +44 -0
  72. data/docs/build/node_modules/.bin/hulk +93 -0
  73. data/docs/build/node_modules/hogan.js/.git_ignore +1 -0
  74. data/docs/build/node_modules/hogan.js/.gitmodules +3 -0
  75. data/docs/build/node_modules/hogan.js/LICENSE +177 -0
  76. data/docs/build/node_modules/hogan.js/Makefile +62 -0
  77. data/docs/build/node_modules/hogan.js/README.md +93 -0
  78. data/docs/build/node_modules/hogan.js/bin/hulk +93 -0
  79. data/docs/build/node_modules/hogan.js/lib/compiler.js +348 -0
  80. data/docs/build/node_modules/hogan.js/lib/hogan.js +20 -0
  81. data/docs/build/node_modules/hogan.js/lib/template.js +233 -0
  82. data/docs/build/node_modules/hogan.js/package.json +20 -0
  83. data/docs/build/node_modules/hogan.js/test/html/list.html +8 -0
  84. data/docs/build/node_modules/hogan.js/test/index.html +13 -0
  85. data/docs/build/node_modules/hogan.js/test/index.js +848 -0
  86. data/docs/build/node_modules/hogan.js/test/mustache.js +90 -0
  87. data/docs/build/node_modules/hogan.js/test/spec.js +77 -0
  88. data/docs/build/node_modules/hogan.js/test/spec/Changes +31 -0
  89. data/docs/build/node_modules/hogan.js/test/spec/README.md +65 -0
  90. data/docs/build/node_modules/hogan.js/test/spec/Rakefile +27 -0
  91. data/docs/build/node_modules/hogan.js/test/spec/TESTING.md +46 -0
  92. data/docs/build/node_modules/hogan.js/test/spec/specs/comments.json +1 -0
  93. data/docs/build/node_modules/hogan.js/test/spec/specs/comments.yml +103 -0
  94. data/docs/build/node_modules/hogan.js/test/spec/specs/delimiters.json +1 -0
  95. data/docs/build/node_modules/hogan.js/test/spec/specs/delimiters.yml +158 -0
  96. data/docs/build/node_modules/hogan.js/test/spec/specs/interpolation.json +1 -0
  97. data/docs/build/node_modules/hogan.js/test/spec/specs/interpolation.yml +230 -0
  98. data/docs/build/node_modules/hogan.js/test/spec/specs/inverted.json +1 -0
  99. data/docs/build/node_modules/hogan.js/test/spec/specs/inverted.yml +193 -0
  100. data/docs/build/node_modules/hogan.js/test/spec/specs/partials.json +1 -0
  101. data/docs/build/node_modules/hogan.js/test/spec/specs/partials.yml +109 -0
  102. data/docs/build/node_modules/hogan.js/test/spec/specs/sections.json +1 -0
  103. data/docs/build/node_modules/hogan.js/test/spec/specs/sections.yml +256 -0
  104. data/docs/build/node_modules/hogan.js/test/spec/specs/~lambdas.json +1 -0
  105. data/docs/build/node_modules/hogan.js/test/spec/specs/~lambdas.yml +149 -0
  106. data/docs/build/node_modules/hogan.js/test/templates/list.mustache +8 -0
  107. data/docs/build/node_modules/hogan.js/tools/release.js +74 -0
  108. data/docs/build/node_modules/hogan.js/tools/web_templates.js +32 -0
  109. data/docs/build/node_modules/hogan.js/web/1.0.0/hogan.js +500 -0
  110. data/docs/build/node_modules/hogan.js/web/1.0.0/hogan.min.js +14 -0
  111. data/docs/build/node_modules/hogan.js/web/builds/1.0.0/hogan.js +500 -0
  112. data/docs/build/node_modules/hogan.js/web/builds/1.0.0/hogan.min.js +14 -0
  113. data/docs/build/node_modules/hogan.js/web/builds/1.0.3/hogan.js +545 -0
  114. data/docs/build/node_modules/hogan.js/web/builds/1.0.3/hogan.min.js +5 -0
  115. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.amd.js +576 -0
  116. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.common.js +576 -0
  117. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.js +572 -0
  118. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.min.amd.js +5 -0
  119. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.min.common.js +5 -0
  120. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.min.js +5 -0
  121. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.min.mustache.js +5 -0
  122. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/hogan-1.0.5.mustache.js +619 -0
  123. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/template-1.0.5.js +233 -0
  124. data/docs/build/node_modules/hogan.js/web/builds/1.0.5/template-1.0.5.min.js +5 -0
  125. data/docs/build/node_modules/hogan.js/web/favicon.ico +0 -0
  126. data/docs/build/node_modules/hogan.js/web/images/logo.png +0 -0
  127. data/docs/build/node_modules/hogan.js/web/images/noise.png +0 -0
  128. data/docs/build/node_modules/hogan.js/web/images/small-hogan-icon.png +0 -0
  129. data/docs/build/node_modules/hogan.js/web/images/stripes.png +0 -0
  130. data/docs/build/node_modules/hogan.js/web/index.html.mustache +139 -0
  131. data/docs/build/node_modules/hogan.js/web/stylesheets/layout.css +206 -0
  132. data/docs/build/node_modules/hogan.js/web/stylesheets/skeleton.css +236 -0
  133. data/docs/build/node_modules/hogan.js/wrappers/amd.js.mustache +21 -0
  134. data/docs/build/node_modules/hogan.js/wrappers/common.js.mustache +21 -0
  135. data/docs/build/node_modules/hogan.js/wrappers/js.mustache +17 -0
  136. data/docs/build/node_modules/hogan.js/wrappers/mustache.js.mustache +64 -0
  137. data/docs/build/package.json +6 -0
  138. data/docs/components.html +1931 -0
  139. data/docs/download.html +454 -0
  140. data/docs/examples.html +147 -0
  141. data/docs/examples/fluid.html +162 -0
  142. data/docs/examples/hero.html +109 -0
  143. data/docs/examples/starter-template.html +79 -0
  144. data/docs/index.html +259 -0
  145. data/docs/javascript.html +1520 -0
  146. data/docs/less.html +1060 -0
  147. data/docs/scaffolding.html +671 -0
  148. data/docs/templates/layout.mustache +146 -0
  149. data/docs/templates/pages/base-css.mustache +1594 -0
  150. data/docs/templates/pages/components.mustache +1815 -0
  151. data/docs/templates/pages/download.mustache +338 -0
  152. data/docs/templates/pages/examples.mustache +31 -0
  153. data/docs/templates/pages/index.mustache +144 -0
  154. data/docs/templates/pages/javascript.mustache +1405 -0
  155. data/docs/templates/pages/less.mustache +944 -0
  156. data/docs/templates/pages/scaffolding.mustache +555 -0
  157. data/docs/templates/pages/upgrading.mustache +194 -0
  158. data/docs/upgrading.html +310 -0
  159. data/js/tests/index.html +54 -0
  160. data/js/tests/phantom.js +63 -0
  161. data/js/tests/server.js +14 -0
  162. data/js/tests/unit/bootstrap-alert.js +56 -0
  163. data/js/tests/unit/bootstrap-button.js +77 -0
  164. data/js/tests/unit/bootstrap-carousel.js +28 -0
  165. data/js/tests/unit/bootstrap-collapse.js +54 -0
  166. data/js/tests/unit/bootstrap-dropdown.js +87 -0
  167. data/js/tests/unit/bootstrap-modal.js +114 -0
  168. data/js/tests/unit/bootstrap-phantom.js +21 -0
  169. data/js/tests/unit/bootstrap-popover.js +93 -0
  170. data/js/tests/unit/bootstrap-scrollspy.js +31 -0
  171. data/js/tests/unit/bootstrap-tab.js +61 -0
  172. data/js/tests/unit/bootstrap-tooltip.js +155 -0
  173. data/js/tests/unit/bootstrap-transition.js +13 -0
  174. data/js/tests/unit/bootstrap-typeahead.js +148 -0
  175. data/js/tests/vendor/jquery.js +9252 -0
  176. data/js/tests/vendor/qunit.css +232 -0
  177. data/js/tests/vendor/qunit.js +1510 -0
  178. data/lib/sass-twitter-bootstrap.rb +9 -0
  179. data/lib/sass/twitter/bootstrap/rails.rb +14 -0
  180. data/lib/sass/twitter/bootstrap/version.rb +7 -0
  181. data/package.json +25 -0
  182. data/sass-twitter-bootstrap.gemspec +19 -0
  183. data/vendor/assets/images/glyphicons-halflings-white.png +0 -0
  184. data/vendor/assets/images/glyphicons-halflings.png +0 -0
  185. data/vendor/assets/javascripts/README.md +112 -0
  186. data/vendor/assets/javascripts/twitter/bootstrap-alert.js +90 -0
  187. data/vendor/assets/javascripts/twitter/bootstrap-button.js +96 -0
  188. data/vendor/assets/javascripts/twitter/bootstrap-carousel.js +169 -0
  189. data/vendor/assets/javascripts/twitter/bootstrap-collapse.js +157 -0
  190. data/vendor/assets/javascripts/twitter/bootstrap-dropdown.js +100 -0
  191. data/vendor/assets/javascripts/twitter/bootstrap-modal.js +218 -0
  192. data/vendor/assets/javascripts/twitter/bootstrap-popover.js +98 -0
  193. data/vendor/assets/javascripts/twitter/bootstrap-scrollspy.js +151 -0
  194. data/vendor/assets/javascripts/twitter/bootstrap-tab.js +135 -0
  195. data/vendor/assets/javascripts/twitter/bootstrap-tooltip.js +275 -0
  196. data/vendor/assets/javascripts/twitter/bootstrap-transition.js +61 -0
  197. data/vendor/assets/javascripts/twitter/bootstrap-typeahead.js +285 -0
  198. data/vendor/assets/javascripts/twitter/bootstrap.js +12 -0
  199. data/vendor/assets/stylesheets/tests/css-tests.css +52 -0
  200. data/vendor/assets/stylesheets/tests/css-tests.html +917 -0
  201. data/vendor/assets/stylesheets/tests/forms.html +179 -0
  202. data/vendor/assets/stylesheets/tests/navbar.html +108 -0
  203. data/vendor/assets/stylesheets/twitter/_accordion.scss +33 -0
  204. data/vendor/assets/stylesheets/twitter/_alerts.scss +58 -0
  205. data/vendor/assets/stylesheets/twitter/_breadcrumbs.scss +24 -0
  206. data/vendor/assets/stylesheets/twitter/_button-groups.scss +191 -0
  207. data/vendor/assets/stylesheets/twitter/_buttons.scss +191 -0
  208. data/vendor/assets/stylesheets/twitter/_carousel.scss +121 -0
  209. data/vendor/assets/stylesheets/twitter/_close.scss +29 -0
  210. data/vendor/assets/stylesheets/twitter/_code.scss +57 -0
  211. data/vendor/assets/stylesheets/twitter/_component-animations.scss +20 -0
  212. data/vendor/assets/stylesheets/twitter/_dropdowns.scss +143 -0
  213. data/vendor/assets/stylesheets/twitter/_forms.scss +582 -0
  214. data/vendor/assets/stylesheets/twitter/_grid.scss +5 -0
  215. data/vendor/assets/stylesheets/twitter/_hero-unit.scss +22 -0
  216. data/vendor/assets/stylesheets/twitter/_labels-badges.scss +52 -0
  217. data/vendor/assets/stylesheets/twitter/_layouts.scss +17 -0
  218. data/vendor/assets/stylesheets/twitter/_mixins.scss +643 -0
  219. data/vendor/assets/stylesheets/twitter/_modals.scss +90 -0
  220. data/vendor/assets/stylesheets/twitter/_navbar.scss +358 -0
  221. data/vendor/assets/stylesheets/twitter/_navs.scss +363 -0
  222. data/vendor/assets/stylesheets/twitter/_pager.scss +36 -0
  223. data/vendor/assets/stylesheets/twitter/_pagination.scss +56 -0
  224. data/vendor/assets/stylesheets/twitter/_popovers.scss +49 -0
  225. data/vendor/assets/stylesheets/twitter/_progress-bars.scss +117 -0
  226. data/vendor/assets/stylesheets/twitter/_reset.scss +131 -0
  227. data/vendor/assets/stylesheets/twitter/_responsive-1200px-min.scss +26 -0
  228. data/vendor/assets/stylesheets/twitter/_responsive-767px-max.scss +149 -0
  229. data/vendor/assets/stylesheets/twitter/_responsive-768px-979px.scss +17 -0
  230. data/vendor/assets/stylesheets/twitter/_responsive-navbar.scss +153 -0
  231. data/vendor/assets/stylesheets/twitter/_responsive-utilities.scss +41 -0
  232. data/vendor/assets/stylesheets/twitter/_scaffolding.scss +29 -0
  233. data/vendor/assets/stylesheets/twitter/_sprites.scss +191 -0
  234. data/vendor/assets/stylesheets/twitter/_tables.scss +155 -0
  235. data/vendor/assets/stylesheets/twitter/_thumbnails.scss +47 -0
  236. data/vendor/assets/stylesheets/twitter/_tooltip.scss +35 -0
  237. data/vendor/assets/stylesheets/twitter/_type.scss +232 -0
  238. data/vendor/assets/stylesheets/twitter/_utilities.scss +23 -0
  239. data/vendor/assets/stylesheets/twitter/_variables.scss +204 -0
  240. data/vendor/assets/stylesheets/twitter/_wells.scss +27 -0
  241. data/vendor/assets/stylesheets/twitter/bootstrap.scss +62 -0
  242. data/vendor/assets/stylesheets/twitter/responsive.scss +48 -0
  243. metadata +304 -0
@@ -0,0 +1,233 @@
1
+ /*
2
+ * Copyright 2011 Twitter, Inc.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ var Hogan = {};
17
+
18
+ (function (Hogan) {
19
+ Hogan.Template = function constructor(renderFunc, text, compiler) {
20
+ if (renderFunc) {
21
+ this.r = renderFunc;
22
+ }
23
+ this.c = compiler;
24
+ this.text = text || '';
25
+ }
26
+
27
+ Hogan.Template.prototype = {
28
+ // render: replaced by generated code.
29
+ r: function (context, partials, indent) { return ''; },
30
+
31
+ // variable escaping
32
+ v: hoganEscape,
33
+
34
+ render: function render(context, partials, indent) {
35
+ return this.ri([context], partials || {}, indent);
36
+ },
37
+
38
+ // render internal -- a hook for overrides that catches partials too
39
+ ri: function (context, partials, indent) {
40
+ return this.r(context, partials, indent);
41
+ },
42
+
43
+ // tries to find a partial in the curent scope and render it
44
+ rp: function(name, context, partials, indent) {
45
+ var partial = partials[name];
46
+
47
+ if (!partial) {
48
+ return '';
49
+ }
50
+
51
+ if (this.c && typeof partial == 'string') {
52
+ partial = this.c.compile(partial);
53
+ }
54
+
55
+ return partial.ri(context, partials, indent);
56
+ },
57
+
58
+ // render a section
59
+ rs: function(context, partials, section) {
60
+ var buf = '',
61
+ tail = context[context.length - 1];
62
+
63
+ if (!isArray(tail)) {
64
+ return buf = section(context, partials);
65
+ }
66
+
67
+ for (var i = 0; i < tail.length; i++) {
68
+ context.push(tail[i]);
69
+ buf += section(context, partials);
70
+ context.pop();
71
+ }
72
+
73
+ return buf;
74
+ },
75
+
76
+ // maybe start a section
77
+ s: function(val, ctx, partials, inverted, start, end, tags) {
78
+ var pass;
79
+
80
+ if (isArray(val) && val.length === 0) {
81
+ return false;
82
+ }
83
+
84
+ if (typeof val == 'function') {
85
+ val = this.ls(val, ctx, partials, inverted, start, end, tags);
86
+ }
87
+
88
+ pass = (val === '') || !!val;
89
+
90
+ if (!inverted && pass && ctx) {
91
+ ctx.push((typeof val == 'object') ? val : ctx[ctx.length - 1]);
92
+ }
93
+
94
+ return pass;
95
+ },
96
+
97
+ // find values with dotted names
98
+ d: function(key, ctx, partials, returnFound) {
99
+ var names = key.split('.'),
100
+ val = this.f(names[0], ctx, partials, returnFound),
101
+ cx = null;
102
+
103
+ if (key === '.' && isArray(ctx[ctx.length - 2])) {
104
+ return ctx[ctx.length - 1];
105
+ }
106
+
107
+ for (var i = 1; i < names.length; i++) {
108
+ if (val && typeof val == 'object' && names[i] in val) {
109
+ cx = val;
110
+ val = val[names[i]];
111
+ } else {
112
+ val = '';
113
+ }
114
+ }
115
+
116
+ if (returnFound && !val) {
117
+ return false;
118
+ }
119
+
120
+ if (!returnFound && typeof val == 'function') {
121
+ ctx.push(cx);
122
+ val = this.lv(val, ctx, partials);
123
+ ctx.pop();
124
+ }
125
+
126
+ return val;
127
+ },
128
+
129
+ // find values with normal names
130
+ f: function(key, ctx, partials, returnFound) {
131
+ var val = false,
132
+ v = null,
133
+ found = false;
134
+
135
+ for (var i = ctx.length - 1; i >= 0; i--) {
136
+ v = ctx[i];
137
+ if (v && typeof v == 'object' && key in v) {
138
+ val = v[key];
139
+ found = true;
140
+ break;
141
+ }
142
+ }
143
+
144
+ if (!found) {
145
+ return (returnFound) ? false : "";
146
+ }
147
+
148
+ if (!returnFound && typeof val == 'function') {
149
+ val = this.lv(val, ctx, partials);
150
+ }
151
+
152
+ return val;
153
+ },
154
+
155
+ // higher order templates
156
+ ho: function(val, cx, partials, text, tags) {
157
+ var compiler = this.c;
158
+ var t = val.call(cx, text, function(t) {
159
+ return compiler.compile(t, {delimiters: tags}).render(cx, partials);
160
+ });
161
+ var s = compiler.compile(t.toString(), {delimiters: tags}).render(cx, partials);
162
+ this.b = s;
163
+ return false;
164
+ },
165
+
166
+ // higher order template result buffer
167
+ b: '',
168
+
169
+ // lambda replace section
170
+ ls: function(val, ctx, partials, inverted, start, end, tags) {
171
+ var cx = ctx[ctx.length - 1],
172
+ t = null;
173
+
174
+ if (!inverted && this.c && val.length > 0) {
175
+ return this.ho(val, cx, partials, this.text.substring(start, end), tags);
176
+ }
177
+
178
+ t = val.call(cx);
179
+
180
+ if (typeof t == 'function') {
181
+ if (inverted) {
182
+ return true;
183
+ } else if (this.c) {
184
+ return this.ho(t, cx, partials, this.text.substring(start, end), tags);
185
+ }
186
+ }
187
+
188
+ return t;
189
+ },
190
+
191
+ // lambda replace variable
192
+ lv: function(val, ctx, partials) {
193
+ var cx = ctx[ctx.length - 1];
194
+ var result = val.call(cx);
195
+ if (typeof result == 'function') {
196
+ result = result.call(cx);
197
+ }
198
+ result = result.toString();
199
+
200
+ if (this.c && ~result.indexOf("{{")) {
201
+ return this.c.compile(result).render(cx, partials);
202
+ }
203
+
204
+ return result;
205
+ }
206
+
207
+ };
208
+
209
+ var rAmp = /&/g,
210
+ rLt = /</g,
211
+ rGt = />/g,
212
+ rApos =/\'/g,
213
+ rQuot = /\"/g,
214
+ hChars =/[&<>\"\']/;
215
+
216
+ function hoganEscape(str) {
217
+ str = String((str === null || str === undefined) ? '' : str);
218
+ return hChars.test(str) ?
219
+ str
220
+ .replace(rAmp,'&amp;')
221
+ .replace(rLt,'&lt;')
222
+ .replace(rGt,'&gt;')
223
+ .replace(rApos,'&#39;')
224
+ .replace(rQuot, '&quot;') :
225
+ str;
226
+ }
227
+
228
+ var isArray = Array.isArray || function(a) {
229
+ return Object.prototype.toString.call(a) === '[object Array]';
230
+ };
231
+
232
+ })(typeof exports !== 'undefined' ? exports : Hogan);
233
+
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @preserve Copyright 2012 Twitter, Inc.
3
+ * @license http://www.apache.org/licenses/LICENSE-2.0.txt
4
+ */
5
+ var Hogan={};(function(a){function h(a){return a=String(a===null||a===undefined?"":a),g.test(a)?a.replace(b,"&amp;").replace(c,"&lt;").replace(d,"&gt;").replace(e,"&#39;").replace(f,"&quot;"):a}a.Template=function j(a,b,c){a&&(this.r=a),this.c=c,this.text=b||""},a.Template.prototype={r:function(a,b,c){return""},v:h,render:function(b,c,d){return this.ri([b],c||{},d)},ri:function(a,b,c){return this.r(a,b,c)},rp:function(a,b,c,d){var e=c[a];return e?(this.c&&typeof e=="string"&&(e=this.c.compile(e)),e.ri(b,c,d)):""},rs:function(a,b,c){var d="",e=a[a.length-1];if(!i(e))return d=c(a,b);for(var f=0;f<e.length;f++)a.push(e[f]),d+=c(a,b),a.pop();return d},s:function(a,b,c,d,e,f,g){var h;return i(a)&&a.length===0?!1:(typeof a=="function"&&(a=this.ls(a,b,c,d,e,f,g)),h=a===""||!!a,!d&&h&&b&&b.push(typeof a=="object"?a:b[b.length-1]),h)},d:function(a,b,c,d){var e=a.split("."),f=this.f(e[0],b,c,d),g=null;if(a==="."&&i(b[b.length-2]))return b[b.length-1];for(var h=1;h<e.length;h++)f&&typeof f=="object"&&e[h]in f?(g=f,f=f[e[h]]):f="";return d&&!f?!1:(!d&&typeof f=="function"&&(b.push(g),f=this.lv(f,b,c),b.pop()),f)},f:function(a,b,c,d){var e=!1,f=null,g=!1;for(var h=b.length-1;h>=0;h--){f=b[h];if(f&&typeof f=="object"&&a in f){e=f[a],g=!0;break}}return g?(!d&&typeof e=="function"&&(e=this.lv(e,b,c)),e):d?!1:""},ho:function(a,b,c,d,e){var f=this.c,g=a.call(b,d,function(a){return f.compile(a,{delimiters:e}).render(b,c)}),h=f.compile(g.toString(),{delimiters:e}).render(b,c);return this.b=h,!1},b:"",ls:function(a,b,c,d,e,f,g){var h=b[b.length-1],i=null;if(!d&&this.c&&a.length>0)return this.ho(a,h,c,this.text.substring(e,f),g);i=a.call(h);if(typeof i=="function"){if(d)return!0;if(this.c)return this.ho(i,h,c,this.text.substring(e,f),g)}return i},lv:function(a,b,c){var d=b[b.length-1],e=a.call(d);return typeof e=="function"&&(e=e.call(d)),e=e.toString(),this.c&&~e.indexOf("{{")?this.c.compile(e).render(d,c):e}};var b=/&/g,c=/</g,d=/>/g,e=/\'/g,f=/\"/g,g=/[&<>\"\']/,i=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"}})(typeof exports!="undefined"?exports:Hogan)
@@ -0,0 +1,139 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
3
+ <!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
4
+ <!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
5
+ <!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
6
+ <head>
7
+
8
+ <!-- Basic Page Needs
9
+ ================================================== -->
10
+ <meta charset="utf-8">
11
+ <title>Hogan.js</title>
12
+ <meta name="description" content="">
13
+ <meta name="author" content="">
14
+ <!--[if lt IE 9]>
15
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
16
+ <![endif]-->
17
+
18
+ <!-- Mobile Specific Metas
19
+ ================================================== -->
20
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
21
+ <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
22
+
23
+ <!-- CSS
24
+ ================================================== -->
25
+ <link rel="stylesheet" href="stylesheets/skeleton.css">
26
+ <link rel="stylesheet" href="stylesheets/layout.css">
27
+
28
+ </head>
29
+ <body>
30
+
31
+
32
+
33
+ <!-- Primary Page Layout
34
+ ================================================== -->
35
+
36
+ <header class="hogan-hero">
37
+ <div class="stripes"></div>
38
+ <div class="noise"></div>
39
+ <div class="container">
40
+ <h1>Hogan.js</h1>
41
+ <h3>JavaScript templating from Twitter.</h3>
42
+ <a href="https://github.com/twitter/hogan.js" class="download button">View on Github</a>
43
+ </div>
44
+ </header>
45
+ <div class="primary container">
46
+
47
+ <!-- Layout 1 -->
48
+ <div class="five columns">
49
+ <h4>Getting started</h4>
50
+ <p>
51
+ Hogan.js is a 2.5k JS templating engine developed at Twitter. Use it as a part of your asset packager to compile templates ahead of time or include it in your browser to handle dynamic templates.
52
+ </p>
53
+ <p>
54
+ If you're developing with Node.js, just use NPM to add the Hogan package.
55
+ </p>
56
+ <pre><code>$ npm install hogan.js</code></pre>
57
+ <p>
58
+ Alternatively, drop hogan.js in your browser by adding the following script.
59
+ </p>
60
+ <pre><code>&lt;script src="http://twitter.github.com/hogan.js/builds/{{version}}/hogan.js"&gt;&lt;/script&gt;</code></pre>
61
+
62
+ </div>
63
+ <div class="ten columns offset-by-one">
64
+ <script src="https://gist.github.com/1484613.js"> </script>
65
+ </div>
66
+ <div class="hogan-divider">
67
+ <div class="hogan-icon"></div>
68
+ </div>
69
+
70
+ <!-- Layout 2 -->
71
+ <div class="five columns">
72
+ <h4>Templates</h4>
73
+ <p>
74
+ Hogan.js was developed against the mustache test suite, so everything that holds true for templates as specified <a href="//mustache.github.com/mustache.5.html">here</a>, is also the case for hogan.js.
75
+ </p>
76
+ <p>
77
+ That means you get variables, sections, lambdas, partials, filters, and everything else you've come to expect from mustache templating - only much, much faster.
78
+ </p>
79
+ </div>
80
+ <div class="ten columns offset-by-one">
81
+ <script src="https://gist.github.com/1484342.js"></script>
82
+ </div>
83
+ <div class="hogan-divider">
84
+ <div class="hogan-icon"></div>
85
+ </div>
86
+
87
+ <!-- Layout 3 -->
88
+ <div class="five columns">
89
+ <h4>Compiling</h4>
90
+ <p>
91
+ Use <code>hogan.compile()</code> to precompile your templates into vanilla JS.
92
+ </p>
93
+ <p>
94
+ It's best to serve your templates precompiled whenever you can (rather than the raw templates), as parsing is the most time consuming operation.
95
+ </p>
96
+ <p>
97
+ </p>
98
+ </div>
99
+ <div class="ten columns offset-by-one">
100
+ <script src="https://gist.github.com/1484513.js"> </script>
101
+ </div>
102
+ <div class="hogan-divider">
103
+ <div class="hogan-icon"></div>
104
+ </div>
105
+
106
+ <!-- Layout 4 -->
107
+ <div class="five columns">
108
+ <h4 id='rendering'>Rendering</h4>
109
+ <p>
110
+ Once compiled, call the <code>render()</code> method with a context and optional partials object.
111
+ </p>
112
+ <p>
113
+ If supplying partials, you can compile them ahead of time, or pass string templates.</p>
114
+ <p>
115
+ </p>
116
+ </div>
117
+ <div class="ten columns offset-by-one">
118
+ <script src="https://gist.github.com/1575714.js"> </script>
119
+ </div>
120
+
121
+ <div class="sixteen columns hogan-footer">
122
+ <span class="copyright">
123
+ Designed and built with all the love in the world <a href="http://twitter.com/twitter" target="_blank">@twitter</a> by <a href="http://twitter.com/sayrer" target="_blank">@sayrer</a> and <a href="http://twitter.com/fat" target="_blank">@fat</a>.<br />
124
+ Code licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0</a>. Documentation licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
125
+ </span>
126
+ <span class="colophon">
127
+ <a href="#">Back to top</a>
128
+ </span>
129
+ </div>
130
+
131
+
132
+
133
+ </div><!-- container -->
134
+
135
+
136
+ <!-- End Document
137
+ ================================================== -->
138
+ </body>
139
+ </html>
@@ -0,0 +1,206 @@
1
+
2
+
3
+ /* #Reset & Basics (Inspired by E. Meyers)
4
+ ================================================== */
5
+ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
6
+ margin: 0;
7
+ padding: 0;
8
+ border: 0;
9
+ font-size: 100%;
10
+ font: inherit;
11
+ vertical-align: baseline; }
12
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
13
+ display: block; }
14
+ body {
15
+ line-height: 1; }
16
+ ol, ul {
17
+ list-style: none; }
18
+ blockquote, q {
19
+ quotes: none; }
20
+ blockquote:before, blockquote:after,
21
+ q:before, q:after {
22
+ content: '';
23
+ content: none; }
24
+ table {
25
+ border-collapse: collapse;
26
+ border-spacing: 0; }
27
+
28
+
29
+ /* #Basic Styles
30
+ ================================================== */
31
+ body {
32
+ background: #fff;
33
+ font: 14px/24px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
34
+ color: #000;
35
+ -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
36
+ -webkit-text-size-adjust: 100%;
37
+ }
38
+ a {
39
+ color: #999113;
40
+ text-decoration: none;
41
+ }
42
+ a:hover {
43
+ color: #7b750e;
44
+ text-decoration: underline;
45
+ }
46
+
47
+
48
+ /* #Typography
49
+ ================================================== */
50
+ h1, h2, h3, h4, h5, h6 {
51
+ font-weight: bold; }
52
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
53
+ h1 { font-size: 75px; line-height: 80px; margin-bottom: 14px;}
54
+ h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; }
55
+ h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; }
56
+ h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; }
57
+ h5 { font-size: 17px; line-height: 24px; }
58
+ h6 { font-size: 14px; line-height: 21px; }
59
+ p { margin-bottom: 22px; }
60
+
61
+
62
+ /* #Main styles
63
+ ================================================== */
64
+
65
+ /* Hogan Hero */
66
+ .hogan-hero {
67
+ position: relative;
68
+ background: #333; /* Old browsers */
69
+ background: -moz-radial-gradient(center, ellipse cover, #333 0%, #000 100%); /* FF3.6+ */
70
+ background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#333), color-stop(100%,#000)); /* Chrome,Safari4+ */
71
+ background: -webkit-radial-gradient(center, ellipse cover, #333 0%,#000 100%); /* Chrome10+,Safari5.1+ */
72
+ background: -o-radial-gradient(center, ellipse cover, #333 0%,#000 100%); /* Opera 12+ */
73
+ background: -ms-radial-gradient(center, ellipse cover, #333 0%,#000 100%); /* IE10+ */
74
+ background: radial-gradient(center, ellipse cover, #333 0%,#000 100%); /* W3C */
75
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#333', endColorstr='#000',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
76
+ }
77
+ .hogan-hero .container {
78
+ padding: 180px 0;
79
+ }
80
+ .hogan-hero h1 {
81
+ letter-spacing: -3px;
82
+ color: #fff;
83
+ position: relative;
84
+ margin-bottom: 5px;
85
+ }
86
+ .hogan-hero h3 {
87
+ max-width: 650px;
88
+ margin-bottom: 20px;
89
+ color: #fff;
90
+ }
91
+ .hogan-hero .noise,
92
+ .hogan-hero .stripes {
93
+ position: absolute;
94
+ top: 0;
95
+ left: 0;
96
+ right: 0;
97
+ bottom: 0;
98
+ }
99
+ .hogan-hero .noise {
100
+ background: url(../images/noise.png) repeat;
101
+ }
102
+ .hogan-hero .stripes {
103
+ background: url(../images/stripes.png) repeat;
104
+ }
105
+
106
+ /* Primary content container */
107
+ .primary.container {
108
+ padding-top: 100px;
109
+ }
110
+
111
+ /*Hogan divider */
112
+ .hogan-divider {
113
+ padding-top: 60px;
114
+ border-bottom: 1px solid #ddd;
115
+ margin-bottom: 60px;
116
+ clear: both;
117
+ position: relative;
118
+ }
119
+ .hogan-icon {
120
+ width: 40px;
121
+ height: 30px;
122
+ position: absolute;
123
+ left: 50%;
124
+ top: 46px;
125
+ margin-left: -20px;
126
+ background: url('../images/small-hogan-icon.png') white no-repeat center center;
127
+ }
128
+
129
+ /* Button style */
130
+ .button {
131
+ display: inline-block;
132
+ cursor: pointer;
133
+ background: #dfd52e;
134
+ border-radius: 3px;
135
+ margin-bottom: 20px;
136
+ color: #000;
137
+ text-transform: uppercase;
138
+ text-decoration: none;
139
+ font-size: 15px;
140
+ padding: 0 34px;
141
+ line-height: 46px;
142
+ font-weight: bold;
143
+ -webkit-transition: background-color .3s ease-in-out;
144
+ -moz-transition: background-color .3s ease-in-out;
145
+ transition: background-color .3s ease-in-out;
146
+
147
+ }
148
+ .button:hover {
149
+ text-decoration: inherit;
150
+ color: inherit;
151
+ background-color: #f5e810;
152
+ }
153
+
154
+ /* Hogan footer */
155
+ .hogan-footer {
156
+ border-top: 1px solid #ddd;
157
+ margin-top: 60px;
158
+ padding: 20px 0 40px;
159
+ color: #999;
160
+ font-size: 12px;
161
+ }
162
+ .hogan-footer .copyright {
163
+ float: left;
164
+ }
165
+ .hogan-footer .colophon {
166
+ float: right;
167
+ }
168
+
169
+ pre, code {
170
+ background: #F8F8FF;
171
+ border: 1px solid #DDD;
172
+ padding: 5px 10px;
173
+ margin-bottom: 20px;
174
+ font-family: courier;
175
+ overflow: hidden;
176
+ }
177
+
178
+ pre code {
179
+ border: 0;
180
+ padding: 0;
181
+ margin-bottom: 0;
182
+ }
183
+
184
+
185
+ /* #Media Queries
186
+ ================================================== */
187
+
188
+ /* Smaller than standard 960 (devices and browsers) */
189
+ @media only screen and (max-width: 959px) {}
190
+
191
+ /* Tablet Portrait size to standard 960 (devices and browsers) */
192
+ @media only screen and (min-width: 768px) and (max-width: 959px) {}
193
+
194
+ /* All Mobile Sizes (devices and browser) */
195
+ @media only screen and (max-width: 767px) {
196
+ .hogan-hero .container {
197
+ padding: 100px 0;
198
+ }
199
+ }
200
+
201
+ /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
202
+ @media only screen and (min-width: 480px) and (max-width: 767px) {}
203
+
204
+ /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
205
+ @media only screen and (max-width: 479px) {}
206
+