middleman-core 4.0.0.rc.1 → 4.0.0.rc.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/Rakefile +0 -1
  4. data/cucumber.yml +2 -0
  5. data/features/asset_hash.feature +25 -16
  6. data/features/asset_host.feature +5 -1
  7. data/features/chained_templates.feature +8 -5
  8. data/features/clean_build.feature +18 -0
  9. data/features/cli/preview_server-hook.feature +17 -0
  10. data/features/cli/preview_server.feature +533 -0
  11. data/features/cli_init.feature +3 -3
  12. data/features/collections.feature +5 -3
  13. data/features/content_type.feature +3 -0
  14. data/features/default-layout.feature +90 -0
  15. data/features/extension_api_deprecations.feature +10 -0
  16. data/features/front-matter.feature +6 -1
  17. data/features/i18n_link_to.feature +209 -0
  18. data/features/import_files.feature +17 -0
  19. data/features/javascript-testing.feature +18 -0
  20. data/features/markdown_redcarpet.feature +0 -1
  21. data/features/markdown_redcarpet_in_haml.feature +0 -1
  22. data/features/minify_css.feature +87 -5
  23. data/features/minify_javascript.feature +55 -8
  24. data/features/move_files.feature +44 -0
  25. data/features/redirects.feature +1 -0
  26. data/features/relative_assets.feature +13 -2
  27. data/features/slim.feature +1 -1
  28. data/features/stylus.feature +0 -1
  29. data/features/support/env.rb +5 -1
  30. data/features/support/preserve_mime_types.rb +7 -0
  31. data/fixtures/asset-hash-app/source/fonts/fontawesome-webfont.woff +0 -0
  32. data/fixtures/asset-hash-app/source/fonts/fontawesome-webfont.woff2 +0 -0
  33. data/fixtures/asset-hash-app/source/stylesheets/site.css.scss +2 -2
  34. data/fixtures/asset-hash-app/source/stylesheets/uses_fonts.css +4 -0
  35. data/fixtures/asset-host-app/source/asset_host.html.erb +5 -1
  36. data/fixtures/chained-app/source/test.erb.combobreaker.str.erb +8 -0
  37. data/fixtures/clean-app/config-hidden-dir-after.rb +5 -0
  38. data/fixtures/clean-app/config-hidden-dir-before.rb +1 -0
  39. data/fixtures/content-type-app/source/index.php +1 -0
  40. data/fixtures/extension-api-deprecations-app/config.rb +11 -0
  41. data/fixtures/extension-api-deprecations-app/source/index.html.erb +1 -0
  42. data/fixtures/extension-api-deprecations-app/source/layouts/layout.erb +3 -0
  43. data/fixtures/frontmatter-app/config.rb +1 -0
  44. data/fixtures/frontmatter-app/source/front-matter-haml.html.haml +6 -0
  45. data/fixtures/frontmatter-neighbor-app/config.rb +1 -1
  46. data/fixtures/frontmatter-settings-neighbor-app/config.rb +1 -1
  47. data/fixtures/i18n-test-app/source/localizable/partials/index.html.erb +3 -1
  48. data/fixtures/import-app/bower.json +21 -0
  49. data/fixtures/import-app/bower_components/jquery/.bower.json +39 -0
  50. data/fixtures/import-app/bower_components/jquery/MIT-LICENSE.txt +21 -0
  51. data/fixtures/import-app/bower_components/jquery/bower.json +28 -0
  52. data/fixtures/import-app/bower_components/jquery/dist/jquery.js +9210 -0
  53. data/fixtures/import-app/bower_components/jquery/dist/jquery.min.js +5 -0
  54. data/fixtures/import-app/bower_components/jquery/dist/jquery.min.map +1 -0
  55. data/fixtures/import-app/bower_components/jquery/src/ajax.js +786 -0
  56. data/fixtures/import-app/bower_components/jquery/src/ajax/jsonp.js +89 -0
  57. data/fixtures/import-app/bower_components/jquery/src/ajax/load.js +75 -0
  58. data/fixtures/import-app/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  59. data/fixtures/import-app/bower_components/jquery/src/ajax/parseXML.js +28 -0
  60. data/fixtures/import-app/bower_components/jquery/src/ajax/script.js +64 -0
  61. data/fixtures/import-app/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  62. data/fixtures/import-app/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  63. data/fixtures/import-app/bower_components/jquery/src/ajax/xhr.js +136 -0
  64. data/fixtures/import-app/bower_components/jquery/src/attributes.js +11 -0
  65. data/fixtures/import-app/bower_components/jquery/src/attributes/attr.js +141 -0
  66. data/fixtures/import-app/bower_components/jquery/src/attributes/classes.js +158 -0
  67. data/fixtures/import-app/bower_components/jquery/src/attributes/prop.js +94 -0
  68. data/fixtures/import-app/bower_components/jquery/src/attributes/support.js +35 -0
  69. data/fixtures/import-app/bower_components/jquery/src/attributes/val.js +161 -0
  70. data/fixtures/import-app/bower_components/jquery/src/callbacks.js +205 -0
  71. data/fixtures/import-app/bower_components/jquery/src/core.js +502 -0
  72. data/fixtures/import-app/bower_components/jquery/src/core/access.js +60 -0
  73. data/fixtures/import-app/bower_components/jquery/src/core/init.js +123 -0
  74. data/fixtures/import-app/bower_components/jquery/src/core/parseHTML.js +39 -0
  75. data/fixtures/import-app/bower_components/jquery/src/core/ready.js +97 -0
  76. data/fixtures/import-app/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  77. data/fixtures/import-app/bower_components/jquery/src/css.js +450 -0
  78. data/fixtures/import-app/bower_components/jquery/src/css/addGetHookIf.js +22 -0
  79. data/fixtures/import-app/bower_components/jquery/src/css/curCSS.js +57 -0
  80. data/fixtures/import-app/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  81. data/fixtures/import-app/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  82. data/fixtures/import-app/bower_components/jquery/src/css/support.js +96 -0
  83. data/fixtures/import-app/bower_components/jquery/src/css/swap.js +28 -0
  84. data/fixtures/import-app/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  85. data/fixtures/import-app/bower_components/jquery/src/css/var/getStyles.js +12 -0
  86. data/fixtures/import-app/bower_components/jquery/src/css/var/isHidden.js +13 -0
  87. data/fixtures/import-app/bower_components/jquery/src/css/var/rmargin.js +3 -0
  88. data/fixtures/import-app/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  89. data/fixtures/import-app/bower_components/jquery/src/data.js +178 -0
  90. data/fixtures/import-app/bower_components/jquery/src/data/Data.js +181 -0
  91. data/fixtures/import-app/bower_components/jquery/src/data/accepts.js +20 -0
  92. data/fixtures/import-app/bower_components/jquery/src/data/var/data_priv.js +5 -0
  93. data/fixtures/import-app/bower_components/jquery/src/data/var/data_user.js +5 -0
  94. data/fixtures/import-app/bower_components/jquery/src/deferred.js +149 -0
  95. data/fixtures/import-app/bower_components/jquery/src/deprecated.js +13 -0
  96. data/fixtures/import-app/bower_components/jquery/src/dimensions.js +50 -0
  97. data/fixtures/import-app/bower_components/jquery/src/effects.js +648 -0
  98. data/fixtures/import-app/bower_components/jquery/src/effects/Tween.js +114 -0
  99. data/fixtures/import-app/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  100. data/fixtures/import-app/bower_components/jquery/src/event.js +868 -0
  101. data/fixtures/import-app/bower_components/jquery/src/event/ajax.js +13 -0
  102. data/fixtures/import-app/bower_components/jquery/src/event/alias.js +39 -0
  103. data/fixtures/import-app/bower_components/jquery/src/event/support.js +9 -0
  104. data/fixtures/import-app/bower_components/jquery/src/exports/amd.js +24 -0
  105. data/fixtures/import-app/bower_components/jquery/src/exports/global.js +32 -0
  106. data/fixtures/import-app/bower_components/jquery/src/intro.js +44 -0
  107. data/fixtures/import-app/bower_components/jquery/src/jquery.js +37 -0
  108. data/fixtures/import-app/bower_components/jquery/src/manipulation.js +580 -0
  109. data/fixtures/import-app/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  110. data/fixtures/import-app/bower_components/jquery/src/manipulation/support.js +32 -0
  111. data/fixtures/import-app/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  112. data/fixtures/import-app/bower_components/jquery/src/offset.js +207 -0
  113. data/fixtures/import-app/bower_components/jquery/src/outro.js +1 -0
  114. data/fixtures/import-app/bower_components/jquery/src/queue.js +142 -0
  115. data/fixtures/import-app/bower_components/jquery/src/queue/delay.js +22 -0
  116. data/fixtures/import-app/bower_components/jquery/src/selector-native.js +172 -0
  117. data/fixtures/import-app/bower_components/jquery/src/selector-sizzle.js +14 -0
  118. data/fixtures/import-app/bower_components/jquery/src/selector.js +1 -0
  119. data/fixtures/import-app/bower_components/jquery/src/serialize.js +111 -0
  120. data/fixtures/import-app/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  121. data/fixtures/import-app/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  122. data/fixtures/import-app/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  123. data/fixtures/import-app/bower_components/jquery/src/traversing.js +199 -0
  124. data/fixtures/import-app/bower_components/jquery/src/traversing/findFilter.js +100 -0
  125. data/fixtures/import-app/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  126. data/fixtures/import-app/bower_components/jquery/src/var/arr.js +3 -0
  127. data/fixtures/import-app/bower_components/jquery/src/var/class2type.js +4 -0
  128. data/fixtures/import-app/bower_components/jquery/src/var/concat.js +5 -0
  129. data/fixtures/import-app/bower_components/jquery/src/var/hasOwn.js +5 -0
  130. data/fixtures/import-app/bower_components/jquery/src/var/indexOf.js +5 -0
  131. data/fixtures/import-app/bower_components/jquery/src/var/pnum.js +3 -0
  132. data/fixtures/import-app/bower_components/jquery/src/var/push.js +5 -0
  133. data/fixtures/import-app/bower_components/jquery/src/var/rnotwhite.js +3 -0
  134. data/fixtures/import-app/bower_components/jquery/src/var/slice.js +5 -0
  135. data/fixtures/import-app/bower_components/jquery/src/var/strundefined.js +3 -0
  136. data/fixtures/import-app/bower_components/jquery/src/var/support.js +4 -0
  137. data/fixtures/import-app/bower_components/jquery/src/var/toString.js +5 -0
  138. data/fixtures/import-app/bower_components/jquery/src/wrap.js +79 -0
  139. data/fixtures/import-app/config.rb +7 -0
  140. data/fixtures/{twitter-bootstrap-app/config.rb → import-app/source/test.html} +0 -0
  141. data/fixtures/import-app/static.html +1 -0
  142. data/fixtures/javascript-app/config.rb +0 -0
  143. data/fixtures/javascript-app/source/index.html +17 -0
  144. data/fixtures/minify-css-app/source/inline-css.php +8 -0
  145. data/fixtures/minify-css-app/source/stylesheets/base/_base.scss +15 -0
  146. data/fixtures/minify-css-app/source/stylesheets/base/_buttons.scss +35 -0
  147. data/fixtures/minify-css-app/source/stylesheets/base/_forms.scss +90 -0
  148. data/fixtures/minify-css-app/source/stylesheets/base/_grid-settings.scss +14 -0
  149. data/fixtures/minify-css-app/source/stylesheets/base/_lists.scss +31 -0
  150. data/fixtures/minify-css-app/source/stylesheets/base/_tables.scss +25 -0
  151. data/fixtures/minify-css-app/source/stylesheets/base/_typography.scss +49 -0
  152. data/fixtures/minify-css-app/source/stylesheets/base/_variables.scss +42 -0
  153. data/fixtures/minify-css-app/source/stylesheets/bourbon/_bourbon-deprecated-upcoming.scss +411 -0
  154. data/fixtures/minify-css-app/source/stylesheets/bourbon/_bourbon.scss +87 -0
  155. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_border-color.scss +26 -0
  156. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_border-radius.scss +48 -0
  157. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_border-style.scss +25 -0
  158. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_border-width.scss +25 -0
  159. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_buttons.scss +64 -0
  160. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_clearfix.scss +25 -0
  161. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_ellipsis.scss +30 -0
  162. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_font-stacks.scss +31 -0
  163. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_hide-text.scss +27 -0
  164. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_margin.scss +26 -0
  165. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_padding.scss +26 -0
  166. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_position.scss +48 -0
  167. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_prefixer.scss +66 -0
  168. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_retina-image.scss +25 -0
  169. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_size.scss +51 -0
  170. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_text-inputs.scss +113 -0
  171. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_timing-functions.scss +34 -0
  172. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_triangle.scss +63 -0
  173. data/fixtures/minify-css-app/source/stylesheets/bourbon/addons/_word-wrap.scss +29 -0
  174. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_animation.scss +43 -0
  175. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_appearance.scss +3 -0
  176. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_backface-visibility.scss +3 -0
  177. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_background-image.scss +42 -0
  178. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_background.scss +55 -0
  179. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_border-image.scss +59 -0
  180. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_calc.scss +4 -0
  181. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_columns.scss +47 -0
  182. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_filter.scss +4 -0
  183. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_flex-box.scss +287 -0
  184. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_font-face.scss +24 -0
  185. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_font-feature-settings.scss +4 -0
  186. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_hidpi-media-query.scss +10 -0
  187. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_hyphens.scss +4 -0
  188. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_image-rendering.scss +14 -0
  189. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_keyframes.scss +36 -0
  190. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_linear-gradient.scss +38 -0
  191. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_perspective.scss +8 -0
  192. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_placeholder.scss +8 -0
  193. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_radial-gradient.scss +39 -0
  194. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_selection.scss +42 -0
  195. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_text-decoration.scss +19 -0
  196. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_transform.scss +15 -0
  197. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_transition.scss +71 -0
  198. data/fixtures/minify-css-app/source/stylesheets/bourbon/css3/_user-select.scss +3 -0
  199. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_assign-inputs.scss +11 -0
  200. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_contains-falsy.scss +20 -0
  201. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_contains.scss +26 -0
  202. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_is-length.scss +11 -0
  203. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_is-light.scss +21 -0
  204. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_is-number.scss +11 -0
  205. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_is-size.scss +13 -0
  206. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_modular-scale.scss +69 -0
  207. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_px-to-em.scss +13 -0
  208. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_px-to-rem.scss +15 -0
  209. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_shade.scss +24 -0
  210. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_strip-units.scss +17 -0
  211. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_tint.scss +24 -0
  212. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_transition-property-name.scss +22 -0
  213. data/fixtures/minify-css-app/source/stylesheets/bourbon/functions/_unpack.scss +27 -0
  214. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_convert-units.scss +21 -0
  215. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_directional-values.scss +96 -0
  216. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_font-source-declaration.scss +43 -0
  217. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_gradient-positions-parser.scss +13 -0
  218. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_linear-angle-parser.scss +25 -0
  219. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_linear-gradient-parser.scss +41 -0
  220. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_linear-positions-parser.scss +61 -0
  221. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_linear-side-corner-parser.scss +31 -0
  222. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_radial-arg-parser.scss +69 -0
  223. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_radial-gradient-parser.scss +50 -0
  224. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_radial-positions-parser.scss +18 -0
  225. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_render-gradients.scss +26 -0
  226. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_shape-size-stripper.scss +10 -0
  227. data/fixtures/minify-css-app/source/stylesheets/bourbon/helpers/_str-to-num.scss +50 -0
  228. data/fixtures/minify-css-app/source/stylesheets/bourbon/settings/_asset-pipeline.scss +7 -0
  229. data/fixtures/minify-css-app/source/stylesheets/bourbon/settings/_prefixer.scss +9 -0
  230. data/fixtures/minify-css-app/source/stylesheets/bourbon/settings/_px-to-em.scss +1 -0
  231. data/fixtures/minify-css-app/source/stylesheets/site.xcss.sass +6 -0
  232. data/fixtures/minify-js-app/source/inline-js.php +22 -0
  233. data/fixtures/minify-js-app/source/javascripts/js_test.xjs +8 -0
  234. data/fixtures/partials-app/source/locals.html.erb +1 -1
  235. data/fixtures/preview-server-app/bin/dns_server.rb +33 -0
  236. data/fixtures/preview-server-app/config.rb +0 -0
  237. data/fixtures/preview-server-app/source/index.html.erb +1 -0
  238. data/fixtures/preview-server-app/source/layout.erb +9 -0
  239. data/fixtures/preview-server-app/source/layouts/custom.erb +8 -0
  240. data/fixtures/preview-server-app/source/real.html +1 -0
  241. data/fixtures/preview-server-app/source/real/index.html.erb +5 -0
  242. data/fixtures/preview-server-app/source/should_be_ignored.html +1 -0
  243. data/fixtures/preview-server-app/source/should_be_ignored2.html +1 -0
  244. data/fixtures/preview-server-app/source/should_be_ignored3.html +1 -0
  245. data/fixtures/preview-server-app/source/static.html +1 -0
  246. data/fixtures/preview-server-hook-app/config.rb +19 -0
  247. data/fixtures/preview-server-hook-app/source/index.html.erb +9 -0
  248. data/fixtures/related-files-app/config.rb +0 -0
  249. data/fixtures/related-files-app/source/index.html.erb +0 -0
  250. data/fixtures/related-files-app/source/partials/_test.erb +0 -0
  251. data/fixtures/related-files-app/source/partials/_test2.haml +0 -0
  252. data/fixtures/related-files-app/source/stylesheets/_include3.sass +0 -0
  253. data/fixtures/related-files-app/source/stylesheets/_include4.scss +0 -0
  254. data/fixtures/related-files-app/source/stylesheets/include1.css +0 -0
  255. data/fixtures/related-files-app/source/stylesheets/include2.css.scss +0 -0
  256. data/fixtures/related-files-app/source/stylesheets/site.css.scss +0 -0
  257. data/fixtures/relative-assets-app/source/absolute_image_relative_css.html.erb +9 -0
  258. data/fixtures/relative-assets-app/source/javascripts/app.js +3 -0
  259. data/fixtures/relative-assets-app/source/relative_image.html.erb +1 -0
  260. data/fixtures/relative-assets-app/source/relative_image_absolute_css.html.erb +9 -0
  261. data/lib/middleman-core/application.rb +44 -18
  262. data/lib/middleman-core/builder.rb +1 -27
  263. data/lib/middleman-core/callback_manager.rb +3 -3
  264. data/lib/middleman-core/configuration.rb +1 -1
  265. data/lib/middleman-core/core_extensions/collections/step_context.rb +1 -1
  266. data/lib/middleman-core/core_extensions/data.rb +2 -2
  267. data/lib/middleman-core/core_extensions/default_helpers.rb +37 -3
  268. data/lib/middleman-core/core_extensions/external_helpers.rb +2 -1
  269. data/lib/middleman-core/core_extensions/front_matter.rb +5 -2
  270. data/lib/middleman-core/core_extensions/i18n.rb +95 -29
  271. data/lib/middleman-core/core_extensions/routing.rb +2 -2
  272. data/lib/middleman-core/dns_resolver.rb +73 -0
  273. data/lib/middleman-core/dns_resolver/basic_network_resolver.rb +52 -0
  274. data/lib/middleman-core/dns_resolver/hosts_resolver.rb +63 -0
  275. data/lib/middleman-core/dns_resolver/local_link_resolver.rb +44 -0
  276. data/lib/middleman-core/dns_resolver/network_resolver.rb +42 -0
  277. data/lib/middleman-core/extension.rb +1 -1
  278. data/lib/middleman-core/extensions/asset_hash.rb +3 -3
  279. data/lib/middleman-core/extensions/automatic_image_sizes.rb +9 -1
  280. data/lib/middleman-core/extensions/minify_css.rb +49 -17
  281. data/lib/middleman-core/extensions/minify_javascript.rb +60 -30
  282. data/lib/middleman-core/extensions/relative_assets.rb +13 -0
  283. data/lib/middleman-core/file_renderer.rb +2 -2
  284. data/lib/middleman-core/meta_pages.rb +1 -1
  285. data/lib/middleman-core/preview_server.rb +109 -47
  286. data/lib/middleman-core/preview_server/checks.rb +81 -0
  287. data/lib/middleman-core/preview_server/information.rb +273 -0
  288. data/lib/middleman-core/preview_server/network_interface_inventory.rb +65 -0
  289. data/lib/middleman-core/preview_server/server_hostname.rb +39 -0
  290. data/lib/middleman-core/preview_server/server_information.rb +153 -0
  291. data/lib/middleman-core/preview_server/server_information_callback_proxy.rb +35 -0
  292. data/lib/middleman-core/preview_server/server_information_validator.rb +18 -0
  293. data/lib/middleman-core/preview_server/server_ip_address.rb +55 -0
  294. data/lib/middleman-core/preview_server/server_url.rb +63 -0
  295. data/lib/middleman-core/preview_server/tcp_port_prober.rb +29 -0
  296. data/lib/middleman-core/rack.rb +7 -1
  297. data/lib/middleman-core/renderers/haml.rb +1 -2
  298. data/lib/middleman-core/renderers/liquid.rb +1 -1
  299. data/lib/middleman-core/renderers/sass.rb +23 -36
  300. data/lib/middleman-core/renderers/sass_functions.rb +20 -22
  301. data/lib/middleman-core/sitemap/extensions/ignores.rb +5 -1
  302. data/lib/middleman-core/sitemap/extensions/import.rb +108 -0
  303. data/lib/middleman-core/sitemap/extensions/move_file.rb +68 -0
  304. data/lib/middleman-core/sitemap/extensions/proxies.rb +7 -2
  305. data/lib/middleman-core/sitemap/extensions/redirects.rb +1 -0
  306. data/lib/middleman-core/sitemap/resource.rb +3 -7
  307. data/lib/middleman-core/sitemap/store.rb +22 -19
  308. data/lib/middleman-core/sources.rb +2 -3
  309. data/lib/middleman-core/sources/source_watcher.rb +21 -37
  310. data/lib/middleman-core/step_definitions.rb +1 -0
  311. data/lib/middleman-core/step_definitions/builder_steps.rb +0 -47
  312. data/lib/middleman-core/step_definitions/commandline_steps.rb +88 -0
  313. data/lib/middleman-core/step_definitions/middleman_steps.rb +51 -6
  314. data/lib/middleman-core/step_definitions/server_steps.rb +21 -53
  315. data/lib/middleman-core/template_context.rb +14 -13
  316. data/lib/middleman-core/util.rb +127 -4
  317. data/lib/middleman-core/util/data.rb +87 -138
  318. data/lib/middleman-core/version.rb +1 -1
  319. data/middleman-core.gemspec +11 -11
  320. data/spec/middleman-core/dns_resolver_spec.rb +118 -0
  321. data/spec/middleman-core/preview_server/server_hostname_spec.rb +39 -0
  322. data/spec/middleman-core/preview_server/server_ip_address_spec.rb +43 -0
  323. data/spec/middleman-core/util_spec.rb +111 -3
  324. data/spec/spec_helper.rb +29 -1
  325. data/spec/support/given.rb +42 -0
  326. metadata +528 -221
  327. data/features/twitter-bootstrap-compile.feature +0 -6
  328. data/features/working_directory.feature +0 -33
  329. data/fixtures/collections-app/config.rb +0 -16
  330. data/fixtures/collections-app/source/index.html.erb +0 -26
  331. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/.gitignore +0 -36
  332. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/.travis.yml +0 -3
  333. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/LICENSE +0 -176
  334. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/README.md +0 -137
  335. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/img/glyphicons-halflings-white.png +0 -0
  336. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/img/glyphicons-halflings.png +0 -0
  337. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/.jshintrc +0 -10
  338. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/README.md +0 -112
  339. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-alert.js +0 -90
  340. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-button.js +0 -96
  341. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-carousel.js +0 -169
  342. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-collapse.js +0 -157
  343. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-dropdown.js +0 -100
  344. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-modal.js +0 -218
  345. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-popover.js +0 -98
  346. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-scrollspy.js +0 -151
  347. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-tab.js +0 -135
  348. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-tooltip.js +0 -275
  349. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-transition.js +0 -61
  350. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-typeahead.js +0 -285
  351. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/index.html +0 -54
  352. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/phantom.js +0 -63
  353. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/server.js +0 -14
  354. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-alert.js +0 -56
  355. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-button.js +0 -77
  356. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-carousel.js +0 -28
  357. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-collapse.js +0 -54
  358. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-dropdown.js +0 -87
  359. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-modal.js +0 -114
  360. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-phantom.js +0 -21
  361. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-popover.js +0 -93
  362. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-scrollspy.js +0 -31
  363. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-tab.js +0 -61
  364. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-tooltip.js +0 -155
  365. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-transition.js +0 -13
  366. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-typeahead.js +0 -148
  367. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/vendor/jquery.js +0 -9252
  368. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/vendor/qunit.css +0 -232
  369. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/vendor/qunit.js +0 -1510
  370. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_accordion.less +0 -33
  371. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_alerts.less +0 -58
  372. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_breadcrumbs.less +0 -24
  373. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_button-groups.less +0 -191
  374. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_buttons.less +0 -191
  375. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_carousel.less +0 -121
  376. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_close.less +0 -29
  377. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_code.less +0 -57
  378. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_component-animations.less +0 -20
  379. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_dropdowns.less +0 -143
  380. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_forms.less +0 -583
  381. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_grid.less +0 -5
  382. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_hero-unit.less +0 -22
  383. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_labels-badges.less +0 -55
  384. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_layouts.less +0 -17
  385. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_mixins.less +0 -646
  386. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_modals.less +0 -90
  387. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_navbar.less +0 -358
  388. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_navs.less +0 -363
  389. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_pager.less +0 -36
  390. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_pagination.less +0 -56
  391. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_popovers.less +0 -49
  392. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_progress-bars.less +0 -117
  393. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_reset.less +0 -131
  394. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-1200px-min.less +0 -26
  395. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-767px-max.less +0 -149
  396. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-768px-979px.less +0 -17
  397. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-navbar.less +0 -153
  398. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-utilities.less +0 -41
  399. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_scaffolding.less +0 -29
  400. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_sprites.less +0 -191
  401. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_tables.less +0 -176
  402. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_thumbnails.less +0 -47
  403. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_tooltip.less +0 -35
  404. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_type.less +0 -232
  405. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_utilities.less +0 -23
  406. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_variables.less +0 -206
  407. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_wells.less +0 -27
  408. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/bootstrap.less +0 -62
  409. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/responsive.less +0 -48
  410. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/css-tests.css +0 -52
  411. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/css-tests.html +0 -917
  412. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/forms.html +0 -179
  413. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/navbar.html +0 -108
  414. data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/package.json +0 -25
  415. data/lib/middleman-core/cli/server.rb +0 -96
@@ -1,121 +0,0 @@
1
- // CAROUSEL
2
- // --------
3
-
4
- .carousel {
5
- position: relative;
6
- margin-bottom: @baseLineHeight;
7
- line-height: 1;
8
- }
9
-
10
- .carousel-inner {
11
- overflow: hidden;
12
- width: 100%;
13
- position: relative;
14
- }
15
-
16
- .carousel {
17
-
18
- .item {
19
- display: none;
20
- position: relative;
21
- .transition(.6s ease-in-out left);
22
- }
23
-
24
- // Account for jankitude on images
25
- .item > img {
26
- display: block;
27
- line-height: 1;
28
- }
29
-
30
- .active,
31
- .next,
32
- .prev { display: block; }
33
-
34
- .active {
35
- left: 0;
36
- }
37
-
38
- .next,
39
- .prev {
40
- position: absolute;
41
- top: 0;
42
- width: 100%;
43
- }
44
-
45
- .next {
46
- left: 100%;
47
- }
48
- .prev {
49
- left: -100%;
50
- }
51
- .next.left,
52
- .prev.right {
53
- left: 0;
54
- }
55
-
56
- .active.left {
57
- left: -100%;
58
- }
59
- .active.right {
60
- left: 100%;
61
- }
62
-
63
- }
64
-
65
- // Left/right controls for nav
66
- // ---------------------------
67
-
68
- .carousel-control {
69
- position: absolute;
70
- top: 40%;
71
- left: 15px;
72
- width: 40px;
73
- height: 40px;
74
- margin-top: -20px;
75
- font-size: 60px;
76
- font-weight: 100;
77
- line-height: 30px;
78
- color: @white;
79
- text-align: center;
80
- background: @grayDarker;
81
- border: 3px solid @white;
82
- .border-radius(23px);
83
- .opacity(50);
84
-
85
- // we can't have this transition here
86
- // because webkit cancels the carousel
87
- // animation if you trip this while
88
- // in the middle of another animation
89
- // ;_;
90
- // .transition(opacity .2s linear);
91
-
92
- // Reposition the right one
93
- &.right {
94
- left: auto;
95
- right: 15px;
96
- }
97
-
98
- // Hover state
99
- &:hover {
100
- color: @white;
101
- text-decoration: none;
102
- .opacity(90);
103
- }
104
- }
105
-
106
- // Caption for text below images
107
- // -----------------------------
108
-
109
- .carousel-caption {
110
- position: absolute;
111
- left: 0;
112
- right: 0;
113
- bottom: 0;
114
- padding: 10px 15px 5px;
115
- background: @grayDark;
116
- background: rgba(0,0,0,.75);
117
- }
118
- .carousel-caption h4,
119
- .carousel-caption p {
120
- color: @white;
121
- }
@@ -1,29 +0,0 @@
1
- // CLOSE ICONS
2
- // -----------
3
-
4
- .close {
5
- float: right;
6
- font-size: 20px;
7
- font-weight: bold;
8
- line-height: @baseLineHeight;
9
- color: @black;
10
- text-shadow: 0 1px 0 rgba(255,255,255,1);
11
- .opacity(20);
12
- &:hover {
13
- color: @black;
14
- text-decoration: none;
15
- cursor: pointer;
16
- .opacity(40);
17
- }
18
- }
19
-
20
- // Additional properties for button version
21
- // iOS requires the button element instead of an anchor tag.
22
- // If you want the anchor version, it requires `href="#"`.
23
- button.close {
24
- padding: 0;
25
- cursor: pointer;
26
- background: transparent;
27
- border: 0;
28
- -webkit-appearance: none;
29
- }
@@ -1,57 +0,0 @@
1
- // Code.less
2
- // Code typography styles for the <code> and <pre> elements
3
- // --------------------------------------------------------
4
-
5
- // Inline and block code styles
6
- code,
7
- pre {
8
- padding: 0 3px 2px;
9
- #font > #family > .monospace;
10
- font-size: @baseFontSize - 1;
11
- color: @grayDark;
12
- .border-radius(3px);
13
- }
14
-
15
- // Inline code
16
- code {
17
- padding: 2px 4px;
18
- color: #d14;
19
- background-color: #f7f7f9;
20
- border: 1px solid #e1e1e8;
21
- }
22
-
23
- // Blocks of code
24
- pre {
25
- display: block;
26
- padding: (@baseLineHeight - 1) / 2;
27
- margin: 0 0 @baseLineHeight / 2;
28
- font-size: @baseFontSize * .925; // 13px to 12px
29
- line-height: @baseLineHeight;
30
- word-break: break-all;
31
- word-wrap: break-word;
32
- white-space: pre;
33
- white-space: pre-wrap;
34
- background-color: #f5f5f5;
35
- border: 1px solid #ccc; // fallback for IE7-8
36
- border: 1px solid rgba(0,0,0,.15);
37
- .border-radius(4px);
38
-
39
- // Make prettyprint styles more spaced out for readability
40
- &.prettyprint {
41
- margin-bottom: @baseLineHeight;
42
- }
43
-
44
- // Account for some code outputs that place code tags in pre tags
45
- code {
46
- padding: 0;
47
- color: inherit;
48
- background-color: transparent;
49
- border: 0;
50
- }
51
- }
52
-
53
- // Enable scrollable blocks of code
54
- .pre-scrollable {
55
- max-height: 340px;
56
- overflow-y: scroll;
57
- }
@@ -1,20 +0,0 @@
1
- // COMPONENT ANIMATIONS
2
- // --------------------
3
-
4
- .fade {
5
- opacity: 0;
6
- .transition(opacity .15s linear);
7
- &.in {
8
- opacity: 1;
9
- }
10
- }
11
-
12
- .collapse {
13
- position: relative;
14
- height: 0;
15
- overflow: hidden;
16
- .transition(height .35s ease);
17
- &.in {
18
- height: auto;
19
- }
20
- }
@@ -1,143 +0,0 @@
1
- // DROPDOWN MENUS
2
- // --------------
3
-
4
- // Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
5
- .dropup,
6
- .dropdown {
7
- position: relative;
8
- }
9
- .dropdown-toggle {
10
- // The caret makes the toggle a bit too tall in IE7
11
- *margin-bottom: -3px;
12
- }
13
- .dropdown-toggle:active,
14
- .open .dropdown-toggle {
15
- outline: 0;
16
- }
17
-
18
- // Dropdown arrow/caret
19
- // --------------------
20
- .caret {
21
- display: inline-block;
22
- width: 0;
23
- height: 0;
24
- vertical-align: top;
25
- border-top: 4px solid @black;
26
- border-right: 4px solid transparent;
27
- border-left: 4px solid transparent;
28
- content: "";
29
- .opacity(30);
30
- }
31
-
32
- // Place the caret
33
- .dropdown .caret {
34
- margin-top: 8px;
35
- margin-left: 2px;
36
- }
37
- .dropdown:hover .caret,
38
- .open .caret {
39
- .opacity(100);
40
- }
41
-
42
- // The dropdown menu (ul)
43
- // ----------------------
44
- .dropdown-menu {
45
- position: absolute;
46
- top: 100%;
47
- left: 0;
48
- z-index: @zindexDropdown;
49
- display: none; // none by default, but block on "open" of the menu
50
- float: left;
51
- min-width: 160px;
52
- padding: 4px 0;
53
- margin: 1px 0 0; // override default ul
54
- list-style: none;
55
- background-color: @dropdownBackground;
56
- border: 1px solid #ccc;
57
- border: 1px solid rgba(0,0,0,.2);
58
- *border-right-width: 2px;
59
- *border-bottom-width: 2px;
60
- .border-radius(5px);
61
- .box-shadow(0 5px 10px rgba(0,0,0,.2));
62
- -webkit-background-clip: padding-box;
63
- -moz-background-clip: padding;
64
- background-clip: padding-box;
65
-
66
- // Aligns the dropdown menu to right
67
- &.pull-right {
68
- right: 0;
69
- left: auto;
70
- }
71
-
72
- // Dividers (basically an hr) within the dropdown
73
- .divider {
74
- .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
75
- }
76
-
77
- // Links within the dropdown menu
78
- a {
79
- display: block;
80
- padding: 3px 15px;
81
- clear: both;
82
- font-weight: normal;
83
- line-height: @baseLineHeight;
84
- color: @dropdownLinkColor;
85
- white-space: nowrap;
86
- }
87
- }
88
-
89
- // Hover state
90
- // -----------
91
- .dropdown-menu li > a:hover,
92
- .dropdown-menu .active > a,
93
- .dropdown-menu .active > a:hover {
94
- color: @dropdownLinkColorHover;
95
- text-decoration: none;
96
- background-color: @dropdownLinkBackgroundHover;
97
- }
98
-
99
- // Open state for the dropdown
100
- // ---------------------------
101
- .open {
102
- // IE7's z-index only goes to the nearest positioned ancestor, which would
103
- // make the menu appear below buttons that appeared later on the page
104
- *z-index: @zindexDropdown;
105
-
106
- & > .dropdown-menu {
107
- display: block;
108
- }
109
- }
110
-
111
- // Right aligned dropdowns
112
- // ---------------------------
113
- .pull-right > .dropdown-menu {
114
- right: 0;
115
- left: auto;
116
- }
117
-
118
- // Allow for dropdowns to go bottom up (aka, dropup-menu)
119
- // ------------------------------------------------------
120
- // Just add .dropup after the standard .dropdown class and you're set, bro.
121
- // TODO: abstract this so that the navbar fixed styles are not placed here?
122
- .dropup,
123
- .navbar-fixed-bottom .dropdown {
124
- // Reverse the caret
125
- .caret {
126
- border-top: 0;
127
- border-bottom: 4px solid @black;
128
- content: "\2191";
129
- }
130
- // Different positioning for bottom up menu
131
- .dropdown-menu {
132
- top: auto;
133
- bottom: 100%;
134
- margin-bottom: 1px;
135
- }
136
- }
137
-
138
- // Typeahead
139
- // ---------
140
- .typeahead {
141
- margin-top: 2px; // give it some space to breathe
142
- .border-radius(4px);
143
- }
@@ -1,583 +0,0 @@
1
- // Forms.less
2
- // Base styles for various input types, form layouts, and states
3
- // -------------------------------------------------------------
4
-
5
-
6
- // GENERAL STYLES
7
- // --------------
8
-
9
- // Make all forms have space below them
10
- form {
11
- margin: 0 0 @baseLineHeight;
12
- }
13
-
14
- fieldset {
15
- padding: 0;
16
- margin: 0;
17
- border: 0;
18
- }
19
-
20
- // Groups of fields with labels on top (legends)
21
- legend {
22
- display: block;
23
- width: 100%;
24
- padding: 0;
25
- margin-bottom: @baseLineHeight * 1.5;
26
- font-size: @baseFontSize * 1.5;
27
- line-height: @baseLineHeight * 2;
28
- color: @grayDark;
29
- border: 0;
30
- border-bottom: 1px solid #e5e5e5;
31
-
32
- // Small
33
- small {
34
- font-size: @baseLineHeight * .75;
35
- color: @grayLight;
36
- }
37
- }
38
-
39
- // Set font for forms
40
- label,
41
- input,
42
- button,
43
- select,
44
- textarea {
45
- #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
46
- }
47
- input,
48
- button,
49
- select,
50
- textarea {
51
- font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
52
- }
53
-
54
- // Identify controls by their labels
55
- label {
56
- display: block;
57
- margin-bottom: 5px;
58
- }
59
-
60
- // Form controls
61
- // -------------------------
62
-
63
- // Shared size and type resets
64
- select,
65
- textarea,
66
- input[type="text"],
67
- input[type="password"],
68
- input[type="datetime"],
69
- input[type="datetime-local"],
70
- input[type="date"],
71
- input[type="month"],
72
- input[type="time"],
73
- input[type="week"],
74
- input[type="number"],
75
- input[type="email"],
76
- input[type="url"],
77
- input[type="search"],
78
- input[type="tel"],
79
- input[type="color"],
80
- .uneditable-input {
81
- display: inline-block;
82
- height: @baseLineHeight;
83
- padding: 4px;
84
- margin-bottom: 9px;
85
- font-size: @baseFontSize;
86
- line-height: @baseLineHeight;
87
- color: @gray;
88
- }
89
-
90
- // Reset appearance properties for textual inputs and textarea
91
- // Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
92
- input,
93
- textarea {
94
- width: 210px;
95
- }
96
- // Reset height since textareas have rows
97
- textarea {
98
- height: auto;
99
- }
100
- // Everything else
101
- textarea,
102
- input[type="text"],
103
- input[type="password"],
104
- input[type="datetime"],
105
- input[type="datetime-local"],
106
- input[type="date"],
107
- input[type="month"],
108
- input[type="time"],
109
- input[type="week"],
110
- input[type="number"],
111
- input[type="email"],
112
- input[type="url"],
113
- input[type="search"],
114
- input[type="tel"],
115
- input[type="color"],
116
- .uneditable-input {
117
- background-color: @inputBackground;
118
- border: 1px solid @inputBorder;
119
- .border-radius(@inputBorderRadius);
120
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
121
- @transition: border linear .2s, box-shadow linear .2s;
122
- .transition(@transition);
123
-
124
- // Focus state
125
- &:focus {
126
- border-color: rgba(82,168,236,.8);
127
- outline: 0;
128
- outline: thin dotted \9; /* IE6-9 */
129
- .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
130
- }
131
- }
132
-
133
- // Position radios and checkboxes better
134
- input[type="radio"],
135
- input[type="checkbox"] {
136
- margin: 3px 0;
137
- *margin-top: 0; /* IE7 */
138
- line-height: normal;
139
- cursor: pointer;
140
- }
141
-
142
- // Reset width of input buttons, radios, checkboxes
143
- input[type="submit"],
144
- input[type="reset"],
145
- input[type="button"],
146
- input[type="radio"],
147
- input[type="checkbox"] {
148
- width: auto; // Override of generic input selector
149
- }
150
-
151
- // Make uneditable textareas behave like a textarea
152
- .uneditable-textarea {
153
- width: auto;
154
- height: auto;
155
- }
156
-
157
- // Set the height of select and file controls to match text inputs
158
- select,
159
- input[type="file"] {
160
- height: 28px; /* In IE7, the height of the select element cannot be changed by height, only font-size */
161
- *margin-top: 4px; /* For IE7, add top margin to align select with labels */
162
- line-height: 28px;
163
- }
164
-
165
- // Make select elements obey height by applying a border
166
- select {
167
- width: 220px; // default input width + 10px of padding that doesn't get applied
168
- border: 1px solid #bbb;
169
- }
170
-
171
- // Make multiple select elements height not fixed
172
- select[multiple],
173
- select[size] {
174
- height: auto;
175
- }
176
-
177
- // Focus for select, file, radio, and checkbox
178
- select:focus,
179
- input[type="file"]:focus,
180
- input[type="radio"]:focus,
181
- input[type="checkbox"]:focus {
182
- .tab-focus();
183
- }
184
-
185
-
186
-
187
- // CHECKBOXES & RADIOS
188
- // -------------------
189
-
190
- // Indent the labels to position radios/checkboxes as hanging
191
- .radio,
192
- .checkbox {
193
- min-height: 18px; // clear the floating input if there is no label text
194
- padding-left: 18px;
195
- }
196
- .radio input[type="radio"],
197
- .checkbox input[type="checkbox"] {
198
- float: left;
199
- margin-left: -18px;
200
- }
201
-
202
- // Move the options list down to align with labels
203
- .controls > .radio:first-child,
204
- .controls > .checkbox:first-child {
205
- padding-top: 5px; // has to be padding because margin collaspes
206
- }
207
-
208
- // Radios and checkboxes on same line
209
- // TODO v3: Convert .inline to .control-inline
210
- .radio.inline,
211
- .checkbox.inline {
212
- display: inline-block;
213
- padding-top: 5px;
214
- margin-bottom: 0;
215
- vertical-align: middle;
216
- }
217
- .radio.inline + .radio.inline,
218
- .checkbox.inline + .checkbox.inline {
219
- margin-left: 10px; // space out consecutive inline controls
220
- }
221
-
222
-
223
-
224
- // INPUT SIZES
225
- // -----------
226
-
227
- // General classes for quick sizes
228
- .input-mini { width: 60px; }
229
- .input-small { width: 90px; }
230
- .input-medium { width: 150px; }
231
- .input-large { width: 210px; }
232
- .input-xlarge { width: 270px; }
233
- .input-xxlarge { width: 530px; }
234
-
235
- // Grid style input sizes
236
- input[class*="span"],
237
- select[class*="span"],
238
- textarea[class*="span"],
239
- .uneditable-input[class*="span"],
240
- // Redeclare since the fluid row class is more specific
241
- .row-fluid input[class*="span"],
242
- .row-fluid select[class*="span"],
243
- .row-fluid textarea[class*="span"],
244
- .row-fluid .uneditable-input[class*="span"] {
245
- float: none;
246
- margin-left: 0;
247
- }
248
- // Ensure input-prepend/append never wraps
249
- .input-append input[class*="span"],
250
- .input-append .uneditable-input[class*="span"],
251
- .input-prepend input[class*="span"],
252
- .input-prepend .uneditable-input[class*="span"],
253
- .row-fluid .input-prepend [class*="span"],
254
- .row-fluid .input-append [class*="span"] {
255
- display: inline-block;
256
- }
257
-
258
-
259
-
260
- // GRID SIZING FOR INPUTS
261
- // ----------------------
262
-
263
- #grid > .input(@gridColumnWidth, @gridGutterWidth);
264
-
265
-
266
-
267
- // DISABLED STATE
268
- // --------------
269
-
270
- // Disabled and read-only inputs
271
- input[disabled],
272
- select[disabled],
273
- textarea[disabled],
274
- input[readonly],
275
- select[readonly],
276
- textarea[readonly] {
277
- cursor: not-allowed;
278
- background-color: @inputDisabledBackground;
279
- border-color: #ddd;
280
- }
281
- // Explicitly reset the colors here
282
- input[type="radio"][disabled],
283
- input[type="checkbox"][disabled],
284
- input[type="radio"][readonly],
285
- input[type="checkbox"][readonly] {
286
- background-color: transparent;
287
- }
288
-
289
-
290
-
291
-
292
- // FORM FIELD FEEDBACK STATES
293
- // --------------------------
294
-
295
- // Warning
296
- .control-group.warning {
297
- .formFieldState(@warningText, @warningText, @warningBackground);
298
- }
299
- // Error
300
- .control-group.error {
301
- .formFieldState(@errorText, @errorText, @errorBackground);
302
- }
303
- // Success
304
- .control-group.success {
305
- .formFieldState(@successText, @successText, @successBackground);
306
- }
307
-
308
- // HTML5 invalid states
309
- // Shares styles with the .control-group.error above
310
- input:focus:required:invalid,
311
- textarea:focus:required:invalid,
312
- select:focus:required:invalid {
313
- color: #b94a48;
314
- border-color: #ee5f5b;
315
- &:focus {
316
- border-color: darken(#ee5f5b, 10%);
317
- .box-shadow(0 0 6px lighten(#ee5f5b, 20%));
318
- }
319
- }
320
-
321
-
322
-
323
- // FORM ACTIONS
324
- // ------------
325
-
326
- .form-actions {
327
- padding: (@baseLineHeight - 1) 20px @baseLineHeight;
328
- margin-top: @baseLineHeight;
329
- margin-bottom: @baseLineHeight;
330
- background-color: @formActionsBackground;
331
- border-top: 1px solid #e5e5e5;
332
- .clearfix(); // Adding clearfix to allow for .pull-right button containers
333
- }
334
-
335
- // For text that needs to appear as an input but should not be an input
336
- .uneditable-input {
337
- overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
338
- white-space: nowrap;
339
- cursor: not-allowed;
340
- background-color: @inputBackground;
341
- border-color: #eee;
342
- .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
343
- }
344
-
345
- // Placeholder text gets special styles; can't be bundled together though for some reason
346
- .placeholder();
347
-
348
-
349
-
350
- // HELP TEXT
351
- // ---------
352
-
353
- .help-block,
354
- .help-inline {
355
- color: @gray; // lighten the text some for contrast
356
- }
357
-
358
- .help-block {
359
- display: block; // account for any element using help-block
360
- margin-bottom: @baseLineHeight / 2;
361
- }
362
-
363
- .help-inline {
364
- display: inline-block;
365
- .ie7-inline-block();
366
- vertical-align: middle;
367
- padding-left: 5px;
368
- }
369
-
370
-
371
-
372
- // INPUT GROUPS
373
- // ------------
374
-
375
- // Allow us to put symbols and text within the input field for a cleaner look
376
- .input-prepend,
377
- .input-append {
378
- margin-bottom: 5px;
379
- input,
380
- select,
381
- .uneditable-input {
382
- position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
383
- margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
384
- *margin-left: 0;
385
- vertical-align: middle;
386
- .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
387
- // Make input on top when focused so blue border and shadow always show
388
- &:focus {
389
- z-index: 2;
390
- }
391
- }
392
- .uneditable-input {
393
- border-left-color: #ccc;
394
- }
395
- .add-on {
396
- display: inline-block;
397
- width: auto;
398
- height: @baseLineHeight;
399
- min-width: 16px;
400
- padding: 4px 5px;
401
- font-weight: normal;
402
- line-height: @baseLineHeight;
403
- text-align: center;
404
- text-shadow: 0 1px 0 @white;
405
- vertical-align: middle;
406
- background-color: @grayLighter;
407
- border: 1px solid #ccc;
408
- }
409
- .add-on,
410
- .btn {
411
- margin-left: -1px;
412
- .border-radius(0);
413
- }
414
- .active {
415
- background-color: lighten(@green, 30);
416
- border-color: @green;
417
- }
418
- }
419
- .input-prepend {
420
- .add-on,
421
- .btn {
422
- margin-right: -1px;
423
- }
424
- .add-on:first-child,
425
- .btn:first-child {
426
- .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
427
- }
428
- }
429
- .input-append {
430
- input,
431
- select,
432
- .uneditable-input {
433
- .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
434
- }
435
- .uneditable-input {
436
- border-right-color: #ccc;
437
- border-left-color: #eee;
438
- }
439
- .add-on:last-child,
440
- .btn:last-child {
441
- .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
442
- }
443
- }
444
- // Remove all border-radius for inputs with both prepend and append
445
- .input-prepend.input-append {
446
- input,
447
- select,
448
- .uneditable-input {
449
- .border-radius(0);
450
- }
451
- .add-on:first-child,
452
- .btn:first-child {
453
- margin-right: -1px;
454
- .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
455
- }
456
- .add-on:last-child,
457
- .btn:last-child {
458
- margin-left: -1px;
459
- .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
460
- }
461
- }
462
-
463
-
464
-
465
- // SEARCH FORM
466
- // -----------
467
-
468
- .search-query {
469
- padding-right: 14px;
470
- padding-right: 4px \9;
471
- padding-left: 14px;
472
- padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
473
- margin-bottom: 0; // remove the default margin on all inputs
474
- .border-radius(14px);
475
- }
476
-
477
-
478
-
479
- // HORIZONTAL & VERTICAL FORMS
480
- // ---------------------------
481
-
482
- // Common properties
483
- // -----------------
484
-
485
- .form-search,
486
- .form-inline,
487
- .form-horizontal {
488
- input,
489
- textarea,
490
- select,
491
- .help-inline,
492
- .uneditable-input,
493
- .input-prepend,
494
- .input-append {
495
- display: inline-block;
496
- .ie7-inline-block();
497
- margin-bottom: 0;
498
- }
499
- // Re-hide hidden elements due to specifity
500
- .hide {
501
- display: none;
502
- }
503
- }
504
- .form-search label,
505
- .form-inline label {
506
- display: inline-block;
507
- }
508
- // Remove margin for input-prepend/-append
509
- .form-search .input-append,
510
- .form-inline .input-append,
511
- .form-search .input-prepend,
512
- .form-inline .input-prepend {
513
- margin-bottom: 0;
514
- }
515
- // Inline checkbox/radio labels (remove padding on left)
516
- .form-search .radio,
517
- .form-search .checkbox,
518
- .form-inline .radio,
519
- .form-inline .checkbox {
520
- padding-left: 0;
521
- margin-bottom: 0;
522
- vertical-align: middle;
523
- }
524
- // Remove float and margin, set to inline-block
525
- .form-search .radio input[type="radio"],
526
- .form-search .checkbox input[type="checkbox"],
527
- .form-inline .radio input[type="radio"],
528
- .form-inline .checkbox input[type="checkbox"] {
529
- float: left;
530
- margin-right: 3px;
531
- margin-left: 0;
532
- }
533
-
534
-
535
- // Margin to space out fieldsets
536
- .control-group {
537
- margin-bottom: @baseLineHeight / 2;
538
- }
539
-
540
- // Legend collapses margin, so next element is responsible for spacing
541
- legend + .control-group {
542
- margin-top: @baseLineHeight;
543
- -webkit-margin-top-collapse: separate;
544
- }
545
-
546
- // Horizontal-specific styles
547
- // --------------------------
548
-
549
- .form-horizontal {
550
- // Increase spacing between groups
551
- .control-group {
552
- margin-bottom: @baseLineHeight;
553
- .clearfix();
554
- }
555
- // Float the labels left
556
- .control-label {
557
- float: left;
558
- width: 140px;
559
- padding-top: 5px;
560
- text-align: right;
561
- }
562
- // Move over all input controls and content
563
- .controls {
564
- // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
565
- // don't inherit the margin of the parent, in this case .controls
566
- *display: inline-block;
567
- *padding-left: 20px;
568
- margin-left: 160px;
569
- *margin-left: 0;
570
- &:first-child {
571
- *padding-left: 160px;
572
- }
573
- }
574
- // Remove bottom margin on block level help text since that's accounted for on .control-group
575
- .help-block {
576
- margin-top: @baseLineHeight / 2;
577
- margin-bottom: 0;
578
- }
579
- // Move over buttons in .form-actions to align with .controls
580
- .form-actions {
581
- padding-left: 160px;
582
- }
583
- }