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,90 +0,0 @@
1
- // MODALS
2
- // ------
3
-
4
- // Recalculate z-index where appropriate
5
- .modal-open {
6
- .dropdown-menu { z-index: @zindexDropdown + @zindexModal; }
7
- .dropdown.open { *z-index: @zindexDropdown + @zindexModal; }
8
- .popover { z-index: @zindexPopover + @zindexModal; }
9
- .tooltip { z-index: @zindexTooltip + @zindexModal; }
10
- }
11
-
12
- // Background
13
- .modal-backdrop {
14
- position: fixed;
15
- top: 0;
16
- right: 0;
17
- bottom: 0;
18
- left: 0;
19
- z-index: @zindexModalBackdrop;
20
- background-color: @black;
21
- // Fade for backdrop
22
- &.fade { opacity: 0; }
23
- }
24
-
25
- .modal-backdrop,
26
- .modal-backdrop.fade.in {
27
- .opacity(80);
28
- }
29
-
30
- // Base modal
31
- .modal {
32
- position: fixed;
33
- top: 50%;
34
- left: 50%;
35
- z-index: @zindexModal;
36
- overflow: auto;
37
- width: 560px;
38
- margin: -250px 0 0 -280px;
39
- background-color: @white;
40
- border: 1px solid #999;
41
- border: 1px solid rgba(0,0,0,.3);
42
- *border: 1px solid #999; /* IE6-7 */
43
- .border-radius(6px);
44
- .box-shadow(0 3px 7px rgba(0,0,0,0.3));
45
- .background-clip(padding-box);
46
- &.fade {
47
- .transition(e('opacity .3s linear, top .3s ease-out'));
48
- top: -25%;
49
- }
50
- &.fade.in { top: 50%; }
51
- }
52
- .modal-header {
53
- padding: 9px 15px;
54
- border-bottom: 1px solid #eee;
55
- // Close icon
56
- .close { margin-top: 2px; }
57
- }
58
-
59
- // Body (where all modal content resides)
60
- .modal-body {
61
- overflow-y: auto;
62
- max-height: 400px;
63
- padding: 15px;
64
- }
65
- // Remove bottom margin if need be
66
- .modal-form {
67
- margin-bottom: 0;
68
- }
69
-
70
- // Footer (for actions)
71
- .modal-footer {
72
- padding: 14px 15px 15px;
73
- margin-bottom: 0;
74
- text-align: right; // right align buttons
75
- background-color: #f5f5f5;
76
- border-top: 1px solid #ddd;
77
- .border-radius(0 0 6px 6px);
78
- .box-shadow(inset 0 1px 0 @white);
79
- .clearfix(); // clear it in case folks use .pull-* classes on buttons
80
-
81
- // Properly space out buttons
82
- .btn + .btn {
83
- margin-left: 5px;
84
- margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
85
- }
86
- // but override that for button groups
87
- .btn-group .btn + .btn {
88
- margin-left: -1px;
89
- }
90
- }
@@ -1,358 +0,0 @@
1
- // NAVBAR (FIXED AND STATIC)
2
- // -------------------------
3
-
4
-
5
- // COMMON STYLES
6
- // -------------
7
-
8
- .navbar {
9
- // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
10
- *position: relative;
11
- *z-index: 2;
12
-
13
- overflow: visible;
14
- margin-bottom: @baseLineHeight;
15
- }
16
-
17
- // Gradient is applied to it's own element because overflow visible is not honored by IE when filter is present
18
- .navbar-inner {
19
- min-height: @navbarHeight;
20
- padding-left: 20px;
21
- padding-right: 20px;
22
- #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
23
- .border-radius(4px);
24
- .box-shadow(~"0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1)");
25
- }
26
-
27
- // Set width to auto for default container
28
- // We then reset it for fixed navbars in the #gridSystem mixin
29
- .navbar .container {
30
- width: auto;
31
- }
32
-
33
- // Override the default collapsed state
34
- .nav-collapse.collapse {
35
- height: auto;
36
- }
37
-
38
-
39
- // Brand, links, text, and buttons
40
- .navbar {
41
- color: @navbarText;
42
- // Hover and active states
43
- .brand:hover {
44
- text-decoration: none;
45
- }
46
- // Website or project name
47
- .brand {
48
- float: left;
49
- display: block;
50
- // Vertically center the text given @navbarHeight
51
- @elementHeight: 20px;
52
- padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
53
- margin-left: -20px; // negative indent to left-align the text down the page
54
- font-size: 20px;
55
- font-weight: 200;
56
- line-height: 1;
57
- color: @navbarBrandColor;
58
- }
59
- // Plain text in topbar
60
- .navbar-text {
61
- margin-bottom: 0;
62
- line-height: @navbarHeight;
63
- }
64
- // Janky solution for now to account for links outside the .nav
65
- .navbar-link {
66
- color: @navbarLinkColor;
67
- &:hover {
68
- color: @navbarLinkColorHover;
69
- }
70
- }
71
- // Buttons in navbar
72
- .btn,
73
- .btn-group {
74
- .navbarVerticalAlign(30px); // Vertically center in navbar
75
- }
76
- .btn-group .btn {
77
- margin: 0; // then undo the margin here so we don't accidentally double it
78
- }
79
- }
80
-
81
- // Navbar forms
82
- .navbar-form {
83
- margin-bottom: 0; // remove default bottom margin
84
- .clearfix();
85
- input,
86
- select,
87
- .radio,
88
- .checkbox {
89
- .navbarVerticalAlign(30px); // Vertically center in navbar
90
- }
91
- input,
92
- select {
93
- display: inline-block;
94
- margin-bottom: 0;
95
- }
96
- input[type="image"],
97
- input[type="checkbox"],
98
- input[type="radio"] {
99
- margin-top: 3px;
100
- }
101
- .input-append,
102
- .input-prepend {
103
- margin-top: 6px;
104
- white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
105
- input {
106
- margin-top: 0; // remove the margin on top since it's on the parent
107
- }
108
- }
109
- }
110
-
111
- // Navbar search
112
- .navbar-search {
113
- position: relative;
114
- float: left;
115
- .navbarVerticalAlign(28px); // Vertically center in navbar
116
- margin-bottom: 0;
117
- .search-query {
118
- padding: 4px 9px;
119
- #font > .sans-serif(13px, normal, 1);
120
- color: @white;
121
- background-color: @navbarSearchBackground;
122
- border: 1px solid @navbarSearchBorder;
123
- .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
124
- .transition(none);
125
-
126
- .placeholder(@navbarSearchPlaceholderColor);
127
-
128
- // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
129
- &:focus,
130
- &.focused {
131
- padding: 5px 10px;
132
- color: @grayDark;
133
- text-shadow: 0 1px 0 @white;
134
- background-color: @navbarSearchBackgroundFocus;
135
- border: 0;
136
- .box-shadow(0 0 3px rgba(0,0,0,.15));
137
- outline: 0;
138
- }
139
- }
140
- }
141
-
142
-
143
-
144
- // FIXED NAVBAR
145
- // ------------
146
-
147
- // Shared (top/bottom) styles
148
- .navbar-fixed-top,
149
- .navbar-fixed-bottom {
150
- position: fixed;
151
- right: 0;
152
- left: 0;
153
- z-index: @zindexFixedNavbar;
154
- margin-bottom: 0; // remove 18px margin for static navbar
155
- }
156
- .navbar-fixed-top .navbar-inner,
157
- .navbar-fixed-bottom .navbar-inner {
158
- padding-left: 0;
159
- padding-right: 0;
160
- .border-radius(0);
161
- }
162
-
163
- .navbar-fixed-top .container,
164
- .navbar-fixed-bottom .container {
165
- #grid > .core > .span(@gridColumns);
166
- }
167
-
168
- // Fixed to top
169
- .navbar-fixed-top {
170
- top: 0;
171
- }
172
-
173
- // Fixed to bottom
174
- .navbar-fixed-bottom {
175
- bottom: 0;
176
- }
177
-
178
-
179
-
180
- // NAVIGATION
181
- // ----------
182
-
183
- .navbar .nav {
184
- position: relative;
185
- left: 0;
186
- display: block;
187
- float: left;
188
- margin: 0 10px 0 0;
189
- }
190
- .navbar .nav.pull-right {
191
- float: right; // redeclare due to specificity
192
- }
193
- .navbar .nav > li {
194
- display: block;
195
- float: left;
196
- }
197
-
198
- // Links
199
- .navbar .nav > li > a {
200
- float: none;
201
- // Vertically center the text given @navbarHeight
202
- @elementHeight: 20px;
203
- padding: ((@navbarHeight - @elementHeight) / 2 - 1) 10px ((@navbarHeight - @elementHeight) / 2 + 1);
204
- line-height: 19px;
205
- color: @navbarLinkColor;
206
- text-decoration: none;
207
- text-shadow: 0 -1px 0 rgba(0,0,0,.25);
208
- }
209
- // Buttons
210
- .navbar .btn {
211
- display: inline-block;
212
- padding: 4px 10px 4px;
213
- // Vertically center the button given @navbarHeight
214
- @elementHeight: 28px;
215
- margin: ((@navbarHeight - @elementHeight) / 2 - 1) 5px ((@navbarHeight - @elementHeight) / 2);
216
- line-height: @baseLineHeight;
217
- }
218
- .navbar .btn-group {
219
- margin: 0;
220
- // Vertically center the button given @navbarHeight
221
- @elementHeight: 28px;
222
- padding: ((@navbarHeight - @elementHeight) / 2 - 1) 5px ((@navbarHeight - @elementHeight) / 2);
223
- }
224
- // Hover
225
- .navbar .nav > li > a:hover {
226
- background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
227
- color: @navbarLinkColorHover;
228
- text-decoration: none;
229
- }
230
-
231
- // Active nav items
232
- .navbar .nav .active > a,
233
- .navbar .nav .active > a:hover {
234
- color: @navbarLinkColorActive;
235
- text-decoration: none;
236
- background-color: @navbarLinkBackgroundActive;
237
- }
238
-
239
- // Dividers (basically a vertical hr)
240
- .navbar .divider-vertical {
241
- height: @navbarHeight;
242
- width: 1px;
243
- margin: 0 9px;
244
- overflow: hidden;
245
- background-color: @navbarBackground;
246
- border-right: 1px solid @navbarBackgroundHighlight;
247
- }
248
-
249
- // Secondary (floated right) nav in topbar
250
- .navbar .nav.pull-right {
251
- margin-left: 10px;
252
- margin-right: 0;
253
- }
254
-
255
- // Navbar button for toggling navbar items in responsive layouts
256
- // These definitions need to come after '.navbar .btn'
257
- .navbar .btn-navbar {
258
- display: none;
259
- float: right;
260
- padding: 7px 10px;
261
- margin-left: 5px;
262
- margin-right: 5px;
263
- .buttonBackground(@navbarBackgroundHighlight, @navbarBackground);
264
- .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
265
- }
266
- .navbar .btn-navbar .icon-bar {
267
- display: block;
268
- width: 18px;
269
- height: 2px;
270
- background-color: #f5f5f5;
271
- .border-radius(1px);
272
- .box-shadow(0 1px 0 rgba(0,0,0,.25));
273
- }
274
- .btn-navbar .icon-bar + .icon-bar {
275
- margin-top: 3px;
276
- }
277
-
278
-
279
- // Dropdown menus
280
- // --------------
281
-
282
- // Menu position and menu carets
283
- .navbar .dropdown-menu {
284
- &:before {
285
- content: '';
286
- display: inline-block;
287
- border-left: 7px solid transparent;
288
- border-right: 7px solid transparent;
289
- border-bottom: 7px solid #ccc;
290
- border-bottom-color: @dropdownBorder;
291
- position: absolute;
292
- top: -7px;
293
- left: 9px;
294
- }
295
- &:after {
296
- content: '';
297
- display: inline-block;
298
- border-left: 6px solid transparent;
299
- border-right: 6px solid transparent;
300
- border-bottom: 6px solid @dropdownBackground;
301
- position: absolute;
302
- top: -6px;
303
- left: 10px;
304
- }
305
- }
306
- // Menu position and menu caret support for dropups via extra dropup class
307
- .navbar-fixed-bottom .dropdown-menu {
308
- &:before {
309
- border-top: 7px solid #ccc;
310
- border-top-color: @dropdownBorder;
311
- border-bottom: 0;
312
- bottom: -7px;
313
- top: auto;
314
- }
315
- &:after {
316
- border-top: 6px solid @dropdownBackground;
317
- border-bottom: 0;
318
- bottom: -6px;
319
- top: auto;
320
- }
321
- }
322
- // Dropdown toggle caret
323
- .navbar .nav li.dropdown .dropdown-toggle .caret,
324
- .navbar .nav li.dropdown.open .caret {
325
- border-top-color: @white;
326
- border-bottom-color: @white;
327
- }
328
- .navbar .nav li.dropdown.active .caret {
329
- .opacity(100);
330
- }
331
-
332
- // Remove background color from open dropdown
333
- .navbar .nav li.dropdown.open > .dropdown-toggle,
334
- .navbar .nav li.dropdown.active > .dropdown-toggle,
335
- .navbar .nav li.dropdown.open.active > .dropdown-toggle {
336
- background-color: transparent;
337
- }
338
-
339
- // Dropdown link on hover
340
- .navbar .nav li.dropdown.active > .dropdown-toggle:hover {
341
- color: @white;
342
- }
343
-
344
- // Right aligned menus need alt position
345
- // TODO: rejigger this at some point to simplify the selectors
346
- .navbar .pull-right .dropdown-menu,
347
- .navbar .dropdown-menu.pull-right {
348
- left: auto;
349
- right: 0;
350
- &:before {
351
- left: auto;
352
- right: 12px;
353
- }
354
- &:after {
355
- left: auto;
356
- right: 13px;
357
- }
358
- }
@@ -1,363 +0,0 @@
1
- // NAVIGATIONS
2
- // -----------
3
-
4
-
5
-
6
- // BASE CLASS
7
- // ----------
8
-
9
- .nav {
10
- margin-left: 0;
11
- margin-bottom: @baseLineHeight;
12
- list-style: none;
13
- }
14
-
15
- // Make links block level
16
- .nav > li > a {
17
- display: block;
18
- }
19
- .nav > li > a:hover {
20
- text-decoration: none;
21
- background-color: @grayLighter;
22
- }
23
-
24
- // Redeclare pull classes because of specifity
25
- .nav > .pull-right {
26
- float: right;
27
- }
28
-
29
- // Nav headers (for dropdowns and lists)
30
- .nav .nav-header {
31
- display: block;
32
- padding: 3px 15px;
33
- font-size: 11px;
34
- font-weight: bold;
35
- line-height: @baseLineHeight;
36
- color: @grayLight;
37
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
38
- text-transform: uppercase;
39
- }
40
- // Space them out when they follow another list item (link)
41
- .nav li + .nav-header {
42
- margin-top: 9px;
43
- }
44
-
45
-
46
- // NAV LIST
47
- // --------
48
-
49
- .nav-list {
50
- padding-left: 15px;
51
- padding-right: 15px;
52
- margin-bottom: 0;
53
- }
54
- .nav-list > li > a,
55
- .nav-list .nav-header {
56
- margin-left: -15px;
57
- margin-right: -15px;
58
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
59
- }
60
- .nav-list > li > a {
61
- padding: 3px 15px;
62
- }
63
- .nav-list > .active > a,
64
- .nav-list > .active > a:hover {
65
- color: @white;
66
- text-shadow: 0 -1px 0 rgba(0,0,0,.2);
67
- background-color: @linkColor;
68
- }
69
- .nav-list [class^="icon-"] {
70
- margin-right: 2px;
71
- }
72
- // Dividers (basically an hr) within the dropdown
73
- .nav-list .divider {
74
- .nav-divider();
75
- }
76
-
77
-
78
-
79
- // TABS AND PILLS
80
- // -------------
81
-
82
- // Common styles
83
- .nav-tabs,
84
- .nav-pills {
85
- .clearfix();
86
- }
87
- .nav-tabs > li,
88
- .nav-pills > li {
89
- float: left;
90
- }
91
- .nav-tabs > li > a,
92
- .nav-pills > li > a {
93
- padding-right: 12px;
94
- padding-left: 12px;
95
- margin-right: 2px;
96
- line-height: 14px; // keeps the overall height an even number
97
- }
98
-
99
- // TABS
100
- // ----
101
-
102
- // Give the tabs something to sit on
103
- .nav-tabs {
104
- border-bottom: 1px solid #ddd;
105
- }
106
- // Make the list-items overlay the bottom border
107
- .nav-tabs > li {
108
- margin-bottom: -1px;
109
- }
110
- // Actual tabs (as links)
111
- .nav-tabs > li > a {
112
- padding-top: 8px;
113
- padding-bottom: 8px;
114
- line-height: @baseLineHeight;
115
- border: 1px solid transparent;
116
- .border-radius(4px 4px 0 0);
117
- &:hover {
118
- border-color: @grayLighter @grayLighter #ddd;
119
- }
120
- }
121
- // Active state, and it's :hover to override normal :hover
122
- .nav-tabs > .active > a,
123
- .nav-tabs > .active > a:hover {
124
- color: @gray;
125
- background-color: @white;
126
- border: 1px solid #ddd;
127
- border-bottom-color: transparent;
128
- cursor: default;
129
- }
130
-
131
-
132
- // PILLS
133
- // -----
134
-
135
- // Links rendered as pills
136
- .nav-pills > li > a {
137
- padding-top: 8px;
138
- padding-bottom: 8px;
139
- margin-top: 2px;
140
- margin-bottom: 2px;
141
- .border-radius(5px);
142
- }
143
-
144
- // Active state
145
- .nav-pills > .active > a,
146
- .nav-pills > .active > a:hover {
147
- color: @white;
148
- background-color: @linkColor;
149
- }
150
-
151
-
152
-
153
- // STACKED NAV
154
- // -----------
155
-
156
- // Stacked tabs and pills
157
- .nav-stacked > li {
158
- float: none;
159
- }
160
- .nav-stacked > li > a {
161
- margin-right: 0; // no need for the gap between nav items
162
- }
163
-
164
- // Tabs
165
- .nav-tabs.nav-stacked {
166
- border-bottom: 0;
167
- }
168
- .nav-tabs.nav-stacked > li > a {
169
- border: 1px solid #ddd;
170
- .border-radius(0);
171
- }
172
- .nav-tabs.nav-stacked > li:first-child > a {
173
- .border-radius(4px 4px 0 0);
174
- }
175
- .nav-tabs.nav-stacked > li:last-child > a {
176
- .border-radius(0 0 4px 4px);
177
- }
178
- .nav-tabs.nav-stacked > li > a:hover {
179
- border-color: #ddd;
180
- z-index: 2;
181
- }
182
-
183
- // Pills
184
- .nav-pills.nav-stacked > li > a {
185
- margin-bottom: 3px;
186
- }
187
- .nav-pills.nav-stacked > li:last-child > a {
188
- margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
189
- }
190
-
191
-
192
-
193
- // DROPDOWNS
194
- // ---------
195
-
196
- .nav-tabs .dropdown-menu {
197
- .border-radius(0 0 5px 5px); // remove the top rounded corners here since there is a hard edge above the menu
198
- }
199
- .nav-pills .dropdown-menu {
200
- .border-radius(4px); // make rounded corners match the pills
201
- }
202
-
203
- // Default dropdown links
204
- // -------------------------
205
- // Make carets use linkColor to start
206
- .nav-tabs .dropdown-toggle .caret,
207
- .nav-pills .dropdown-toggle .caret {
208
- border-top-color: @linkColor;
209
- border-bottom-color: @linkColor;
210
- margin-top: 6px;
211
- }
212
- .nav-tabs .dropdown-toggle:hover .caret,
213
- .nav-pills .dropdown-toggle:hover .caret {
214
- border-top-color: @linkColorHover;
215
- border-bottom-color: @linkColorHover;
216
- }
217
-
218
- // Active dropdown links
219
- // -------------------------
220
- .nav-tabs .active .dropdown-toggle .caret,
221
- .nav-pills .active .dropdown-toggle .caret {
222
- border-top-color: @grayDark;
223
- border-bottom-color: @grayDark;
224
- }
225
-
226
- // Active:hover dropdown links
227
- // -------------------------
228
- .nav > .dropdown.active > a:hover {
229
- color: @black;
230
- cursor: pointer;
231
- }
232
-
233
- // Open dropdowns
234
- // -------------------------
235
- .nav-tabs .open .dropdown-toggle,
236
- .nav-pills .open .dropdown-toggle,
237
- .nav > li.dropdown.open.active > a:hover {
238
- color: @white;
239
- background-color: @grayLight;
240
- border-color: @grayLight;
241
- }
242
- .nav li.dropdown.open .caret,
243
- .nav li.dropdown.open.active .caret,
244
- .nav li.dropdown.open a:hover .caret {
245
- border-top-color: @white;
246
- border-bottom-color: @white;
247
- .opacity(100);
248
- }
249
-
250
- // Dropdowns in stacked tabs
251
- .tabs-stacked .open > a:hover {
252
- border-color: @grayLight;
253
- }
254
-
255
-
256
-
257
- // TABBABLE
258
- // --------
259
-
260
-
261
- // COMMON STYLES
262
- // -------------
263
-
264
- // Clear any floats
265
- .tabbable {
266
- .clearfix();
267
- }
268
- .tab-content {
269
- overflow: auto; // prevent content from running below tabs
270
- }
271
-
272
- // Remove border on bottom, left, right
273
- .tabs-below > .nav-tabs,
274
- .tabs-right > .nav-tabs,
275
- .tabs-left > .nav-tabs {
276
- border-bottom: 0;
277
- }
278
-
279
- // Show/hide tabbable areas
280
- .tab-content > .tab-pane,
281
- .pill-content > .pill-pane {
282
- display: none;
283
- }
284
- .tab-content > .active,
285
- .pill-content > .active {
286
- display: block;
287
- }
288
-
289
-
290
- // BOTTOM
291
- // ------
292
-
293
- .tabs-below > .nav-tabs {
294
- border-top: 1px solid #ddd;
295
- }
296
- .tabs-below > .nav-tabs > li {
297
- margin-top: -1px;
298
- margin-bottom: 0;
299
- }
300
- .tabs-below > .nav-tabs > li > a {
301
- .border-radius(0 0 4px 4px);
302
- &:hover {
303
- border-bottom-color: transparent;
304
- border-top-color: #ddd;
305
- }
306
- }
307
- .tabs-below > .nav-tabs > .active > a,
308
- .tabs-below > .nav-tabs > .active > a:hover {
309
- border-color: transparent #ddd #ddd #ddd;
310
- }
311
-
312
- // LEFT & RIGHT
313
- // ------------
314
-
315
- // Common styles
316
- .tabs-left > .nav-tabs > li,
317
- .tabs-right > .nav-tabs > li {
318
- float: none;
319
- }
320
- .tabs-left > .nav-tabs > li > a,
321
- .tabs-right > .nav-tabs > li > a {
322
- min-width: 74px;
323
- margin-right: 0;
324
- margin-bottom: 3px;
325
- }
326
-
327
- // Tabs on the left
328
- .tabs-left > .nav-tabs {
329
- float: left;
330
- margin-right: 19px;
331
- border-right: 1px solid #ddd;
332
- }
333
- .tabs-left > .nav-tabs > li > a {
334
- margin-right: -1px;
335
- .border-radius(4px 0 0 4px);
336
- }
337
- .tabs-left > .nav-tabs > li > a:hover {
338
- border-color: @grayLighter #ddd @grayLighter @grayLighter;
339
- }
340
- .tabs-left > .nav-tabs .active > a,
341
- .tabs-left > .nav-tabs .active > a:hover {
342
- border-color: #ddd transparent #ddd #ddd;
343
- *border-right-color: @white;
344
- }
345
-
346
- // Tabs on the right
347
- .tabs-right > .nav-tabs {
348
- float: right;
349
- margin-left: 19px;
350
- border-left: 1px solid #ddd;
351
- }
352
- .tabs-right > .nav-tabs > li > a {
353
- margin-left: -1px;
354
- .border-radius(0 4px 4px 0);
355
- }
356
- .tabs-right > .nav-tabs > li > a:hover {
357
- border-color: @grayLighter @grayLighter @grayLighter #ddd;
358
- }
359
- .tabs-right > .nav-tabs .active > a,
360
- .tabs-right > .nav-tabs .active > a:hover {
361
- border-color: #ddd #ddd #ddd transparent;
362
- *border-left-color: @white;
363
- }