<commit_before># Changelog

## Unplanned

- [ ] Throw an error if we find legacy Jekyll residu such as `./vendors` or `.bundle`
- [ ] Hooks are ran with every build, but not when doing HMR. We might be able to hook into the asset manifest callback to work around this for assets, while lib/cli.js calls it for content
- [ ] Wait on https://github.com/imagemin/imagemin-cli/pull/11 and https://github.com/imagemin/imagemin/issues/226 and add image building from `assets/images` -> `assets/build/images`
- [ ] Go over all `process.env.*` and make sure they are only at the head of `config.js`
- [ ] Deprecate Scrollex in favor of execa passing through to stdout/stderr

## master

Released: TBA.
[Diff](https://github.com/kvz/lanyon/compare/v0.2.17...master).

- [ ] Add a 'real' command line parser for `lib/cli.js` like minimist
- [ ] Fix bug where failed deploy is not fatal: https://travis-ci.org/kvz/invig/builds/202931498#L627
- [ ] Make it so that you can only build e.g. a homepage via `LANYON_EXCLUDE=* LANYON_INCLUDE=home.html,_layouts/default.html`. However, we first need this Jekyll issue resolved: https://github.com/jekyll/jekyll/issues/4791#issuecomment-289021488
- [ ] Bundle node + modules in docker container also (and see if we can use them, using `open` for browsersync)
- [ ] Debug browsersync's endless refresh
- [ ] Throw warning when not jekyll excluding: `- node_modules - .git`, like when you have `exclude: [vendor]` in your jekyll config
- [ ] Incorporate hacks in tus.io .lanyonrc, it should be able to run with an empty rc, except for hook

## v0.2.17

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.16...v0.2.17).

- [x] Combine jQuery & Bootstrap window import rules
- [x] Combine file & url loaders where safely possible

## v0.2.16

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.15...v0.2.16).

- [x] Less verbose exit
- [x] Cleanup whitespace and internal webpack config structure

## v0.2.15

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.14...v0.2.15).

- [x] Allow user to transform the assets that are injected into `_includes/_generated_assets/` via the override functions `runtime.headAssetTemplate` and `runtime.bodyAssetTemplate` that you can set in your `.lanyonrc` like so:
    ```js
    module.exports.overrideRuntime = ({ runtime, toolkit }) => {
      runtime.headAssetTemplate = ({ htmlWebpackPlugin }) => { 
        return `${htmlWebpackPlugin.tags.headTags}`.replace(/\/assets\//g, `https://transloadit.edgly.net/assets/`)
      }
      runtime.bodyAssetTemplate = ({ htmlWebpackPlugin }) => { 
        return `${htmlWebpackPlugin.tags.bodyTags}`.replace(/\/assets\//g, `https://transloadit.edgly.net/assets/`)
      }
    }
    ```

## v0.2.14

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.12...v0.2.14).

- [x] Fix bug: no longer reference `jekyll.lanyon_assets.yml`

## v0.2.13

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.12...v0.2.13).

- [x] Fix bug: No longer use cache-loader before MiniCssExtractPlugin, so that CSS assets exist in entrypoints, even when nothing changed
- [x] Switch from `AssetsPlugin` to `StatsWriterPlugin` /thx @goto-bus-stop
- [x] **BREAKING** Switch to `splitChunks`. This means entrypoints have multiple assets now
- [x] **BREAKING** Switch from `jekyll.lanyon_assets.yml` to `HtmlWebpackPlugin` which creates html snippets to easier load multiple assets per entrypoint. These files are written to `_includes/_generated_assets/`. To include CSS: `{%include _generated_assets/app-{{jekyll.environment}}-head.html%}`, for JS: `{%include _generated_assets/app-{{jekyll.environment}}-body.html%}`.

## v0.2.12

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.11...v0.2.12).

- [x] Add BundleAnalyzerPlugin behind `LANYON_ANALYZE=1` flag. To use try e.g. `LANYON_ANALYZE=1 LANYON_ENV=production npx lanyon build:assets`

## v0.2.11

Released: 2020-06-08<commit_msg>Update CHANGELOG.md<commit_after># Changelog

## Unplanned

- [ ] Throw an error if we find legacy Jekyll residu such as `./vendors` or `.bundle`
- [ ] Hooks are ran with every build, but not when doing HMR. We might be able to hook into the asset manifest callback to work around this for assets, while lib/cli.js calls it for content
- [ ] Wait on https://github.com/imagemin/imagemin-cli/pull/11 and https://github.com/imagemin/imagemin/issues/226 and add image building from `assets/images` -> `assets/build/images`
- [ ] Go over all `process.env.*` and make sure they are only at the head of `config.js`
- [ ] Deprecate Scrollex in favor of execa passing through to stdout/stderr

## master

Released: TBA.
[Diff](https://github.com/kvz/lanyon/compare/v0.2.17...master).

- [ ] Add a 'real' command line parser for `lib/cli.js` like minimist
- [ ] Fix bug where failed deploy is not fatal: https://travis-ci.org/kvz/invig/builds/202931498#L627
- [ ] Make it so that you can only build e.g. a homepage via `LANYON_EXCLUDE=* LANYON_INCLUDE=home.html,_layouts/default.html`. However, we first need this Jekyll issue resolved: https://github.com/jekyll/jekyll/issues/4791#issuecomment-289021488
- [ ] Bundle node + modules in docker container also (and see if we can use them, using `open` for browsersync)
- [ ] Debug browsersync's endless refresh
- [ ] Throw warning when not jekyll excluding: `- node_modules - .git`, like when you have `exclude: [vendor]` in your jekyll config
- [ ] Incorporate hacks in tus.io .lanyonrc, it should be able to run with an empty rc, except for hook

## v0.2.17

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.16...v0.2.17).

- [x] Combine jQuery & Bootstrap window import rules
- [x] Combine file & url loaders where safely possible

## v0.2.16

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.15...v0.2.16).

- [x] Less verbose exit
- [x] Cleanup whitespace and internal webpack config structure

## v0.2.15

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.14...v0.2.15).

- [x] Allow user to transform the assets that are injected into `_includes/_generated_assets/` via the override functions `runtime.headAssetTemplate` and `runtime.bodyAssetTemplate` that you can set in your `.lanyonrc` like so:
    ```js
    module.exports.overrideRuntime = ({ runtime, toolkit }) => {
      runtime.headAssetTemplate = ({ htmlWebpackPlugin }) => { 
        return `${htmlWebpackPlugin.tags.headTags}`.replace(/"\/assets\//g, `"https://transloadit.edgly.net/assets/`)
      }
      runtime.bodyAssetTemplate = ({ htmlWebpackPlugin }) => { 
        return `${htmlWebpackPlugin.tags.bodyTags}`.replace(/"\/assets\//g, `"https://transloadit.edgly.net/assets/`)
      }
    }
    ```

## v0.2.14

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.12...v0.2.14).

- [x] Fix bug: no longer reference `jekyll.lanyon_assets.yml`

## v0.2.13

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.12...v0.2.13).

- [x] Fix bug: No longer use cache-loader before MiniCssExtractPlugin, so that CSS assets exist in entrypoints, even when nothing changed
- [x] Switch from `AssetsPlugin` to `StatsWriterPlugin` /thx @goto-bus-stop
- [x] **BREAKING** Switch to `splitChunks`. This means entrypoints have multiple assets now
- [x] **BREAKING** Switch from `jekyll.lanyon_assets.yml` to `HtmlWebpackPlugin` which creates html snippets to easier load multiple assets per entrypoint. These files are written to `_includes/_generated_assets/`. To include CSS: `{%include _generated_assets/app-{{jekyll.environment}}-head.html%}`, for JS: `{%include _generated_assets/app-{{jekyll.environment}}-body.html%}`.

## v0.2.12

Released: 2020-06-08
[Diff](https://github.com/kvz/lanyon/compare/v0.2.11...v0.2.12).

- [x] Add BundleAnalyzerPlugin behind `LANYON_ANALYZE=1` flag. To use try e.g. `LANYON_ANALYZE=1 LANYON_ENV=production npx lanyon build:assets`

## v0.2.11

Released: 2020-06-08
{'fraction_non_alphanumeric': 0.14269634817408705, 'fraction_numerical': 0.04202101050525263, 'mean_word_length': 3.837870538415003, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, 'https://': 26, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1912489', 'n_tokens_mistral': 2959, 'n_tokens_neox': 2712, 'n_words': 766}