From 3040ffa1331aa48c76ae5ca7f4b2e0a0f1b7af15 Mon Sep 17 00:00:00 2001 From: Thomas Reynolds Date: Mon, 18 Feb 2019 10:29:01 -0800 Subject: [PATCH] Support NO_COLOR --- CHANGELOG.md | 298 ++++++++++++++++++------------------ middleman-cli/bin/middleman | 3 + 2 files changed, 152 insertions(+), 149 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e9fa96d..9e08e440 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,65 +1,66 @@ -master -=== +# master -* Add `--bail` to fail a build upon the first error and show the error messages. (#2246) -* Update activesupport to 5.x and padrino to 0.14.x -* Only SassC from now on. -* Add `--dry-run` to run a build, but skip outputting to disk. -* Incremental builds: `--track-dependencies` and `--only-changed` flags (#2220) -* Remove Rack support in favor of `resource.filters << proc { |oldbody| newbody }` -* `manipulate_resource_list_container!` as a faster, less functional approach. +- Support NO_COLOR: https://no-color.org +- Add `--bail` to fail a build upon the first error and show the error messages. (#2246) +- Update activesupport to 5.x and padrino to 0.14.x +- Only SassC from now on. +- Add `--dry-run` to run a build, but skip outputting to disk. +- Incremental builds: `--track-dependencies` and `--only-changed` flags (#2220) +- Remove Rack support in favor of `resource.filters << proc { |oldbody| newbody }` +- `manipulate_resource_list_container!` as a faster, less functional approach. # 4.3.0.rc.4 -* i18n was accidentally duplicating requests for extension-based template (file.es.html) -* Make sass cache configurable with either `SASS_CACHE_LOCATION` env variable or `sass_cache_location` Middleman config variable. (#2213) +- i18n was accidentally duplicating requests for extension-based template (file.es.html) +- Make sass cache configurable with either `SASS_CACHE_LOCATION` env variable or `sass_cache_location` Middleman config variable. (#2213) # 4.3.0.rc.3 -* Fix Internal Server Error from `__middleman` meta page in dev. (#2187) -* Reduce mutex hits in parallel build (#2107) -* Docker-ized CLI +- Fix Internal Server Error from `__middleman` meta page in dev. (#2187) +- Reduce mutex hits in parallel build (#2107) +- Docker-ized CLI # 4.3.0.rc.2 -* Add Errno::ENETUNREACH to exception list in BasicNetworkResolver (#2195) -* Update Rubocop and apply new lint rules -* Do not create unnecessary array in IgnoreDescriptor (#2183) -* Fix reload of watched sources with destination_dir (#2190) -* Fix localization and recursion issues of Traversal::parent. (#2188) -* Use EnhancedHash for partial locals (#2169) +- Add Errno::ENETUNREACH to exception list in BasicNetworkResolver (#2195) +- Update Rubocop and apply new lint rules +- Do not create unnecessary array in IgnoreDescriptor (#2183) +- Fix reload of watched sources with destination_dir (#2190) +- Fix localization and recursion issues of Traversal::parent. (#2188) +- Use EnhancedHash for partial locals (#2169) # 4.3.0.rc.1 -* Test against Ruby 2.5 (#2166) -* Update Rubocop and Yard (#2161) -* Discover template in local directory if applicable (#2157) -* Better error message when init fails to clone git repo (#2159) -* Allow bundle path to be specified in init command (#2154) -* Add ExtensionManager#active? to check if extension is active (#2156) -* Resolve Haml 5 warnings (#2149) -* Clear lazy map after resolving Tilt templates (#2132) -* Fix ignore of I18n files (#2143) -* Fix redirect destination lookup (#2140) -* Add LD-JSON to MinifyJavaScript content types allowed to be compressed (#2138) -* chmod before closing file to fix compatibility with JRuby (#2133) -* Keeps full file path for chained templates (#2117) -* Use i18n fallbacks when looking up localized paths (#2116) -* Compat with latest rails/activesupport < 5.2 (#2095) -* Update "Port in use"-message for PreviewServer (#2089) -* I18n: Keep fragment and query in url_for (#2062) -* Add support for locale suffixes to link_to (#2065) -* Allow absolute :data_dir paths. Addresses #2042 +- Test against Ruby 2.5 (#2166) +- Update Rubocop and Yard (#2161) +- Discover template in local directory if applicable (#2157) +- Better error message when init fails to clone git repo (#2159) +- Allow bundle path to be specified in init command (#2154) +- Add ExtensionManager#active? to check if extension is active (#2156) +- Resolve Haml 5 warnings (#2149) +- Clear lazy map after resolving Tilt templates (#2132) +- Fix ignore of I18n files (#2143) +- Fix redirect destination lookup (#2140) +- Add LD-JSON to MinifyJavaScript content types allowed to be compressed (#2138) +- chmod before closing file to fix compatibility with JRuby (#2133) +- Keeps full file path for chained templates (#2117) +- Use i18n fallbacks when looking up localized paths (#2116) +- Compat with latest rails/activesupport < 5.2 (#2095) +- Update "Port in use"-message for PreviewServer (#2089) +- I18n: Keep fragment and query in url_for (#2062) +- Add support for locale suffixes to link_to (#2065) +- Allow absolute :data_dir paths. Addresses #2042 + # 4.2.2 -* Fix regression (all the way back to v3) for Integer/Date keys in YAML. #2238 -* Fix API to allow rack server according to docs (middleman/middlemanapp.com#794) -* Require i18n ~> 0.8.0 to handle 0.7.0 security issue. -* Allow Bundler 2 +- Fix regression (all the way back to v3) for Integer/Date keys in YAML. #2238 +- Fix API to allow rack server according to docs (middleman/middlemanapp.com#794) +- Require i18n ~> 0.8.0 to handle 0.7.0 security issue. +- Allow Bundler 2 # 4.2.1 -* Fix some issues with Ruby 2.4.0 +- Fix some issues with Ruby 2.4.0 # 4.2.0 @@ -71,159 +72,158 @@ Fix #2019. Always logging boolean on starting up. # 4.1.13 -* Change how config options are passed to Thor. Removes new Thor warnings from #2017 +- Change how config options are passed to Thor. Removes new Thor warnings from #2017 # 4.1.12 -* Fix broken `ignore { |p| true }` form. +- Fix broken `ignore { |p| true }` form. # 4.1.11 -* Upgrade to Rack 2. +- Upgrade to Rack 2. # 4.1.10 -* Fix unicode issues in URL deeplinks. -* Add prefix option to asset_hash (#1949) +- Fix unicode issues in URL deeplinks. +- Add prefix option to asset_hash (#1949) # 4.1.9 -* Fix `--watcher-*` CLI flags. -* Allow spaces in paths to work with `link_to`. Fixes #1914 -* Add support for dotenv -* Fix asset_url with asset_hash (#1919) -* Allow partial lookups without a current_resource (#1912) +- Fix `--watcher-*` CLI flags. +- Allow spaces in paths to work with `link_to`. Fixes #1914 +- Add support for dotenv +- Fix asset_url with asset_hash (#1919) +- Allow partial lookups without a current_resource (#1912) # 4.1.8 -* Expose `development?` and `production?` helpers to template context. -* require the `try` core extension (#1911) -* Fix contract for Sitemap::Store.register_resource_list_manipulator (#1907) -* Loosen contract on Resource#source_file to Maybe[String] (#1906) -* Let collection loops access ConfigContext for helpers. #1879 -* Use https:// to clone templates (#1901) -* Allow numbers to be unique page_ids (#1886) -* Prevent infinite loop when encountering files where base filename is a possible templating engine +- Expose `development?` and `production?` helpers to template context. +- require the `try` core extension (#1911) +- Fix contract for Sitemap::Store.register_resource_list_manipulator (#1907) +- Loosen contract on Resource#source_file to Maybe[String](#1906) +- Let collection loops access ConfigContext for helpers. #1879 +- Use https:// to clone templates (#1901) +- Allow numbers to be unique page_ids (#1886) +- Prevent infinite loop when encountering files where base filename is a possible templating engine # 4.1.7 -* Upgrade fastimage to 2.0 -* Fix shutdown of external_pipeline commands when config.rb is changed. #1877 -* Allow calls to `app.` to work as collections after initial config parse. #1876 - +- Upgrade fastimage to 2.0 +- Fix shutdown of external_pipeline commands when config.rb is changed. #1877 +- Allow calls to `app.` to work as collections after initial config parse. #1876 # 4.1.5-4.1.6 -* Fix file recursion when looking for possible asset dependencies. Major preview server performance improvement. +- Fix file recursion when looking for possible asset dependencies. Major preview server performance improvement. # 4.1.4 -* Unify default extensions for all URL processing extensions. #1855 -* Fix URL regex for `content: ` context of CSS. #1853 -* Make sure CLI config over-rides `config.rb` order. -* Fix relative assets in some contexts. #1842 +- Unify default extensions for all URL processing extensions. #1855 +- Fix URL regex for `content:` context of CSS. #1853 +- Make sure CLI config over-rides `config.rb` order. +- Fix relative assets in some contexts. #1842 # 4.1.3 -* Expose all top-level config options to CLI (flags now match config. latency -> watcher_latency, etc). -* Fix directory indexes with `.htm` and `.xhtml` files. #1821 +- Expose all top-level config options to CLI (flags now match config. latency -> watcher_latency, etc). +- Fix directory indexes with `.htm` and `.xhtml` files. #1821 # 4.1.2 -* Add `page_id` concept. Using the `id` key in frontmatter, proxy or page will set an ID on a resource which can be referenced by `url_for` and `link_to`. -* Allow looking for `Gemfile` when setting up a project to fail gracefully. -* Send correct exit code when external_pipeline fails during build. -* Fix error when customizing `layouts_dir`. #1028 -* Fix collections (commands in loops) not being processed by `page` command. #1226 -* Correctly asset_hash sourcemap references. +- Add `page_id` concept. Using the `id` key in frontmatter, proxy or page will set an ID on a resource which can be referenced by `url_for` and `link_to`. +- Allow looking for `Gemfile` when setting up a project to fail gracefully. +- Send correct exit code when external_pipeline fails during build. +- Fix error when customizing `layouts_dir`. #1028 +- Fix collections (commands in loops) not being processed by `page` command. #1226 +- Correctly asset_hash sourcemap references. # 4.1.1 -* Fix bad code that made `/__middleman/` break. +- Fix bad code that made `/__middleman/` break. # 4.1.0 -* Add rewrite_ignore option to asset_hash, asset_host, cache_buster & relative_assets. This proc let's you opt-out of the extension behavior on a per-path basis. -* gzip extension now compresses svgs by default -* Fix the `encoding` option. -* Fix relative paths on `image_tag` helper. -* Correctly exit with error code on failed `init` -* Fixed `asset_hash` when path has query string or #hashes -* Fix new extension template -* Don't parse frontmatter on ignored files. -* Fix displaying frontmatter on `/__middleman/sitemap` -* Add `skip_build_clean` config which when set to a block, will avoid removing non-generated paths from build, like .git #1716 -* Minor performance improvements -* DRY-up config.rb-specific commands like `ignore` or `path`. -* Fix automatic images with absolute (or images dir missing) paths in markdown. Fixes #1755 -* Fix asset_host in combination with Google Analytics snippet. #1751 -* Show an error message when git CLI is not available. #1765 -* Correctly show file names of GZIP'ed assets. #1364 -* Build file output is now parallel-ized! Use `middleman build --no-parallel` to disable. -* Make template file extensions that get layouts by default configurable via `config[:extensions_with_layout]` -* Remove `=` from inline url matcher. This means paths in HTML attributes MUST be quoted. Fixes #1780 +- Add rewrite_ignore option to asset_hash, asset_host, cache_buster & relative_assets. This proc let's you opt-out of the extension behavior on a per-path basis. +- gzip extension now compresses svgs by default +- Fix the `encoding` option. +- Fix relative paths on `image_tag` helper. +- Correctly exit with error code on failed `init` +- Fixed `asset_hash` when path has query string or #hashes +- Fix new extension template +- Don't parse frontmatter on ignored files. +- Fix displaying frontmatter on `/__middleman/sitemap` +- Add `skip_build_clean` config which when set to a block, will avoid removing non-generated paths from build, like .git #1716 +- Minor performance improvements +- DRY-up config.rb-specific commands like `ignore` or `path`. +- Fix automatic images with absolute (or images dir missing) paths in markdown. Fixes #1755 +- Fix asset_host in combination with Google Analytics snippet. #1751 +- Show an error message when git CLI is not available. #1765 +- Correctly show file names of GZIP'ed assets. #1364 +- Build file output is now parallel-ized! Use `middleman build --no-parallel` to disable. +- Make template file extensions that get layouts by default configurable via `config[:extensions_with_layout]` +- Remove `=` from inline url matcher. This means paths in HTML attributes MUST be quoted. Fixes #1780 # 4.0.0 -* Add `:locales` and `:data` source types to the list of files which trigger a live-reload. -* Rename i18n `lang` and `langs` to `locale` and `locales`. -* Avoid matching URLs across new lines. #1689 -* Load Middleman Directory when doing `init` over SSL -* Fix `external_pipeline` first runs running out of sequence. +- Add `:locales` and `:data` source types to the list of files which trigger a live-reload. +- Rename i18n `lang` and `langs` to `locale` and `locales`. +- Avoid matching URLs across new lines. #1689 +- Load Middleman Directory when doing `init` over SSL +- Fix `external_pipeline` first runs running out of sequence. # 4.0.0.rc.2 -* Rather than applying layouts to all files which are not .txt, .css, .js, .json: the new behavior is to only default layouts to active for .html -* Switch from Ruby Sass to SassC. -* `relative_assets` extension overrides local `relative: false` option to stylesheet/javascript tag helpers. -* Add `before_server`-hook to the preview server which is run before the Webrick server is started -* Add `-d` to `middleman server` to make it run as daemon -* Trigger "Possible File Change" events on files which share an output or template type with a changed file. Allows LiveReload to update on partial changes. -* Added `import_file SOURCE, TARGET` and `import_path SOURCE_FOLDER` to copy resources from outside the project in. Does NOT do file change watching. Perfect for `bower_components`. +- Rather than applying layouts to all files which are not .txt, .css, .js, .json: the new behavior is to only default layouts to active for .html +- Switch from Ruby Sass to SassC. +- `relative_assets` extension overrides local `relative: false` option to stylesheet/javascript tag helpers. +- Add `before_server`-hook to the preview server which is run before the Webrick server is started +- Add `-d` to `middleman server` to make it run as daemon +- Trigger "Possible File Change" events on files which share an output or template type with a changed file. Allows LiveReload to update on partial changes. +- Added `import_file SOURCE, TARGET` and `import_path SOURCE_FOLDER` to copy resources from outside the project in. Does NOT do file change watching. Perfect for `bower_components`. # 4.0.0.rc.1 -* Removed ability to use JSON as frontmatter. Still allowed in data/ folder. -* Added YAML data postscript. Like frontmatter, but reversed. Attach content after the key/value data as a `:postscript` key to the data structure (if Hash). +- Removed ability to use JSON as frontmatter. Still allowed in data/ folder. +- Added YAML data postscript. Like frontmatter, but reversed. Attach content after the key/value data as a `:postscript` key to the data structure (if Hash). # 4.0.0.beta.2 -* Fixed regression causing exceptions to be silently thrown away outside of `--verbose` mode in the dev server. -* Pull in `--ssl` option from stable. -* Replace `hooks` gem with custom callback solution. +- Fixed regression causing exceptions to be silently thrown away outside of `--verbose` mode in the dev server. +- Pull in `--ssl` option from stable. +- Replace `hooks` gem with custom callback solution. # 4.0.0.beta.1 -* Add `resources` class method to extensions to allow simple string-based resource generation. -* rename `app.add_to_instance` to `Extension.expose_to_application` for adding extension-local methods to the shared app instance. -* rename `app.add_to_config_context` to `Extension.expose_to_config` for adding extension-local methods to the sandboxed scope of `config.rb` -* Add `Extension.expose_to_template`, which auto binds copies of extension-local methods into a Template context. -* Remove side-loading of CLI tasks from `tasks/` -* Add the option of naming `config.rb` as `middleman.rb`. -* Builder extracted from Thor. `after_build` hook now passes an instance of a Builder instead of the Thor CLI. -* New FileWatcher API. -* Remove the `partials_dir` setting. Partials should live next to content, or be addressed with absolute paths. -* Partials must be named with a leading underscore. `_my_snippet.html.erb`, not `my_snippet.html.erb`. -* Removed the `proxy` and `ignore` options for the `page` command in `config.rb`. Use the `proxy` and `ignore` commands instead of passing these options to `page`. -* The `page` command in `config.rb` can now be used to add data to the page via the `data` argument. It is accessed the same way as frontmatter data, via `current_resource.data`. -* Add support for `environments` with the `-e` CLI flag. Loads additional config from `environments/envname.rb`. Removed `development?` helper in favor of `environment?(:development)`. Added `server?` helper to differentiate between build and server mode. -* Removed `with_layout`. Use loops of `page` instead. -* Removed Queryable Sitemap API -* Removed `css_compressor` setting, use `activate :minify_css, :compressor =>` instead. -* Removed `js_compressor` setting, use `activate :minify_javascript, :compressor =>` instead. -* Removed ability to server folders of content statically (non-Middleman projects). -* Prevent local templates being loaded when $HOME is not set -* Removed "Implied Extension feature" -* Remove 'upgrade' and 'install' CLI commands. -* Gemfile may be in a parent directory of your Middleman project root (where 'config.rb' is). -* All dependencies for your Middleman project must be expressed in `Gemfile` - Bundler is no longer optional. -* Asciidoc information now available with the `asciidoc` local, which is a normal hash. -* Remove `page` template local. Use `current_resource` instead. -* Dropped support for providing a block to `page` & `proxy`. -* Dropped support for instance variables inside templates. -* Moved all rendering into `TemplateRenderer` and `FileRenderer` -* Placed all template evaluation inside the `TemplateContext` class -* Remove deprecated `request` instance -* Remove old module-style extension support -* Placed all `config.rb` evaluation inside the `ConfigContext` class -* The preview server can now serve over HTTPS using the `--https` flag. It will use an automatic self-signed cert which can be overridden using `--ssl_certificate` and `--ssl_private_key`. These settings can also be set in `config.rb` +- Add `resources` class method to extensions to allow simple string-based resource generation. +- rename `app.add_to_instance` to `Extension.expose_to_application` for adding extension-local methods to the shared app instance. +- rename `app.add_to_config_context` to `Extension.expose_to_config` for adding extension-local methods to the sandboxed scope of `config.rb` +- Add `Extension.expose_to_template`, which auto binds copies of extension-local methods into a Template context. +- Remove side-loading of CLI tasks from `tasks/` +- Add the option of naming `config.rb` as `middleman.rb`. +- Builder extracted from Thor. `after_build` hook now passes an instance of a Builder instead of the Thor CLI. +- New FileWatcher API. +- Remove the `partials_dir` setting. Partials should live next to content, or be addressed with absolute paths. +- Partials must be named with a leading underscore. `_my_snippet.html.erb`, not `my_snippet.html.erb`. +- Removed the `proxy` and `ignore` options for the `page` command in `config.rb`. Use the `proxy` and `ignore` commands instead of passing these options to `page`. +- The `page` command in `config.rb` can now be used to add data to the page via the `data` argument. It is accessed the same way as frontmatter data, via `current_resource.data`. +- Add support for `environments` with the `-e` CLI flag. Loads additional config from `environments/envname.rb`. Removed `development?` helper in favor of `environment?(:development)`. Added `server?` helper to differentiate between build and server mode. +- Removed `with_layout`. Use loops of `page` instead. +- Removed Queryable Sitemap API +- Removed `css_compressor` setting, use `activate :minify_css, :compressor =>` instead. +- Removed `js_compressor` setting, use `activate :minify_javascript, :compressor =>` instead. +- Removed ability to server folders of content statically (non-Middleman projects). +- Prevent local templates being loaded when \$HOME is not set +- Removed "Implied Extension feature" +- Remove 'upgrade' and 'install' CLI commands. +- Gemfile may be in a parent directory of your Middleman project root (where 'config.rb' is). +- All dependencies for your Middleman project must be expressed in `Gemfile` - Bundler is no longer optional. +- Asciidoc information now available with the `asciidoc` local, which is a normal hash. +- Remove `page` template local. Use `current_resource` instead. +- Dropped support for providing a block to `page` & `proxy`. +- Dropped support for instance variables inside templates. +- Moved all rendering into `TemplateRenderer` and `FileRenderer` +- Placed all template evaluation inside the `TemplateContext` class +- Remove deprecated `request` instance +- Remove old module-style extension support +- Placed all `config.rb` evaluation inside the `ConfigContext` class +- The preview server can now serve over HTTPS using the `--https` flag. It will use an automatic self-signed cert which can be overridden using `--ssl_certificate` and `--ssl_private_key`. These settings can also be set in `config.rb` diff --git a/middleman-cli/bin/middleman b/middleman-cli/bin/middleman index 27dd28b2..b2bd47fa 100755 --- a/middleman-cli/bin/middleman +++ b/middleman-cli/bin/middleman @@ -60,5 +60,8 @@ require 'middleman-cli/build' require 'middleman-cli/console' require 'middleman-cli/config' +# Support NO_COLOR: https://no-color.org +ENV['THOR_SHELL'] = 'Basic' if ENV['NO_COLOR'] + # Start the CLI Middleman::Cli::Base.start(ARGV)