middleman-core 3.1.0.beta.3 → 3.1.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/asset_hash.feature +135 -0
- data/features/asset_host.feature +56 -0
- data/features/automatic_image_sizes.feature +16 -0
- data/features/cache_buster.feature +42 -0
- data/features/coffee-script.feature +22 -0
- data/features/compass-sprites.feature +6 -0
- data/features/content_for.feature +16 -0
- data/features/directory_index.feature +67 -0
- data/features/fonts.feature +15 -0
- data/features/former_padrino_helpers.feature +27 -0
- data/features/gzip.feature +21 -0
- data/features/helpers_auto_javascript_include_tag.feature +27 -0
- data/features/helpers_auto_stylesheet_link_tag.feature +27 -0
- data/features/helpers_form_tag.feature +26 -0
- data/features/helpers_link_to.feature +152 -0
- data/features/helpers_lorem.feature +6 -0
- data/features/helpers_page_classes.feature +17 -0
- data/features/helpers_url_for.feature +152 -0
- data/features/i18n_builder.feature +148 -0
- data/features/i18n_force_locale.feature +13 -0
- data/features/i18n_preview.feature +230 -0
- data/features/ignore_already_minified.feature +47 -0
- data/features/liquid.feature +11 -0
- data/features/markdown.feature +13 -0
- data/features/markdown_redcarpet.feature +86 -0
- data/features/markdown_redcarpet_in_haml.feature +42 -0
- data/features/minify_css.feature +127 -0
- data/features/minify_javascript.feature +225 -0
- data/features/more-clean_build.feature +14 -0
- data/features/more-extensionless_text_files.feature +28 -0
- data/features/more-frontmatter_page_settings.feature +42 -0
- data/features/more-ignore.feature +62 -0
- data/features/more-implied_extensions.feature +42 -0
- data/features/more-instance_vars.feature +18 -0
- data/features/more-sitemap_traversal.feature +73 -0
- data/features/more-wildcard_page_helper.feature +10 -0
- data/features/nested_layouts.feature +55 -0
- data/features/partials.feature +46 -0
- data/features/partials_dir.feature +30 -0
- data/features/relative_assets.feature +136 -0
- data/features/sass-assets-paths.feature +11 -0
- data/features/sass_cache_path.feature +22 -0
- data/features/sass_partials.feature +54 -0
- data/features/scss-support.feature +12 -0
- data/features/slim.feature +69 -0
- data/features/stylus.feature +55 -0
- data/features/twitter-bootstrap-compile.feature +6 -0
- data/fixtures/asset-hash-app/config.rb +8 -0
- data/fixtures/asset-hash-app/lib/middleware.rb +16 -0
- data/fixtures/asset-hash-app/source/apple-touch-icon.png +0 -0
- data/fixtures/asset-hash-app/source/favicon.ico +0 -0
- data/fixtures/asset-hash-app/source/images/100px.gif +0 -0
- data/fixtures/asset-hash-app/source/images/100px.jpg +0 -0
- data/fixtures/asset-hash-app/source/images/100px.png +0 -0
- data/fixtures/asset-hash-app/source/index.html.erb +311 -0
- data/fixtures/asset-hash-app/source/javascripts/application.js +8 -0
- data/fixtures/asset-hash-app/source/layout.erb +18 -0
- data/fixtures/asset-hash-app/source/other.html.erb +2 -0
- data/fixtures/asset-hash-app/source/partials.html.erb +1 -0
- data/fixtures/asset-hash-app/source/stylesheets/_partial.sass +2 -0
- data/fixtures/asset-hash-app/source/stylesheets/site.css.scss +4 -0
- data/fixtures/asset-hash-app/source/stylesheets/uses_partials.css.sass +4 -0
- data/fixtures/asset-hash-app/source/subdir/index.html.erb +308 -0
- data/fixtures/asset-hash-host-app/config.rb +6 -0
- data/fixtures/asset-hash-host-app/source/images/100px.gif +0 -0
- data/fixtures/asset-hash-host-app/source/images/100px.jpg +0 -0
- data/fixtures/asset-hash-host-app/source/images/100px.png +0 -0
- data/fixtures/asset-hash-host-app/source/index.html.erb +6 -0
- data/fixtures/asset-hash-host-app/source/layout.erb +17 -0
- data/fixtures/asset-hash-host-app/source/other.html.erb +2 -0
- data/fixtures/asset-hash-host-app/source/stylesheets/site.css.scss +4 -0
- data/fixtures/asset-hash-host-app/source/subdir/index.html.erb +6 -0
- data/fixtures/asset-host-app/config.rb +0 -0
- data/fixtures/asset-host-app/source/.htaccess +1 -0
- data/fixtures/asset-host-app/source/asset_host.html.erb +1 -0
- data/fixtures/asset-host-app/source/images/blank.gif +0 -0
- data/fixtures/asset-host-app/source/stylesheets/asset_host.css.sass +3 -0
- data/fixtures/auto-css-app/config.rb +11 -0
- data/fixtures/auto-css-app/source/auto-css/auto-css.html.erb +1 -0
- data/fixtures/auto-css-app/source/auto-css/index.html.erb +1 -0
- data/fixtures/auto-css-app/source/auto-css/sub/auto-css.html.erb +1 -0
- data/fixtures/auto-css-app/source/auto-css.html.erb +1 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css/auto-css.css +3 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css/index.css +0 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css/sub/auto-css.css +3 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css.css +3 -0
- data/fixtures/auto-js-app/config.rb +11 -0
- data/fixtures/auto-js-app/source/auto-js/auto-js.html.erb +1 -0
- data/fixtures/auto-js-app/source/auto-js/index.html.erb +1 -0
- data/fixtures/auto-js-app/source/auto-js/sub/auto-js.html.erb +1 -0
- data/fixtures/auto-js-app/source/auto-js.html.erb +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js/auto-js.js +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js/index.js +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js/sub/auto-js.js +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js.js +1 -0
- data/fixtures/automatic-image-size-app/config.rb +0 -0
- data/fixtures/automatic-image-size-app/source/auto-image-sizes.html.erb +1 -0
- data/fixtures/automatic-image-size-app/source/images/blank.gif +0 -0
- data/fixtures/cache-buster-app/config.rb +0 -0
- data/fixtures/cache-buster-app/source/cache-buster.html.erb +3 -0
- data/fixtures/cache-buster-app/source/images/blank.gif +0 -0
- data/fixtures/cache-buster-app/source/stylesheets/relative_assets.css.sass +3 -0
- data/fixtures/cache-buster-app/source/stylesheets/site.css.sass +1 -0
- data/fixtures/clean-dir-app/config.rb +2 -0
- data/fixtures/clean-dir-app/source/about.html +1 -0
- data/fixtures/coffeescript-app/config.rb +0 -0
- data/fixtures/coffeescript-app/source/inline-coffeescript.html.haml +3 -0
- data/fixtures/coffeescript-app/source/javascripts/broken-coffee.js.coffee +3 -0
- data/fixtures/coffeescript-app/source/javascripts/coffee_test.js.coffee +3 -0
- data/fixtures/compass-sprites-app/config.rb +0 -0
- data/fixtures/compass-sprites-app/source/images/icon/arrow_down.png +0 -0
- data/fixtures/compass-sprites-app/source/images/icon/arrow_left.png +0 -0
- data/fixtures/compass-sprites-app/source/images/icon/arrow_right.png +0 -0
- data/fixtures/compass-sprites-app/source/images/icon/arrow_up.png +0 -0
- data/fixtures/compass-sprites-app/source/stylesheets/site.css.scss +3 -0
- data/fixtures/content-for-app/config.rb +7 -0
- data/fixtures/content-for-app/source/content_for_erb.html.erb +5 -0
- data/fixtures/content-for-app/source/content_for_haml.html.haml +4 -0
- data/fixtures/content-for-app/source/content_for_slim.html.slim +4 -0
- data/fixtures/content-for-app/source/layouts/content_for.erb +4 -0
- data/fixtures/default-partials-dir-app/source/_partial.html.erb +1 -0
- data/fixtures/default-partials-dir-app/source/index.html.erb +2 -0
- data/fixtures/different-engine-layout/source/index.html.str +1 -0
- data/fixtures/different-engine-partial/config.rb +0 -0
- data/fixtures/different-engine-partial/source/index.html.erb +1 -0
- data/fixtures/different-engine-partial/source/layouts/layout.erb +7 -0
- data/fixtures/different-engine-partial/source/shared/_footer.str +1 -0
- data/fixtures/different-engine-partial/source/shared/_header.erb +1 -0
- data/fixtures/fonts-app/config.rb +0 -0
- data/fixtures/fonts-app/source/fonts/StMarie-Thin.otf +0 -0
- data/fixtures/fonts-app/source/fonts/blank/blank.otf +0 -0
- data/fixtures/fonts-app/source/stylesheets/fonts.css.sass +5 -0
- data/fixtures/gzip-app/config.rb +1 -0
- data/fixtures/gzip-app/source/index.html +0 -0
- data/fixtures/gzip-app/source/javascripts/test.js +1 -0
- data/fixtures/gzip-app/source/stylesheets/test.css +1 -0
- data/fixtures/i18n-alt-root-app/locales/en.yml +4 -0
- data/fixtures/i18n-alt-root-app/locales/es.yml +7 -0
- data/fixtures/i18n-alt-root-app/source/lang_data/hello.html.erb +1 -0
- data/fixtures/i18n-alt-root-app/source/lang_data/index.html.erb +1 -0
- data/fixtures/i18n-alt-root-app/source/layout.erb +1 -0
- data/fixtures/i18n-default-app/locales/en.yml +4 -0
- data/fixtures/i18n-default-app/locales/es.yml +8 -0
- data/fixtures/i18n-default-app/source/localizable/index.html.erb +5 -0
- data/fixtures/i18n-force-locale/config.rb +13 -0
- data/fixtures/i18n-force-locale/locales/en.yml +3 -0
- data/fixtures/i18n-force-locale/locales/es.yml +3 -0
- data/fixtures/i18n-force-locale/locales/fr.yml +3 -0
- data/fixtures/i18n-force-locale/source/index.haml +2 -0
- data/fixtures/i18n-test-app/locales/en.yml +4 -0
- data/fixtures/i18n-test-app/locales/es.yml +8 -0
- data/fixtures/i18n-test-app/source/CNAME +1 -0
- data/fixtures/i18n-test-app/source/layout.erb +8 -0
- data/fixtures/i18n-test-app/source/localizable/hello.html.erb +1 -0
- data/fixtures/i18n-test-app/source/localizable/index.html.erb +1 -0
- data/fixtures/i18n-test-app/source/morning.en.html.erb +1 -0
- data/fixtures/i18n-test-app/source/morning.es.html.erb +1 -0
- data/fixtures/i18n-test-app/source/password.txt +1 -0
- data/fixtures/i18n-test-app/source/stylesheets/site.css +3 -0
- data/fixtures/indexable-app/config.rb +4 -0
- data/fixtures/indexable-app/source/.htpasswd +1 -0
- data/fixtures/liquid-app/config.rb +0 -0
- data/fixtures/liquid-app/data/test.yml +4 -0
- data/fixtures/liquid-app/data/test2.json +4 -0
- data/fixtures/liquid-app/source/_liquid_partial.liquid +1 -0
- data/fixtures/liquid-app/source/data2.html.liquid +2 -0
- data/fixtures/liquid-app/source/liquid_master.html.liquid +1 -0
- data/fixtures/lorem-app/config.rb +1 -0
- data/fixtures/lorem-app/source/lorem.html.erb +13 -0
- data/fixtures/markdown-app/config.rb +1 -0
- data/fixtures/markdown-app/source/autolink.html.markdown +5 -0
- data/fixtures/markdown-app/source/fenced_code_blocks.html.markdown +7 -0
- data/fixtures/markdown-app/source/hard_wrap.html.markdown +2 -0
- data/fixtures/markdown-app/source/images/blank.gif +0 -0
- data/fixtures/markdown-app/source/index.html.markdown +4 -0
- data/fixtures/markdown-app/source/no_intra_emphasis.html.markdown +5 -0
- data/fixtures/markdown-app/source/smarty_pants.html.markdown +5 -0
- data/fixtures/markdown-app/source/space_after_headers.html.markdown +5 -0
- data/fixtures/markdown-app/source/strikethrough.html.markdown +5 -0
- data/fixtures/markdown-app/source/superscript.html.markdown +5 -0
- data/fixtures/markdown-app/source/tables.html.markdown +8 -0
- data/fixtures/markdown-app/source/with_toc_data.html.markdown +3 -0
- data/fixtures/markdown-frontmatter-options-app/config.rb +1 -0
- data/fixtures/markdown-frontmatter-options-app/source/smarty_pants-default.html.markdown +5 -0
- data/fixtures/markdown-frontmatter-options-app/source/smarty_pants-off.html.markdown +7 -0
- data/fixtures/markdown-frontmatter-options-app/source/smarty_pants-on.html.markdown +7 -0
- data/fixtures/markdown-frontmatter-options-app/source/tables-default.html.markdown +8 -0
- data/fixtures/markdown-frontmatter-options-app/source/tables-off.html.markdown +10 -0
- data/fixtures/markdown-frontmatter-options-app/source/tables-on.html.markdown +10 -0
- data/fixtures/markdown-in-haml-app/config.rb +0 -0
- data/fixtures/markdown-in-haml-app/source/images/blank.gif +0 -0
- data/fixtures/markdown-in-haml-app/source/link_target.html.markdown +4 -0
- data/fixtures/minify-css-app/source/inline-css.html.haml +5 -0
- data/fixtures/minify-css-app/source/more-css/site.css +3 -0
- data/fixtures/minify-css-app/source/stylesheets/report.css +1 -0
- data/fixtures/minify-css-app/source/stylesheets/site.css.sass +5 -0
- data/fixtures/minify-js-app/config.rb +0 -0
- data/fixtures/minify-js-app/source/inline-coffeescript.html.haml +3 -0
- data/fixtures/minify-js-app/source/inline-js.html.haml +28 -0
- data/fixtures/minify-js-app/source/javascripts/coffee_test.js.coffee +3 -0
- data/fixtures/minify-js-app/source/javascripts/js_test.js +8 -0
- data/fixtures/minify-js-app/source/more-js/other.js +8 -0
- data/fixtures/more-extensionless-text-files-app/config.rb +1 -0
- data/fixtures/more-extensionless-text-files-app/source/CNAME +1 -0
- data/fixtures/more-extensionless-text-files-app/source/LICENSE +1 -0
- data/fixtures/more-extensionless-text-files-app/source/README +1 -0
- data/fixtures/more-extensionless-text-files-app/source/index.html +1 -0
- data/fixtures/more-frontmatter-settings-app/config.rb +4 -0
- data/fixtures/more-frontmatter-settings-app/source/alternate_layout.html.erb +5 -0
- data/fixtures/more-frontmatter-settings-app/source/ignored.html.erb +5 -0
- data/fixtures/more-frontmatter-settings-app/source/layouts/alternate.erb +3 -0
- data/fixtures/more-frontmatter-settings-app/source/no_index.html.erb +5 -0
- data/fixtures/more-ignore-app/source/about.html.erb +1 -0
- data/fixtures/more-ignore-app/source/images/icon/messages.png +0 -0
- data/fixtures/more-ignore-app/source/images/pic.png +0 -0
- data/fixtures/more-ignore-app/source/images/portrait.jpg +0 -0
- data/fixtures/more-ignore-app/source/index.html.erb +0 -0
- data/fixtures/more-ignore-app/source/plain.html +1 -0
- data/fixtures/more-ignore-app/source/reports/another.html +0 -0
- data/fixtures/more-ignore-app/source/reports/index.html +0 -0
- data/fixtures/more-implied-extensions-app/config.rb +0 -0
- data/fixtures/more-implied-extensions-app/source/javascripts/app.coffee +1 -0
- data/fixtures/more-implied-extensions-app/source/stylesheets/style.scss +3 -0
- data/fixtures/more-implied-extensions-app/source/stylesheets/style2.sass +3 -0
- data/fixtures/more-implied-extensions-app/source/stylesheets/style3.less +4 -0
- data/fixtures/more-implied-extensions-app/source/test.haml +4 -0
- data/fixtures/more-implied-extensions-app/source/test2.markdown +3 -0
- data/fixtures/more-implied-extensions-app/source/test3.slim +3 -0
- data/fixtures/more-implied-extensions-app/source/test4.liquid +1 -0
- data/fixtures/more-instance-vars-app/config.rb +0 -0
- data/fixtures/more-instance-vars-app/source/_vartial.erb +5 -0
- data/fixtures/more-instance-vars-app/source/instance-var-set.html.erb +2 -0
- data/fixtures/more-instance-vars-app/source/layout.erb +3 -0
- data/fixtures/more-instance-vars-app/source/no-instance-var.html.erb +1 -0
- data/fixtures/more-preview-app/config.rb +0 -0
- data/fixtures/more-preview-app/source/content.html.erb +1 -0
- data/fixtures/more-preview-app/source/layout.erb +1 -0
- data/fixtures/more-preview-app/source/stylesheets/_partial.sass +2 -0
- data/fixtures/more-preview-app/source/stylesheets/_partial2.css.sass +2 -0
- data/fixtures/more-preview-app/source/stylesheets/main.css.sass +4 -0
- data/fixtures/more-preview-app/source/stylesheets/main2.css.sass +4 -0
- data/fixtures/more-preview-app/source/stylesheets/plain.css.sass +2 -0
- data/fixtures/more-traversal-app/config.rb +7 -0
- data/fixtures/more-traversal-app/source/directory-indexed/sibling.html.erb +3 -0
- data/fixtures/more-traversal-app/source/directory-indexed/sibling2.html.erb +3 -0
- data/fixtures/more-traversal-app/source/directory-indexed/sub2/index.html.erb +0 -0
- data/fixtures/more-traversal-app/source/directory-indexed/sub3/deep.html.erb +0 -0
- data/fixtures/more-traversal-app/source/directory-indexed.html.erb +0 -0
- data/fixtures/more-traversal-app/source/index.html.erb +0 -0
- data/fixtures/more-traversal-app/source/layout.erb +21 -0
- data/fixtures/more-traversal-app/source/proxied.html.erb +0 -0
- data/fixtures/more-traversal-app/source/root.html.erb +0 -0
- data/fixtures/more-traversal-app/source/sub/index.html.erb +0 -0
- data/fixtures/more-traversal-app/source/sub/sibling.html.erb +0 -0
- data/fixtures/more-traversal-app/source/sub/sibling2.html.erb +0 -0
- data/fixtures/more-traversal-app/source/sub/sub2/index.html.erb +0 -0
- data/fixtures/more-traversal-app/source/sub/sub3/deep.html.erb +0 -0
- data/fixtures/nested-layout-app/config.rb +1 -0
- data/fixtures/nested-layout-app/source/another.html.markdown +7 -0
- data/fixtures/nested-layout-app/source/data-one.html.erb +5 -0
- data/fixtures/nested-layout-app/source/data-two.html.erb +5 -0
- data/fixtures/nested-layout-app/source/haml-test.html.markdown +7 -0
- data/fixtures/nested-layout-app/source/index.html.erb +6 -0
- data/fixtures/nested-layout-app/source/layouts/inner.erb +4 -0
- data/fixtures/nested-layout-app/source/layouts/inner_haml.haml +3 -0
- data/fixtures/nested-layout-app/source/layouts/inner_slim.slim +3 -0
- data/fixtures/nested-layout-app/source/layouts/master.erb +3 -0
- data/fixtures/nested-layout-app/source/layouts/master_haml.haml +3 -0
- data/fixtures/nested-layout-app/source/layouts/master_slim.slim +3 -0
- data/fixtures/nested-layout-app/source/layouts/outer.erb +4 -0
- data/fixtures/nested-layout-app/source/layouts/outer_haml.haml +3 -0
- data/fixtures/nested-layout-app/source/layouts/outer_slim.slim +3 -0
- data/fixtures/nested-layout-app/source/slim-test.html.markdown +7 -0
- data/fixtures/padrino-helpers-app/config.rb +0 -0
- data/fixtures/padrino-helpers-app/source/former_padrino_test.html.erb +6 -0
- data/fixtures/page-classes-app/config.rb +4 -0
- data/fixtures/page-classes-app/source/page-classes.html.erb +1 -0
- data/fixtures/page-classes-app/source/sub1/page-classes.html.erb +1 -0
- data/fixtures/page-classes-app/source/sub1/sub2/page-classes.html.erb +1 -0
- data/fixtures/partials-app/config.rb +0 -0
- data/fixtures/partials-app/source/_locals.erb +1 -0
- data/fixtures/partials-app/source/_main.erb +1 -0
- data/fixtures/partials-app/source/_main.str +1 -0
- data/fixtures/partials-app/source/index.html.erb +3 -0
- data/fixtures/partials-app/source/locals.html.erb +1 -0
- data/fixtures/partials-app/source/second.html.str +3 -0
- data/fixtures/partials-app/source/shared/_footer.erb +1 -0
- data/fixtures/partials-app/source/shared/_header.erb +1 -0
- data/fixtures/partials-app/source/shared/snippet.erb +1 -0
- data/fixtures/partials-app/source/sub/_local.erb +1 -0
- data/fixtures/partials-app/source/sub/index.html.erb +3 -0
- data/fixtures/partials-app/source/using_snippet.html.erb +1 -0
- data/fixtures/partials-dir-app/source/index.html.erb +2 -0
- data/fixtures/partials-dir-app/source/nested/partials/_partial.html.erb +1 -0
- data/fixtures/partials-dir-app/source/partials/_partial.html.erb +1 -0
- data/fixtures/passthrough-app/source/.htaccess +1 -0
- data/fixtures/passthrough-app/source/inline-coffeescript.html.haml +3 -0
- data/fixtures/passthrough-app/source/inline-css.html.haml +4 -0
- data/fixtures/passthrough-app/source/inline-js.html.haml +28 -0
- data/fixtures/passthrough-app/source/javascripts/coffee_test.js.coffee +3 -0
- data/fixtures/passthrough-app/source/javascripts/js_test.js +8 -0
- data/fixtures/passthrough-app/source/stylesheets/site.css.sass +1 -0
- data/fixtures/relative-app/config.rb +0 -0
- data/fixtures/relative-app/source/images/blank.gif +0 -0
- data/fixtures/relative-app/source/stylesheets/relative_assets.css.sass +3 -0
- data/fixtures/relative-assets-app/config.rb +1 -0
- data/fixtures/relative-assets-app/source/images/blank.gif +0 -0
- data/fixtures/relative-assets-app/source/img/blank.gif +0 -0
- data/fixtures/relative-assets-app/source/relative_image.html.erb +8 -0
- data/fixtures/relative-assets-app/source/stylesheets/relative_assets.css.sass +3 -0
- data/fixtures/sass-assets-path-app/assets/stylesheets/_shared-asset-sass.sass +1 -0
- data/fixtures/sass-assets-path-app/assets/stylesheets/_shared-asset.scss +1 -0
- data/fixtures/sass-assets-path-app/config.rb +4 -0
- data/fixtures/sass-assets-path-app/my-vendor/stylesheets/_partial.sass +2 -0
- data/fixtures/sass-assets-path-app/source/stylesheets/plain.css.sass +16 -0
- data/fixtures/sass-cache-path-custom-app/config.rb +3 -0
- data/fixtures/sass-cache-path-custom-app/source/stylesheets/plain.css.sass +4 -0
- data/fixtures/sass-cache-path-default-app/config.rb +3 -0
- data/fixtures/sass-cache-path-default-app/source/stylesheets/plain.css.sass +4 -0
- data/fixtures/scss-app/config.rb +0 -0
- data/fixtures/scss-app/source/stylesheets/layout.css.sass +2 -0
- data/fixtures/scss-app/source/stylesheets/site_scss.css.scss +1 -0
- data/fixtures/stylus-preview-app/config.rb +0 -0
- data/fixtures/stylus-preview-app/source/content.html.erb +1 -0
- data/fixtures/stylus-preview-app/source/layout.erb +1 -0
- data/fixtures/stylus-preview-app/source/stylesheets/_partial.styl +2 -0
- data/fixtures/stylus-preview-app/source/stylesheets/_partial2.css.styl +2 -0
- data/fixtures/stylus-preview-app/source/stylesheets/main.css.styl +4 -0
- data/fixtures/stylus-preview-app/source/stylesheets/main2.css.styl +4 -0
- data/fixtures/stylus-preview-app/source/stylesheets/plain.css.styl +2 -0
- data/fixtures/twitter-bootstrap-app/config.rb +0 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/.gitignore +36 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/.travis.yml +3 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/LICENSE +176 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/README.md +137 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/img/glyphicons-halflings-white.png +0 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/img/glyphicons-halflings.png +0 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/.jshintrc +10 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/README.md +112 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-alert.js +90 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-button.js +96 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-carousel.js +169 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-collapse.js +157 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-dropdown.js +100 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-modal.js +218 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-popover.js +98 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-scrollspy.js +151 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-tab.js +135 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-tooltip.js +275 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-transition.js +61 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/bootstrap-typeahead.js +285 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/index.html +54 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/phantom.js +63 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/server.js +14 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-alert.js +56 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-button.js +77 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-carousel.js +28 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-collapse.js +54 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-dropdown.js +87 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-modal.js +114 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-phantom.js +21 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-popover.js +93 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-scrollspy.js +31 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-tab.js +61 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-tooltip.js +155 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-transition.js +13 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/unit/bootstrap-typeahead.js +148 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/vendor/jquery.js +9252 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/vendor/qunit.css +232 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/js/tests/vendor/qunit.js +1510 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_accordion.less +33 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_alerts.less +58 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_breadcrumbs.less +24 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_button-groups.less +191 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_buttons.less +191 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_carousel.less +121 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_close.less +29 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_code.less +57 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_component-animations.less +20 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_dropdowns.less +143 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_forms.less +583 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_grid.less +5 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_hero-unit.less +22 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_labels-badges.less +55 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_layouts.less +17 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_mixins.less +646 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_modals.less +90 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_navbar.less +358 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_navs.less +363 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_pager.less +36 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_pagination.less +56 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_popovers.less +49 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_progress-bars.less +117 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_reset.less +131 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-1200px-min.less +26 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-767px-max.less +149 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-768px-979px.less +17 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-navbar.less +153 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_responsive-utilities.less +41 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_scaffolding.less +29 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_sprites.less +191 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_tables.less +176 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_thumbnails.less +47 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_tooltip.less +35 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_type.less +232 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_utilities.less +23 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_variables.less +206 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/_wells.less +27 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/bootstrap.less +62 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/responsive.less +48 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/css-tests.css +52 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/css-tests.html +917 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/forms.html +179 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/less/tests/navbar.html +108 -0
- data/fixtures/twitter-bootstrap-app/source/twitter-bootstrap-ebc6935/package.json +25 -0
- data/fixtures/wildcard-directory-index-app/config.rb +2 -0
- data/fixtures/wildcard-directory-index-app/source/admin/index.html.erb +1 -0
- data/fixtures/wildcard-directory-index-app/source/admin/page.html.erb +1 -0
- data/fixtures/wildcard-directory-index-app/source/index.html.erb +1 -0
- data/fixtures/wildcard-directory-index-app/source/layouts/admin.erb +2 -0
- data/fixtures/wildcard-directory-index-app/source/layouts/layout.erb +2 -0
- data/lib/middleman-core/cli/build.rb +8 -5
- data/lib/middleman-core/extensions.rb +0 -5
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +2 -0
- data/lib/middleman-core/preview_server.rb +1 -1
- data/lib/middleman-core/templates/shared/Gemfile.tt +1 -1
- data/lib/middleman-core/util.rb +9 -7
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-core.rb +1 -0
- data/lib/middleman-more/core_extensions/compass.rb +75 -0
- data/lib/middleman-more/core_extensions/default_helpers.rb +235 -0
- data/lib/middleman-more/core_extensions/i18n.rb +182 -0
- data/lib/middleman-more/extensions/asset_hash.rb +114 -0
- data/lib/middleman-more/extensions/asset_host.rb +50 -0
- data/lib/middleman-more/extensions/automatic_image_sizes/fastimage.rb +287 -0
- data/lib/middleman-more/extensions/automatic_image_sizes.rb +42 -0
- data/lib/middleman-more/extensions/cache_buster.rb +56 -0
- data/lib/middleman-more/extensions/directory_indexes.rb +24 -0
- data/lib/middleman-more/extensions/gzip.rb +75 -0
- data/lib/middleman-more/extensions/lorem.rb +176 -0
- data/lib/middleman-more/extensions/minify_css.rb +77 -0
- data/lib/middleman-more/extensions/minify_javascript.rb +83 -0
- data/lib/middleman-more/extensions/relative_assets.rb +29 -0
- data/lib/middleman-more/templates/smacss/source/_footer.haml +1 -0
- data/lib/middleman-more/templates/smacss/source/index.html.haml +1 -0
- data/lib/middleman-more/templates/smacss/source/layouts/layout.haml +13 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/base/README.markdown +11 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/base/base.scss +1 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/base/normalize.scss +375 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/layout/README.markdown +9 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/modules/README.markdown +9 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/states/README.markdown +12 -0
- data/lib/middleman-more/templates/smacss/source/stylesheets/style.css.scss +12 -0
- data/lib/middleman-more/templates/smacss.rb +30 -0
- data/lib/middleman-more.rb +102 -0
- data/middleman-core.gemspec +4 -1
- metadata +885 -7
- data/.cane +0 -2
- data/.cane-exclusions.yml +0 -5
@@ -0,0 +1,77 @@
|
|
1
|
+
# Minify CSS Extension
|
2
|
+
class Middleman::Extensions::MinifyCss < ::Middleman::Extension
|
3
|
+
option :compressor, nil, 'Set the CSS compressor to use.'
|
4
|
+
option :inline, false, 'Whether to minify CSS inline within HTML files'
|
5
|
+
option :ignore, [], 'Patterns to avoid minifying'
|
6
|
+
|
7
|
+
def initialize(app, options_hash={}, &block)
|
8
|
+
super
|
9
|
+
|
10
|
+
app.config.define_setting :css_compressor, nil, 'Set the CSS compressor to use. Deprecated in favor of the :compressor option when activating :minify_css'
|
11
|
+
end
|
12
|
+
|
13
|
+
def after_configuration
|
14
|
+
chosen_compressor = app.config[:css_compressor] || options[:compressor] || SassCompressor
|
15
|
+
|
16
|
+
# Setup Rack middleware to minify CSS
|
17
|
+
app.use Rack, :compressor => chosen_compressor,
|
18
|
+
:ignore => Array(options[:ignore]) + [/\.min\./],
|
19
|
+
:inline => options[:inline]
|
20
|
+
end
|
21
|
+
|
22
|
+
class SassCompressor
|
23
|
+
def self.compress(style, options = {})
|
24
|
+
root_node = ::Sass::SCSS::CssParser.new(style, 'middleman-css-input', 1).parse
|
25
|
+
root_node.options = { :style => :compressed }
|
26
|
+
root_node.render.strip
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Rack middleware to look for CSS and compress it
|
31
|
+
class Rack
|
32
|
+
|
33
|
+
# Init
|
34
|
+
# @param [Class] app
|
35
|
+
# @param [Hash] options
|
36
|
+
def initialize(app, options={})
|
37
|
+
@app = app
|
38
|
+
@compressor = options[:compressor]
|
39
|
+
@ignore = options[:ignore]
|
40
|
+
@inline = options[:inline]
|
41
|
+
end
|
42
|
+
|
43
|
+
# Rack interface
|
44
|
+
# @param [Rack::Environmemt] env
|
45
|
+
# @return [Array]
|
46
|
+
def call(env)
|
47
|
+
status, headers, response = @app.call(env)
|
48
|
+
|
49
|
+
path = env["PATH_INFO"]
|
50
|
+
|
51
|
+
if (path.end_with?('.html') || path.end_with?('.php')) && @inline
|
52
|
+
uncompressed_source = ::Middleman::Util.extract_response_text(response)
|
53
|
+
|
54
|
+
minified = uncompressed_source.gsub(/(<style[^>]*>\s*(?:\/\*<!\[CDATA\[\*\/\n)?)(.*?)((?:(?:\n\s*)?\/\*\]\]>\*\/)?\s*<\/style>)/m) do |match|
|
55
|
+
first = $1
|
56
|
+
css = $2
|
57
|
+
last = $3
|
58
|
+
|
59
|
+
minified_css = @compressor.compress(css)
|
60
|
+
|
61
|
+
first << minified_css << last
|
62
|
+
end
|
63
|
+
|
64
|
+
headers["Content-Length"] = ::Rack::Utils.bytesize(minified).to_s
|
65
|
+
response = [minified]
|
66
|
+
elsif path.end_with?('.css') && @ignore.none? {|ignore| Middleman::Util.path_match(ignore, path) }
|
67
|
+
uncompressed_source = ::Middleman::Util.extract_response_text(response)
|
68
|
+
minified_css = @compressor.compress(uncompressed_source)
|
69
|
+
|
70
|
+
headers["Content-Length"] = ::Rack::Utils.bytesize(minified_css).to_s
|
71
|
+
response = [minified_css]
|
72
|
+
end
|
73
|
+
|
74
|
+
[status, headers, response]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# Minify Javascript Extension
|
2
|
+
class Middleman::Extensions::MinifyJavascript < ::Middleman::Extension
|
3
|
+
option :compressor, nil, 'Set the JS compressor to use.'
|
4
|
+
option :inline, false, 'Whether to minify JS inline within HTML files'
|
5
|
+
option :ignore, [], 'Patterns to avoid minifying'
|
6
|
+
|
7
|
+
def initialize(app, options_hash={}, &block)
|
8
|
+
super
|
9
|
+
|
10
|
+
app.config.define_setting :js_compressor, nil, 'Set the JS compressor to use. Deprecated in favor of the :compressor option when activating :minify_js'
|
11
|
+
end
|
12
|
+
|
13
|
+
def after_configuration
|
14
|
+
chosen_compressor = app.config[:js_compressor] || options[:compressor] || begin
|
15
|
+
require 'uglifier'
|
16
|
+
::Uglifier.new
|
17
|
+
end
|
18
|
+
|
19
|
+
# Setup Rack middleware to minify CSS
|
20
|
+
app.use Rack, :compressor => chosen_compressor,
|
21
|
+
:ignore => Array(options[:ignore]) + [/\.min\./],
|
22
|
+
:inline => options[:inline]
|
23
|
+
end
|
24
|
+
|
25
|
+
# Rack middleware to look for JS and compress it
|
26
|
+
class Rack
|
27
|
+
|
28
|
+
# Init
|
29
|
+
# @param [Class] app
|
30
|
+
# @param [Hash] options
|
31
|
+
def initialize(app, options={})
|
32
|
+
@app = app
|
33
|
+
@compressor = options[:compressor]
|
34
|
+
@ignore = options[:ignore]
|
35
|
+
@inline = options[:inline]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Rack interface
|
39
|
+
# @param [Rack::Environmemt] env
|
40
|
+
# @return [Array]
|
41
|
+
def call(env)
|
42
|
+
status, headers, response = @app.call(env)
|
43
|
+
|
44
|
+
path = env["PATH_INFO"]
|
45
|
+
|
46
|
+
begin
|
47
|
+
if (path.end_with?('.html') || path.end_with?('.php')) && @inline
|
48
|
+
uncompressed_source = ::Middleman::Util.extract_response_text(response)
|
49
|
+
|
50
|
+
minified = uncompressed_source.gsub(/(<script[^>]*>\s*(?:\/\/(?:(?:<!--)|(?:<!\[CDATA\[))\n)?)(.*?)((?:(?:\n\s*)?\/\/(?:(?:-->)|(?:\]\]>)))?\s*<\/script>)/m) do |match|
|
51
|
+
first = $1
|
52
|
+
javascript = $2
|
53
|
+
last = $3
|
54
|
+
|
55
|
+
# Only compress script tags that contain JavaScript (as opposed
|
56
|
+
# to something like jQuery templates, identified with a "text/html"
|
57
|
+
# type.
|
58
|
+
if first =~ /<script>/ || first.include?('text/javascript')
|
59
|
+
minified_js = @compressor.compress(javascript)
|
60
|
+
|
61
|
+
first << minified_js << last
|
62
|
+
else
|
63
|
+
match
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
headers["Content-Length"] = ::Rack::Utils.bytesize(minified).to_s
|
68
|
+
response = [minified]
|
69
|
+
elsif path.end_with?('.js') && @ignore.none? {|ignore| Middleman::Util.path_match(ignore, path) }
|
70
|
+
uncompressed_source = ::Middleman::Util.extract_response_text(response)
|
71
|
+
minified_js = @compressor.compress(uncompressed_source)
|
72
|
+
|
73
|
+
headers["Content-Length"] = ::Rack::Utils.bytesize(minified_js).to_s
|
74
|
+
response = [minified_js]
|
75
|
+
end
|
76
|
+
rescue ExecJS::ProgramError => e
|
77
|
+
warn "WARNING: Couldn't compress JavaScript in #{path}: #{e.message}"
|
78
|
+
end
|
79
|
+
|
80
|
+
[status, headers, response]
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Relative Assets extension
|
2
|
+
class Middleman::Extensions::RelativeAssets < ::Middleman::Extension
|
3
|
+
|
4
|
+
def initialize(app, options_hash={}, &block)
|
5
|
+
super
|
6
|
+
|
7
|
+
# After compass is setup, make it use the registered cache buster
|
8
|
+
app.compass_config do |config|
|
9
|
+
config.relative_assets = true
|
10
|
+
end if app.respond_to?(:compass_config)
|
11
|
+
end
|
12
|
+
|
13
|
+
helpers do
|
14
|
+
# asset_url override for relative assets
|
15
|
+
# @param [String] path
|
16
|
+
# @param [String] prefix
|
17
|
+
# @return [String]
|
18
|
+
def asset_url(path, prefix="")
|
19
|
+
path = super(path, prefix)
|
20
|
+
|
21
|
+
if path.include?("//") || !current_resource
|
22
|
+
path
|
23
|
+
else
|
24
|
+
current_dir = Pathname('/' + current_resource.destination_path)
|
25
|
+
Pathname(path).relative_path_from(current_dir.dirname).to_s
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
%footer © 2013
|
@@ -0,0 +1 @@
|
|
1
|
+
%h1 Middleman
|
@@ -0,0 +1,13 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Middleman
|
5
|
+
%meta{:charset => "utf-8"}
|
6
|
+
%meta{:content => "Middleman", :name => "description"}
|
7
|
+
%meta{:content => "on", "http-equiv" => "cleartype"}
|
8
|
+
%meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}
|
9
|
+
%link{:href => "stylesheets/style.css", :rel => "stylesheet"}
|
10
|
+
|
11
|
+
%body
|
12
|
+
= yield
|
13
|
+
= render_partial 'footer'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# SMACSS
|
2
|
+
|
3
|
+
### Base
|
4
|
+
|
5
|
+
> A Base rule is applied to an element using an element selector, a descendent selector, or a child selector, along with any pseudo-classes. It doesn’t include any class or ID selectors. It is defining the default styling for how that element should look in all occurrences on the page.
|
6
|
+
|
7
|
+
> - SMACSS, Jonathan Snook
|
8
|
+
|
9
|
+
Place files here that impact top-level elements to apply global styles.
|
10
|
+
|
11
|
+
This template includes [`normalize.css`](http://necolas.github.com/normalize.css/) to give consistent base styles for all browsers.
|
@@ -0,0 +1 @@
|
|
1
|
+
// Placeholder
|
@@ -0,0 +1,375 @@
|
|
1
|
+
/*! normalize.css v2.0.1 | MIT License | git.io/normalize */
|
2
|
+
|
3
|
+
/* ==========================================================================
|
4
|
+
HTML5 display definitions
|
5
|
+
========================================================================== */
|
6
|
+
|
7
|
+
/*
|
8
|
+
* Corrects `block` display not defined in IE 8/9.
|
9
|
+
*/
|
10
|
+
|
11
|
+
article,
|
12
|
+
aside,
|
13
|
+
details,
|
14
|
+
figcaption,
|
15
|
+
figure,
|
16
|
+
footer,
|
17
|
+
header,
|
18
|
+
hgroup,
|
19
|
+
nav,
|
20
|
+
section,
|
21
|
+
summary {
|
22
|
+
display: block;
|
23
|
+
}
|
24
|
+
|
25
|
+
/*
|
26
|
+
* Corrects `inline-block` display not defined in IE 8/9.
|
27
|
+
*/
|
28
|
+
|
29
|
+
audio,
|
30
|
+
canvas,
|
31
|
+
video {
|
32
|
+
display: inline-block;
|
33
|
+
}
|
34
|
+
|
35
|
+
/*
|
36
|
+
* Prevents modern browsers from displaying `audio` without controls.
|
37
|
+
* Remove excess height in iOS 5 devices.
|
38
|
+
*/
|
39
|
+
|
40
|
+
audio:not([controls]) {
|
41
|
+
display: none;
|
42
|
+
height: 0;
|
43
|
+
}
|
44
|
+
|
45
|
+
/*
|
46
|
+
* Addresses styling for `hidden` attribute not present in IE 8/9.
|
47
|
+
*/
|
48
|
+
|
49
|
+
[hidden] {
|
50
|
+
display: none;
|
51
|
+
}
|
52
|
+
|
53
|
+
/* ==========================================================================
|
54
|
+
Base
|
55
|
+
========================================================================== */
|
56
|
+
|
57
|
+
/*
|
58
|
+
* 1. Sets default font family to sans-serif.
|
59
|
+
* 2. Prevents iOS text size adjust after orientation change, without disabling
|
60
|
+
* user zoom.
|
61
|
+
*/
|
62
|
+
|
63
|
+
html {
|
64
|
+
font-family: sans-serif; /* 1 */
|
65
|
+
-webkit-text-size-adjust: 100%; /* 2 */
|
66
|
+
-ms-text-size-adjust: 100%; /* 2 */
|
67
|
+
}
|
68
|
+
|
69
|
+
/*
|
70
|
+
* Removes default margin.
|
71
|
+
*/
|
72
|
+
|
73
|
+
body {
|
74
|
+
margin: 0;
|
75
|
+
}
|
76
|
+
|
77
|
+
/* ==========================================================================
|
78
|
+
Links
|
79
|
+
========================================================================== */
|
80
|
+
|
81
|
+
/*
|
82
|
+
* Addresses `outline` inconsistency between Chrome and other browsers.
|
83
|
+
*/
|
84
|
+
|
85
|
+
a:focus {
|
86
|
+
outline: thin dotted;
|
87
|
+
}
|
88
|
+
|
89
|
+
/*
|
90
|
+
* Improves readability when focused and also mouse hovered in all browsers.
|
91
|
+
*/
|
92
|
+
|
93
|
+
a:active,
|
94
|
+
a:hover {
|
95
|
+
outline: 0;
|
96
|
+
}
|
97
|
+
|
98
|
+
/* ==========================================================================
|
99
|
+
Typography
|
100
|
+
========================================================================== */
|
101
|
+
|
102
|
+
/*
|
103
|
+
* Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
|
104
|
+
* Safari 5, and Chrome.
|
105
|
+
*/
|
106
|
+
|
107
|
+
h1 {
|
108
|
+
font-size: 2em;
|
109
|
+
}
|
110
|
+
|
111
|
+
/*
|
112
|
+
* Addresses styling not present in IE 8/9, Safari 5, and Chrome.
|
113
|
+
*/
|
114
|
+
|
115
|
+
abbr[title] {
|
116
|
+
border-bottom: 1px dotted;
|
117
|
+
}
|
118
|
+
|
119
|
+
/*
|
120
|
+
* Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
|
121
|
+
*/
|
122
|
+
|
123
|
+
b,
|
124
|
+
strong {
|
125
|
+
font-weight: bold;
|
126
|
+
}
|
127
|
+
|
128
|
+
/*
|
129
|
+
* Addresses styling not present in Safari 5 and Chrome.
|
130
|
+
*/
|
131
|
+
|
132
|
+
dfn {
|
133
|
+
font-style: italic;
|
134
|
+
}
|
135
|
+
|
136
|
+
/*
|
137
|
+
* Addresses styling not present in IE 8/9.
|
138
|
+
*/
|
139
|
+
|
140
|
+
mark {
|
141
|
+
background: #ff0;
|
142
|
+
color: #000;
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
/*
|
147
|
+
* Corrects font family set oddly in Safari 5 and Chrome.
|
148
|
+
*/
|
149
|
+
|
150
|
+
code,
|
151
|
+
kbd,
|
152
|
+
pre,
|
153
|
+
samp {
|
154
|
+
font-family: monospace, serif;
|
155
|
+
font-size: 1em;
|
156
|
+
}
|
157
|
+
|
158
|
+
/*
|
159
|
+
* Improves readability of pre-formatted text in all browsers.
|
160
|
+
*/
|
161
|
+
|
162
|
+
pre {
|
163
|
+
white-space: pre;
|
164
|
+
white-space: pre-wrap;
|
165
|
+
word-wrap: break-word;
|
166
|
+
}
|
167
|
+
|
168
|
+
/*
|
169
|
+
* Sets consistent quote types.
|
170
|
+
*/
|
171
|
+
|
172
|
+
q {
|
173
|
+
quotes: "\201C" "\201D" "\2018" "\2019";
|
174
|
+
}
|
175
|
+
|
176
|
+
/*
|
177
|
+
* Addresses inconsistent and variable font size in all browsers.
|
178
|
+
*/
|
179
|
+
|
180
|
+
small {
|
181
|
+
font-size: 80%;
|
182
|
+
}
|
183
|
+
|
184
|
+
/*
|
185
|
+
* Prevents `sub` and `sup` affecting `line-height` in all browsers.
|
186
|
+
*/
|
187
|
+
|
188
|
+
sub,
|
189
|
+
sup {
|
190
|
+
font-size: 75%;
|
191
|
+
line-height: 0;
|
192
|
+
position: relative;
|
193
|
+
vertical-align: baseline;
|
194
|
+
}
|
195
|
+
|
196
|
+
sup {
|
197
|
+
top: -0.5em;
|
198
|
+
}
|
199
|
+
|
200
|
+
sub {
|
201
|
+
bottom: -0.25em;
|
202
|
+
}
|
203
|
+
|
204
|
+
/* ==========================================================================
|
205
|
+
Embedded content
|
206
|
+
========================================================================== */
|
207
|
+
|
208
|
+
/*
|
209
|
+
* Removes border when inside `a` element in IE 8/9.
|
210
|
+
*/
|
211
|
+
|
212
|
+
img {
|
213
|
+
border: 0;
|
214
|
+
}
|
215
|
+
|
216
|
+
/*
|
217
|
+
* Corrects overflow displayed oddly in IE 9.
|
218
|
+
*/
|
219
|
+
|
220
|
+
svg:not(:root) {
|
221
|
+
overflow: hidden;
|
222
|
+
}
|
223
|
+
|
224
|
+
/* ==========================================================================
|
225
|
+
Figures
|
226
|
+
========================================================================== */
|
227
|
+
|
228
|
+
/*
|
229
|
+
* Addresses margin not present in IE 8/9 and Safari 5.
|
230
|
+
*/
|
231
|
+
|
232
|
+
figure {
|
233
|
+
margin: 0;
|
234
|
+
}
|
235
|
+
|
236
|
+
/* ==========================================================================
|
237
|
+
Forms
|
238
|
+
========================================================================== */
|
239
|
+
|
240
|
+
/*
|
241
|
+
* Define consistent border, margin, and padding.
|
242
|
+
*/
|
243
|
+
|
244
|
+
fieldset {
|
245
|
+
border: 1px solid #c0c0c0;
|
246
|
+
margin: 0 2px;
|
247
|
+
padding: 0.35em 0.625em 0.75em;
|
248
|
+
}
|
249
|
+
|
250
|
+
/*
|
251
|
+
* 1. Corrects color not being inherited in IE 8/9.
|
252
|
+
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
253
|
+
*/
|
254
|
+
|
255
|
+
legend {
|
256
|
+
border: 0; /* 1 */
|
257
|
+
padding: 0; /* 2 */
|
258
|
+
}
|
259
|
+
|
260
|
+
/*
|
261
|
+
* 1. Corrects font family not being inherited in all browsers.
|
262
|
+
* 2. Corrects font size not being inherited in all browsers.
|
263
|
+
* 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
|
264
|
+
*/
|
265
|
+
|
266
|
+
button,
|
267
|
+
input,
|
268
|
+
select,
|
269
|
+
textarea {
|
270
|
+
font-family: inherit; /* 1 */
|
271
|
+
font-size: 100%; /* 2 */
|
272
|
+
margin: 0; /* 3 */
|
273
|
+
}
|
274
|
+
|
275
|
+
/*
|
276
|
+
* Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
|
277
|
+
* the UA stylesheet.
|
278
|
+
*/
|
279
|
+
|
280
|
+
button,
|
281
|
+
input {
|
282
|
+
line-height: normal;
|
283
|
+
}
|
284
|
+
|
285
|
+
/*
|
286
|
+
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
287
|
+
* and `video` controls.
|
288
|
+
* 2. Corrects inability to style clickable `input` types in iOS.
|
289
|
+
* 3. Improves usability and consistency of cursor style between image-type
|
290
|
+
* `input` and others.
|
291
|
+
*/
|
292
|
+
|
293
|
+
button,
|
294
|
+
html input[type="button"], /* 1 */
|
295
|
+
input[type="reset"],
|
296
|
+
input[type="submit"] {
|
297
|
+
-webkit-appearance: button; /* 2 */
|
298
|
+
cursor: pointer; /* 3 */
|
299
|
+
}
|
300
|
+
|
301
|
+
/*
|
302
|
+
* Re-set default cursor for disabled elements.
|
303
|
+
*/
|
304
|
+
|
305
|
+
button[disabled],
|
306
|
+
input[disabled] {
|
307
|
+
cursor: default;
|
308
|
+
}
|
309
|
+
|
310
|
+
/*
|
311
|
+
* 1. Addresses box sizing set to `content-box` in IE 8/9.
|
312
|
+
* 2. Removes excess padding in IE 8/9.
|
313
|
+
*/
|
314
|
+
|
315
|
+
input[type="checkbox"],
|
316
|
+
input[type="radio"] {
|
317
|
+
box-sizing: border-box; /* 1 */
|
318
|
+
padding: 0; /* 2 */
|
319
|
+
}
|
320
|
+
|
321
|
+
/*
|
322
|
+
* 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
|
323
|
+
* 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
|
324
|
+
* (include `-moz` to future-proof).
|
325
|
+
*/
|
326
|
+
|
327
|
+
input[type="search"] {
|
328
|
+
-webkit-appearance: textfield; /* 1 */
|
329
|
+
-moz-box-sizing: content-box;
|
330
|
+
-webkit-box-sizing: content-box; /* 2 */
|
331
|
+
box-sizing: content-box;
|
332
|
+
}
|
333
|
+
|
334
|
+
/*
|
335
|
+
* Removes inner padding and search cancel button in Safari 5 and Chrome
|
336
|
+
* on OS X.
|
337
|
+
*/
|
338
|
+
|
339
|
+
input[type="search"]::-webkit-search-cancel-button,
|
340
|
+
input[type="search"]::-webkit-search-decoration {
|
341
|
+
-webkit-appearance: none;
|
342
|
+
}
|
343
|
+
|
344
|
+
/*
|
345
|
+
* Removes inner padding and border in Firefox 4+.
|
346
|
+
*/
|
347
|
+
|
348
|
+
button::-moz-focus-inner,
|
349
|
+
input::-moz-focus-inner {
|
350
|
+
border: 0;
|
351
|
+
padding: 0;
|
352
|
+
}
|
353
|
+
|
354
|
+
/*
|
355
|
+
* 1. Removes default vertical scrollbar in IE 8/9.
|
356
|
+
* 2. Improves readability and alignment in all browsers.
|
357
|
+
*/
|
358
|
+
|
359
|
+
textarea {
|
360
|
+
overflow: auto; /* 1 */
|
361
|
+
vertical-align: top; /* 2 */
|
362
|
+
}
|
363
|
+
|
364
|
+
/* ==========================================================================
|
365
|
+
Tables
|
366
|
+
========================================================================== */
|
367
|
+
|
368
|
+
/*
|
369
|
+
* Remove most spacing between table cells.
|
370
|
+
*/
|
371
|
+
|
372
|
+
table {
|
373
|
+
border-collapse: collapse;
|
374
|
+
border-spacing: 0;
|
375
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# SMACSS
|
2
|
+
|
3
|
+
### Layout
|
4
|
+
|
5
|
+
> CSS, by its very nature, is used to lay elements out on the page. However, there is a distinction between layouts dictating the major and minor components of a page. The minor components—such as a callout, or login form, or a navigation item—sit within the scope of major components such as a header or footer. I refer to the minor components as Modules [...] The major components are referred to as Layout styles.
|
6
|
+
|
7
|
+
> - SMACSS, Jonathan Snook
|
8
|
+
|
9
|
+
Use this directory for files that contain the CSS to layout major elements on the page. We typically use one file per major component and `@import` them in `style.css.scss`.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# SMACSS
|
2
|
+
|
3
|
+
### Modules
|
4
|
+
|
5
|
+
> A Module is a more discrete component of the page. It is your navigation bars and your carousels and your dialogs and your widgets and so on. This is the meat of the page. Modules sit inside Layout components. Modules can sometimes sit within other Modules, too. Each Module should be designed to exist as a standalone component. In doing so, the page will be more flexible. If done right, Modules can easily be moved to different parts of the layout without breaking.
|
6
|
+
|
7
|
+
> - SMACSS, Jonathan Snook
|
8
|
+
|
9
|
+
In this directory we typically use one file per module.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# SMACSS
|
2
|
+
|
3
|
+
### States
|
4
|
+
|
5
|
+
> A state is something that augments and overrides all other styles. For example, an accordion section may be in a collapsed or expanded state. A message may be in a success or error state. [Modules and states] differ in two key ways:
|
6
|
+
|
7
|
+
> 1. State styles can apply to layout and/or module styles; and
|
8
|
+
> 2. State styles indicate a JavaScript dependency.
|
9
|
+
|
10
|
+
> - SMACSS, Jonathan Snook
|
11
|
+
|
12
|
+
State styles typically refer to styles that only exist on an element for a short period time, for example: styles for invalid form fields would go in `validations.scss`.
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# SMACSS
|
2
|
+
class Middleman::Templates::Smacss < Middleman::Templates::Base
|
3
|
+
|
4
|
+
class_option "css_dir",
|
5
|
+
:default => "stylesheets",
|
6
|
+
:desc => 'The path to the css files'
|
7
|
+
class_option "js_dir",
|
8
|
+
:default => "javascripts",
|
9
|
+
:desc => 'The path to the javascript files'
|
10
|
+
class_option "images_dir",
|
11
|
+
:default => "images",
|
12
|
+
:desc => 'The path to the image files'
|
13
|
+
|
14
|
+
# Template files are relative to this file
|
15
|
+
# @return [String]
|
16
|
+
def self.source_root
|
17
|
+
File.dirname(__FILE__)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Output the files
|
21
|
+
# @return [void]
|
22
|
+
def build_scaffold!
|
23
|
+
template "shared/config.tt", File.join(location, "config.rb")
|
24
|
+
directory "smacss/source", File.join(location, "source")
|
25
|
+
empty_directory File.join(location, "source")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# Register the template
|
30
|
+
Middleman::Templates.register(:smacss, Middleman::Templates::Smacss)
|