greenwood

Greenwood is your workbench for the web, embracing web standards from the ground up to empower your stack from front to back.

MIT License

Downloads
4.6K
Stars
97
Committers
8

Bot releases are visible (Hide)

greenwood - v0.12.3

Published by thescientist13 over 3 years ago

Overview

This release aims to fix a few newly reported / discovered bugs including ensuring cross platform support for Windows.

Changelog

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.12.3

  1. CLI is not handling export * ... (wildcard) export formats
  2. fetching any JSON file that is not graph.json always returns an ES module
  3. TypeError: Cannot read property 'replace' of undefined (path separator checks breaking on Windows) - thanks for reporting @anlexN !

Breaking Changes

Not a breaking change, but going forward, using import syntax for anything but ESM (e.g. CSS, JSON) will require an explicit opt-in by users, as is being discussed in https://github.com/ProjectEvergreen/greenwood/discussions/606

Known Issues

None

Diff

$ git diff v0.12.2 v0.12.3 --stat
 .github/workflows/ci-win.yml                                 | 33 ++++++++++++
 .github/workflows/ci.yml                                     |  8 ++-
 .github/workflows/master.yml                                 |  8 ++-
 .github/workflows/release.yml                                |  6 +--
 greenwood.config.js                                          | 10 ++--
 lerna.json                                                   |  2 +-
 package.json                                                 |  3 +-
 packages/cli/package.json                                    |  4 +-
 packages/cli/src/config/rollup.config.js                     | 19 ++++++-
 packages/cli/src/lifecycles/graph.js                         | 22 ++++----
 packages/cli/src/lifecycles/serve.js                         |  5 ++
 packages/cli/src/plugins/resource/plugin-node-modules.js     | 27 +++++++---
 packages/cli/src/plugins/resource/plugin-optimization-mpa.js |  5 +-
 packages/cli/src/plugins/resource/plugin-standard-html.js    | 36 ++++++-------
 packages/cli/src/plugins/resource/plugin-standard-json.js    | 31 +++++------
 .../build.default.workspace-getting-started.spec.js          |  4 +-
 .../build.default.workspace-javascript-css.spec.js           | 18 ++++++-
 .../src/assets/data.json                                     |  4 ++
 .../src/pages/index.html                                     | 11 ++++
 .../src/scripts/main.js                                      |  5 ++
 .../build.default.workspace-nested.spec.js                   |  8 ++-
 packages/plugin-babel/package.json                           |  4 +-
 packages/plugin-google-analytics/package.json                |  4 +-
 packages/plugin-graphql/package.json                         |  4 +-
 .../query-custom-frontmatter.spec.js                         |  4 +-
 .../plugin-graphql/test/cases/query-menu/query-menu.spec.js  |  4 +-
 packages/plugin-import-commonjs/package.json                 |  4 +-
 packages/plugin-import-css/package.json                      |  4 +-
 packages/plugin-polyfills/package.json                       |  4 +-
 packages/plugin-postcss/package.json                         |  4 +-
 www/components/footer/footer.js                              |  2 +-
 www/package.json                                             |  2 +-
 yarn.lock                                                    | 80 +++++++++++++++++++---------
 33 files changed, 265 insertions(+), 124 deletions(-)
greenwood - v0.12.2

Published by thescientist13 over 3 years ago

Overview

This release aims to fix a bug that wasn't quite fixed as it was supposed to in the previous release.

Changelog

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.12.2

  1. dev server proxy is not forwarding query params

Breaking Changes

None

Known Issues

  1. Greenwood not working on Windows
  2. fetching any JSON file that is not graph.json always returns as an ES module

Diff

$ git diff v0.12.1 v0.12.2 --stat
 lerna.json                                                 | 2 +-
 packages/cli/package.json                                  | 2 +-
 packages/cli/src/plugins/resource/plugin-user-workspace.js | 3 ++-
 packages/plugin-babel/package.json                         | 4 ++--
 packages/plugin-google-analytics/package.json              | 4 ++--
 packages/plugin-graphql/package.json                       | 4 ++--
 packages/plugin-import-commonjs/package.json               | 4 ++--
 packages/plugin-import-css/package.json                    | 4 ++--
 packages/plugin-polyfills/package.json                     | 4 ++--
 packages/plugin-postcss/package.json                       | 4 ++--
 www/package.json                                           | 2 +-
 11 files changed, 19 insertions(+), 18 deletions(-)
greenwood - v0.12.1

Published by thescientist13 over 3 years ago

Overview

This release aims to fix some bugs observed during the last release.

Changelog

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.12.1

  1. dev server proxy is not forwarding query params
  2. top level page or page template <meta> tags not showing up in output HTML

Breaking Changes

None

Known Issues

  1. Greenwood not working on Windows
  2. dev server proxy is not forwarding query params
  3. fetching any JSON file that is not graph.json always returns asan ES module

Diff

$ git diff v0.12.0 v0.12.1 --stat
 README.md                                                                     |  3 ++-
 lerna.json                                                                    |  2 +-
 packages/cli/package.json                                                     |  2 +-
 packages/cli/src/lifecycles/serve.js                                          |  2 +-
 packages/cli/src/plugins/resource/plugin-standard-html.js                     | 15 ++++++++++-----
 packages/cli/src/plugins/resource/plugin-user-workspace.js                    |  4 +++-
 packages/cli/test/cases/build.config.mode-spa/build.config.mode-spa.spec.js   |  8 ++++++++
 packages/cli/test/cases/build.config.mode-spa/src/index.html                  |  1 +
 .../build.default.workspace-template-page.spec.js                             |  8 ++++++++
 .../test/cases/build.default.workspace-template-page/src/templates/page.html  |  7 +++----
 .../build.default.workspace-top-level-pages.spec.js                           |  8 ++++++++
 .../test/cases/build.default.workspace-top-level-pages/src/pages/index.html   |  1 +
 .../build.default.workspace-user-directory-mapping/src/templates/page.html    |  2 --
 packages/plugin-babel/package.json                                            |  4 ++--
 packages/plugin-google-analytics/package.json                                 |  4 ++--
 packages/plugin-graphql/package.json                                          |  4 ++--
 packages/plugin-import-commonjs/package.json                                  |  4 ++--
 packages/plugin-import-css/package.json                                       |  4 ++--
 packages/plugin-polyfills/package.json                                        |  4 ++--
 packages/plugin-postcss/package.json                                          |  4 ++--
 test/smoke-test.js                                                            | 12 ++++++++----
 www/package.json                                                              |  2 +-
 22 files changed, 70 insertions(+), 35 deletions(-)
greenwood - v0.12.0

Published by thescientist13 over 3 years ago

Overview

This release aimed primarily to extend Greenwood's capabilities to handle Single Page Application (SPA) project types by adding it as a new mode configuration option, added support for being able to reverse proxy requests (like for API calls), and also made prerendering optional as a new (opt-out) configuration option. Additionally, if using plugin-graphql, you can now provide your own custom schema and resolvers.

Changelog

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.12.0

  1. Fix inline <script> marker detection not correctly matching when Rollup bundles the inline source and changes its contents
  2. Added support for reverse proxy configuration for devServer
  3. Added configuration to allow pre-rendering to be optional
  4. Introduced a Single Page Application (SPA) configuration mode
  5. Support ad-hoc / custom GraphQL resolvers and definitions (schemas)
  6. add support for resolving sourcemaps (in development)

Breaking Changes

None

Known Issues

  1. Greenwood not working on Windows
  2. dev server proxy is not forwarding query params
  3. top level page or page template <meta> tags not showing up in output HTML

Diff

% git diff v0.11.1 v0.12.0 --stat
 .eslintrc.js                                                    |   1 +
 lerna.json                                                      |   2 +-
 nyc.config.js                                                   |   2 +-
 package.json                                                    |   1 +
 packages/cli/package.json                                       |   4 +-
 packages/cli/src/commands/build.js                              |  68 ++++----
 packages/cli/src/config/rollup.config.js                        |  23 +--
 packages/cli/src/lifecycles/config.js                           |  25 ++-
 packages/cli/src/lifecycles/graph.js                            |  23 ++-
 packages/cli/src/lifecycles/prerender.js                        | 111 +++++++++++++
 packages/cli/src/lifecycles/serialize.js                        |  83 ----------
 packages/cli/src/lifecycles/serve.js                            |  16 +-
 packages/cli/src/plugins/resource/plugin-dev-proxy.js           |  45 +++++
 packages/cli/src/plugins/resource/plugin-node-modules.js        |   6 +-
 packages/cli/src/plugins/resource/plugin-source-maps.js         |  40 +++++
 packages/cli/src/plugins/resource/plugin-standard-html.js       |  14 +-
 .../build.config.error-mode/build.config.error-mode.spec.js     |   2 +-
 .../build.config.error-prerender.spec.js                        |  46 ++++++
 .../test/cases/build.config.error-prerender/greenwood.config.js |   3 +
 .../cases/build.config.mode-mpa/build.config.mode-mpa.spec.js   |   2 +
 .../cases/build.config.mode-spa/build.config.mode-spa.spec.js   | 244 ++++++++++++++++++++++++++++
 .../cli/test/cases/build.config.mode-spa/greenwood.config.js    |   3 +
 packages/cli/test/cases/build.config.mode-spa/package.json      |   9 +
 .../test/cases/build.config.mode-spa/src/components/footer.js   |  49 ++++++
 packages/cli/test/cases/build.config.mode-spa/src/index.html    |  29 ++++
 packages/cli/test/cases/build.config.mode-spa/src/index.js      |  32 ++++
 .../cli/test/cases/build.config.mode-spa/src/routes/about.js    |   9 +
 .../cli/test/cases/build.config.mode-spa/src/routes/home.js     |   9 +
 .../cases/build.config.prerender/build.config.prerender.spec.js | 117 +++++++++++++
 .../cli/test/cases/build.config.prerender/greenwood.config.js   |   3 +
 .../test/cases/build.config.prerender/src/components/header.js  |  22 +++
 .../cli/test/cases/build.config.prerender/src/pages/index.html  |  13 ++
 .../build.default.import-node-modules.spec.js                   |  16 +-
 .../build.default.import-node-modules/src/pages/index.html      |   4 +-
 packages/plugin-babel/package.json                              |   4 +-
 packages/plugin-google-analytics/package.json                   |   4 +-
 packages/plugin-graphql/README.md                               |  91 ++++++++++-
 packages/plugin-graphql/package.json                            |   4 +-
 packages/plugin-graphql/src/core/server.js                      |   2 +-
 packages/plugin-graphql/src/queries/config.gql                  |   1 +
 packages/plugin-graphql/src/schema/config.js                    |   1 +
 packages/plugin-graphql/src/schema/schema.js                    | 104 +++++++-----
 .../test/cases/query-custom-schema/greenwood.config.js          |   9 +
 .../test/cases/query-custom-schema/query-custom-schema.spec.js  | 133 +++++++++++++++
 .../test/cases/query-custom-schema/src/assets/logo1.png         | Bin 0 -> 1150 bytes
 .../test/cases/query-custom-schema/src/assets/logo2.png         | Bin 0 -> 1150 bytes
 .../test/cases/query-custom-schema/src/assets/logo3.png         | Bin 0 -> 1150 bytes
 .../test/cases/query-custom-schema/src/data/queries/gallery.gql |   9 +
 .../test/cases/query-custom-schema/src/data/schema/gallery.js   |  44 +++++
 .../test/cases/query-custom-schema/src/pages/index.html         |  35 ++++
 packages/plugin-graphql/test/unit/schema/config.spec.js         |   8 +
 packages/plugin-import-commonjs/package.json                    |   4 +-
 packages/plugin-import-css/package.json                         |   8 +-
 packages/plugin-polyfills/package.json                          |   4 +-
 packages/plugin-postcss/package.json                            |   4 +-
 www/package.json                                                |   2 +-
 www/pages/docs/configuration.md                                 |  25 ++-
 www/pages/docs/data.md                                          |   2 +
 www/pages/docs/layouts.md                                       |  21 ++-
 www/pages/index.html                                            |   2 +-
 yarn.lock                                                       |  80 ++++++++-
 61 files changed, 1458 insertions(+), 219 deletions(-)
greenwood - v0.11.1

Published by thescientist13 over 3 years ago

Overview

This release aims to fix a couple recently identified important issues around multiple inline <script> tag optimizations during build time, and errors when using query strings in URLs with the server used for develop and serve commands.

Changelog

hhttps://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.11.1

  1. query string parameters in browser URLs breaks develop / prod servers
  2. multiple inline <script> tags not getting correctly optimized - all tag tags show the same contents

Breaking Changes

None

Known Issues

N / A

Diff

% git diff v0.11.0 v0.11.1 --stat
 greenwood.config.js                                                   | 17 +++++++++++-
 lerna.json                                                            |  2 +-
 packages/cli/package.json                                             |  2 +-
 packages/cli/src/config/rollup.config.js                              | 43 +++++++++++++++++++++++--------
 packages/cli/src/lifecycles/serve.js                                  |  2 +-
 packages/cli/src/plugins/resource/plugin-user-workspace.js            |  9 +++++--
 .../build.default.import-node-modules.spec.js                         |  2 +-
 .../build.default.workspace-javascript-css.spec.js                    | 44 +++++++++++++++++++++++++++-----
 .../cases/build.default.workspace-javascript-css/src/pages/index.html | 27 ++++++++++++++++++--
 packages/plugin-babel/package.json                                    |  4 +--
 packages/plugin-google-analytics/package.json                         |  4 +--
 packages/plugin-graphql/package.json                                  |  4 +--
 packages/plugin-import-commonjs/package.json                          |  4 +--
 packages/plugin-import-css/package.json                               |  4 +--
 packages/plugin-polyfills/package.json                                |  4 +--
 packages/plugin-postcss/package.json                                  |  4 +--
 www/package.json                                                      |  5 ++--
 www/pages/docs/component-model.md                                     |  2 +-
 yarn.lock                                                             |  5 ++++
 19 files changed, 146 insertions(+), 42 deletions(-)
greenwood - v0.11.0

Published by thescientist13 over 3 years ago

Overview

This release aims to close out our milestone towards achieving feature parity with our new "no bundle" philosophy introduced in v0.10.0. It also fixes a bug with duplicate <head> tag output when merging templates.

We also added a Code of Conduct (CoC) to the project.

Changelog

hhttps://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.11.0

  1. restore ability to import <script> and <link> tags from frontmatter, including support for custom elements in markdown
  2. duplicate <head> tag output when merging templates

Breaking Changes

None

Known Issues

  1. multiple inline tags not getting correctly optimized - all tag tags show the same contents
  2. query strings in URLs break servers

Diff

% git diff v0.10.1 v0.11.0 --stat
 .github/CONTRIBUTING.md                                               |   4 +-
 CODE_OF_CONDUCT.md                                                    | 133 +++++++++++++++++
 lerna.json                                                            |   2 +-
 package.json                                                          |   1 +
 packages/cli/package.json                                             |   2 +-
 packages/cli/src/lifecycles/graph.js                                  |   3 +
 packages/cli/src/plugins/resource/plugin-node-modules.js              |   6 +-
 packages/cli/src/plugins/resource/plugin-standard-html.js             |  55 ++++++-
 .../cli/test/cases/build.config.default/build.config.default.spec.js  |  23 +--
 packages/cli/test/cases/build.config.default/greenwood.config.js      |   1 -
 .../cases/build.config.error-mode/build.config.error-mode.spec.js     |  22 +--
 .../build.config.error-optimization.spec.js                           |  20 +--
 .../cases/build.config.error-title/build.config.error-title.spec.js   |  20 +--
 .../build.config.error-workspace-absolute.spec.js                     |  20 +--
 .../build.config.error-workspace/build.config.error-workspace.spec.js |  20 +--
 .../build.config.markdown-custom.spec.js                              |  21 +--
 .../build.config.markdown-custom.settings.spec.js                     |  21 +--
 packages/cli/test/cases/build.config.meta/build.config.meta.spec.js   |  20 ++-
 .../test/cases/build.config.mode-mpa/build.config.mode-mpa.spec.js    |  36 ++---
 .../build.config-optimization-default.spec.js                         |  22 +--
 .../build.config-optimization-inline.spec.js                          |  18 ++-
 .../build.config-optimization-none.spec.js                            |  22 +--
 .../build.config-optimization-static.spec.js                          |  18 ++-
 packages/cli/test/cases/build.config.title/build.config.title.spec.js |  20 ++-
 .../build.config.workspace-custom.spec.js                             |  20 ++-
 .../build.default.import-node-modules.spec.js                         | 237 ++++++++++++++++---------------
 .../test/cases/build.default.markdown/build.default.markdown.spec.js  |  19 ++-
 .../build.default.quick-start-npx.spec.js                             |  22 +--
 .../build.default.workspace-assets.spec.js                            |  22 +--
 .../build.default.workspace-frontmatter-imports.spec.js               | 143 +++++++++++++++++++
 .../src/components/counter/counter.css                                |   3 +
 .../src/components/counter/counter.js                                 |  42 ++++++
 .../src/pages/examples/counter.md                                     |  14 ++
 .../build.default.workspace-frontmatter-imports/src/pages/index.md    |   3 +
 .../build.default.workspace-getting-started.spec.js                   |  22 +--
 .../build.default.workspace-javascript-css-remote.spec.js             |  24 ++--
 .../build.default.workspace-javascript-css.spec.js                    |  24 ++--
 .../build.default.workspace-nested.spec.js                            |  20 ++-
 .../build.default.workspace-template-app.spec.js                      |  20 ++-
 .../build.default.workspace-template-page-and-app.spec.js             |  24 ++--
 .../build.default.workspace-template-page-bare-merging.spec.js        |  22 +--
 .../build.default.workspace-template-page.spec.js                     |  19 ++-
 .../build.default.workspace-top-level-pages.spec.js                   |  22 +--
 .../build.default.workspace-user-directory-mapping.spec.js            |  22 +--
 packages/cli/test/cases/build.default/build.default.spec.js           |  22 +--
 .../cases/build.plugins.error-name/build.plugins.error-name.spec.js   |  20 +--
 .../build.plugins.error-provider/build.plugins.error-provider.spec.js |  20 +--
 .../cases/build.plugins.error-type/build.plugins.error-type.spec.js   |  20 +--
 .../build.plugins.resource/build.config.plugins-resource.spec.js      |  20 ++-
 packages/cli/test/cases/eject.default/eject.default.spec.js           |  22 +--
 packages/plugin-babel/package.json                                    |   4 +-
 packages/plugin-babel/test/cases/default/default.spec.js              |  18 ++-
 .../test/cases/options.extend-config/options.extend-config.spec.js    |  20 ++-
 packages/plugin-google-analytics/package.json                         |   4 +-
 packages/plugin-google-analytics/test/cases/default/default.spec.js   |  19 ++-
 .../test/cases/error-analytics-id/error-analytics-id.spec.js          |  20 ++-
 .../test/cases/option-anonymous/option-anonymous.spec.js              |  23 +--
 packages/plugin-graphql/package.json                                  |   4 +-
 .../plugin-graphql/test/cases/query-children/query-children.spec.js   | 114 +++++++--------
 packages/plugin-graphql/test/cases/query-config/query-config.spec.js  |  53 +++----
 .../cases/query-custom-frontmatter/query-custom-frontmatter.spec.js   | 114 +++++++--------
 packages/plugin-graphql/test/cases/query-graph/query-graph.spec.js    | 114 +++++++--------
 packages/plugin-graphql/test/cases/query-menu/query-menu.spec.js      | 116 +++++++--------
 packages/plugin-import-commonjs/package.json                          |   4 +-
 packages/plugin-import-commonjs/test/cases/default/default.spec.js    |  39 +++--
 packages/plugin-import-css/package.json                               |   4 +-
 packages/plugin-import-css/test/cases/default/default.spec.js         |  19 ++-
 packages/plugin-polyfills/package.json                                |   4 +-
 packages/plugin-polyfills/test/cases/default/default.spec.js          |  38 ++---
 packages/plugin-postcss/package.json                                  |   4 +-
 packages/plugin-postcss/test/cases/default/default.spec.js            |  18 ++-
 .../test/cases/options.extend-config/options.extend-config.spec.js    |  20 ++-
 test/smoke-test.js                                                    |  10 +-
 test/test-bed.js                                                      | 138 ------------------
 test/utils.js                                                         |  40 +++++-
 www/components/footer/footer.css                                      |   4 +
 www/components/footer/footer.js                                       |   2 +-
 www/package.json                                                      |   2 +-
 www/pages/docs/front-matter.md                                        |  14 +-
 www/pages/docs/markdown.md                                            |  13 +-
 yarn.lock                                                             |  11 +-
 81 files changed, 1465 insertions(+), 940 deletions(-)
greenwood - v0.10.1

Published by thescientist13 over 3 years ago

Overview

This release aims to resolve a handful of bugs.

Changelog

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.10.1

  1. mpa router broken for non chrome browsers
  2. npx installer errors for node module dependencies
  3. issue merging <head> tags in app and page templates
  4. better handling of <script> and <link> tag attributes

Breaking Changes

None

Known issues

  1. duplicate <head> tags
  2. Still need to restore ability to include per page JS / CSS via frontmatter in markdown

Diff

% git diff v0.10.0 v0.10.1 --stat
  lerna.json                                                            |   2 +-
 packages/cli/package.json                                             |   2 +-
 packages/cli/src/config/rollup.config.js                              |  34 +++---
 packages/cli/src/lib/browser.js                                       |   3 +-
 packages/cli/src/lib/router.js                                        |  20 +++-
 packages/cli/src/lifecycles/serve.js                                  |   6 +-
 packages/cli/src/plugins/resource/plugin-node-modules.js              |  48 ++++++--
 packages/cli/src/plugins/resource/plugin-standard-html.js             | 156 ++++++++++++++++--------
 packages/cli/src/plugins/resource/plugin-standard-javascript.js       |  15 ++-
 packages/cli/src/plugins/resource/plugin-standard-json.js             |  15 ++-
 packages/cli/src/templates/app.html                                   |   5 +-
 packages/cli/src/templates/page.html                                  |   7 ++
 .../build.default.quick-start-npx.spec.js                             | 118 +++++++++++++++++++
 .../test/cases/build.default.quick-start-npx/src/components/header.js |  19 +++
 .../cli/test/cases/build.default.quick-start-npx/src/pages/index.md   |   1 +
 .../test/cases/build.default.quick-start-npx/src/templates/page.html  |  17 +++
 .../build.default.workspace-getting-started.spec.js                   | 196 ++++++++++++++++++++-----------
 .../build.default.workspace-javascript-css.spec.js                    |  26 +++-
 .../cases/build.default.workspace-javascript-css/src/pages/index.html |   4 +-
 .../cases/build.default.workspace-javascript-css/src/styles/other.css |   3 +
 .../cases/build.default.workspace-template-app/src/templates/app.html |   2 -
 .../src/templates/app.html                                            |   2 +
 .../build.default.workspace-template-page-bare-merging.spec.js        | 118 +++++++++++++++++++
 .../src/pages/index.md                                                |   3 +
 .../src/templates/page.html                                           |  13 ++
 packages/cli/test/cases/build.default/build.default.spec.js           |  26 +---
 packages/plugin-babel/package.json                                    |   4 +-
 packages/plugin-google-analytics/package.json                         |   4 +-
 packages/plugin-graphql/package.json                                  |   4 +-
 packages/plugin-import-commonjs/package.json                          |   4 +-
 packages/plugin-import-css/package.json                               |   4 +-
 packages/plugin-polyfills/package.json                                |   4 +-
 packages/plugin-postcss/package.json                                  |   4 +-
 test/smoke-test.js                                                    |  57 +++++++--
 test/test-bed.js                                                      |   7 +-
 test/utils.js                                                         |  12 ++
 36 files changed, 734 insertions(+), 231 deletions(-)
greenwood - v0.10.0

Published by thescientist13 over 3 years ago

Overview

This is the official v0.10.0 release, following in a line of alpha releases all building to a bottom up refactor and re-envisioning of what Greenwood can be, and adapting the project's internals accordingly. This is helping to move the project's design further into a plugin based ecosystem and incorporating new features like a focus on "bundle-less" development, platform-first developer experiences, and trading in webpack* for a smaller collection of more focused packages like rollup and koa. Greenwood is embracing a paradigm shift in the not only how the project will be steered, but ultimately in how it can best help everyone deliver great developer and user experiences that are both easy to develop and maintain. ✌️

To get this upgrade, you can run the following:

# npm
$ npm install @greenwood/[email protected] --save dev

# yarn
$ yarn add @greenwood/[email protected] --dev

Changelog

This was effectively a big refactor of the internals with some breaking changes (see below) and probably a lot of nicer smaller enhancements and fixes we got for free.

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.10.0+

Breaking Changes

For existing users, here is a summary of the breaking changes that occurred in each release so that depending on what feature you were using, you link out to the appropriate information.

In general, the main changes involve

  1. Migrating your templates to be HTML based instead of Web Component based
  2. Recommended default NodeJS version is now 12.x
  3. GraphQL is now a plugin (with minor schema changes)
  4. Using Babel and PostCSS now requires plugins
  5. Using import for CSS (and anything non standard) will be available through a plugin
  6. The spa optimization has been more appropriately renamed as mpa
Release Breaking Changes
alpha.0 Page Templates, PostCSS Plugins
alpha.1 N / A
alpha.2 N / A
alpha.3 N / A
alpha.4 Polyfill and GA Plugin usage modified
alpha.5 PostCSS and import for CSS and CommonJS moved to plugins
alpha.6 N / A
alpha.7 NodeJS v12.x min. requirement
alpha.8 GraphQL and Babel moved to plugins
alpha.9 N / A
alpha.10 spa optimization in config renamed to mpa

Known issues

  1. Still need to restore ability to include per page JS / CSS via frontmatter in markdown
  2. mpa router broken for non chrome browsers
  3. npx installer errors for node module dependencies

Diff

% git diff v0.9.0 v0.10.0 --stat
 .eslintignore                                                       |    5 +-
 .eslintrc.js                                                        |    8 +-
 .github/CONTRIBUTING.md                                             |   67 +-
 .github/workflows/ci.yml                                            |    2 +-
 .github/workflows/release.yml                                       |   39 +
 README.md                                                           |   12 +-
 greenwood.config.js                                                 |   18 +-
 lerna.json                                                          |    2 +-
 netlify.toml                                                        |    5 +-
 nyc.config.js                                                       |   12 +-
 package.json                                                        |   15 +-
 packages/cli/package.json                                           |   85 +-
 packages/cli/src/commands/build.js                                  |   55 +
 packages/cli/src/commands/develop.js                                |   39 +
 packages/cli/src/commands/eject.js                                  |   27 +
 packages/cli/src/commands/serve.js                                  |   20 +
 packages/cli/src/config/.browserslistrc                             |    3 -
 packages/cli/src/config/postcss.config.js                           |    7 -
 packages/cli/src/config/rollup.config.js                            |  504 ++
 packages/cli/src/config/webpack.config.common.js                    |  172 -
 packages/cli/src/config/webpack.config.develop.js                   |   93 -
 packages/cli/src/config/webpack.config.prod.js                      |   17 -
 packages/cli/src/data/common.js                                     |   46 -
 packages/cli/src/data/queries/children.gql                          |   10 -
 packages/cli/src/data/queries/graph.gql                             |   10 -
 packages/cli/src/index.js                                           |   87 +-
 packages/cli/src/lib/browser.js                                     |   10 +-
 packages/cli/src/lib/resource-interface.js                          |   69 +
 packages/cli/src/lib/router.js                                      |   38 +
 packages/cli/src/lib/server-interface.js                            |   18 +
 packages/cli/src/lifecycles/bundle.js                               |   22 +
 packages/cli/src/lifecycles/compile.js                              |   15 +-
 packages/cli/src/lifecycles/config.js                               |   67 +-
 packages/cli/src/lifecycles/context.js                              |   74 +-
 packages/cli/src/lifecycles/copy.js                                 |   76 +
 packages/cli/src/lifecycles/graph.js                                |  298 +-
 packages/cli/src/lifecycles/scaffold.js                             |  155 -
 packages/cli/src/lifecycles/serialize.js                            |  122 +-
 packages/cli/src/lifecycles/serve.js                                |  206 +
 packages/cli/src/plugins/resource/plugin-node-modules.js            |  250 +
 packages/cli/src/plugins/resource/plugin-optimization-mpa.js        |  106 +
 packages/cli/src/plugins/resource/plugin-standard-css.js            |   66 +
 packages/cli/src/plugins/resource/plugin-standard-font.js           |   38 +
 packages/cli/src/plugins/resource/plugin-standard-html.js           |  286 +
 packages/cli/src/plugins/resource/plugin-standard-image.js          |   55 +
 packages/cli/src/plugins/resource/plugin-standard-javascript.js     |   37 +
 packages/cli/src/plugins/resource/plugin-standard-json.js           |   52 +
 packages/cli/src/plugins/resource/plugin-user-workspace.js          |   38 +
 packages/cli/src/plugins/server/plugin-livereload.js                |   59 +
 packages/cli/src/tasks/build.js                                     |   42 -
 packages/cli/src/tasks/develop.js                                   |   25 -
 packages/cli/src/tasks/eject.js                                     |   26 -
 packages/cli/src/templates/404.html                                 |   16 -
 packages/cli/src/templates/app-template.js                          |   13 -
 packages/cli/src/templates/app.html                                 |   18 +
 packages/cli/src/templates/base-template.js                         |  104 -
 packages/cli/src/templates/index.html                               |   26 -
 packages/cli/src/templates/index.md                                 |    7 -
 packages/cli/src/templates/page-template.js                         |   15 -
 packages/cli/test/cases/build.config.babel/babel.config.js          |   20 -
 .../cli/test/cases/build.config.babel/build.config.babel.spec.js    |   58 -
 packages/cli/test/cases/build.config.babel/src/pages/index.md       |    3 -
 .../test/cases/build.config.default/build.config.default.spec.js    |    5 +-
 .../cases/build.config.error-mode/build.config.error-mode.spec.js   |   10 +-
 packages/cli/test/cases/build.config.error-mode/greenwood.config.js |    2 +-
 .../build.config.error-optimization.spec.js}                        |   11 +-
 .../test/cases/build.config.error-optimization/greenwood.config.js  |    3 +
 .../test/cases/build.config.error-public-path/greenwood.config.js   |    3 -
 .../test/cases/build.config.error-theme-file/greenwood.config.js    |    3 -
 .../build.config.markdown-custom.spec.js                            |   30 +-
 .../cases/build.config.markdown-custom.plugins/greenwood.config.js  |    5 +-
 .../cases/build.config.markdown-custom.plugins/src/pages/index.md   |    9 +
 .../build.config.markdown-custom.settings.spec.js                   |   22 +-
 packages/cli/test/cases/build.config.meta/build.config.meta.spec.js |   68 +-
 .../test/cases/build.config.mode-mpa/build.config.mode-mpa.spec.js  |  149 +
 packages/cli/test/cases/build.config.mode-mpa/greenwood.config.js   |    3 +
 packages/cli/test/cases/build.config.mode-mpa/src/pages/about.md    |    7 +
 packages/cli/test/cases/build.config.mode-mpa/src/pages/index.md    |    3 +
 packages/cli/test/cases/build.config.mode/build.config.mode.spec.js |   95 -
 packages/cli/test/cases/build.config.mode/greenwood.config.js       |    3 -
 packages/cli/test/cases/build.config.mode/src/pages/about/index.md  |    0
 packages/cli/test/cases/build.config.mode/src/pages/hello.md        |    7 -
 packages/cli/test/cases/build.config.mode/src/pages/index.md        |    3 -
 .../build.config-optimization-default.spec.js                       |  107 +
 .../build.config.optimization-default/src/components/header.js      |   19 +
 .../cases/build.config.optimization-default/src/pages/index.html    |   19 +
 .../cases/build.config.optimization-default/src/styles/theme.css    |    5 +
 .../build.config-optimization-inline.spec.js                        |  115 +
 .../test/cases/build.config.optimization-inline/greenwood.config.js |    3 +
 .../cases/build.config.optimization-inline/src/components/header.js |   12 +
 .../cases/build.config.optimization-inline/src/pages/index.html     |   19 +
 .../cases/build.config.optimization-inline/src/styles/theme.css     |    5 +
 .../build.config-optimization-none.spec.js                          |  113 +
 .../test/cases/build.config.optimization-none/greenwood.config.js   |    3 +
 .../cases/build.config.optimization-none/src/components/header.js   |   12 +
 .../test/cases/build.config.optimization-none/src/pages/index.html  |   19 +
 .../test/cases/build.config.optimization-none/src/styles/theme.css  |    5 +
 .../build.config-optimization-static.spec.js                        |   81 +
 .../test/cases/build.config.optimization-static/greenwood.config.js |    3 +
 .../cases/build.config.optimization-static/src/components/header.js |   19 +
 .../cases/build.config.optimization-static/src/pages/index.html     |   18 +
 .../test/cases/build.config.postcss/build.config.postcss.spec.js    |   69 -
 packages/cli/test/cases/build.config.postcss/postcss.config.js      |    9 -
 packages/cli/test/cases/build.config.postcss/src/pages/hello.md     |   11 -
 packages/cli/test/cases/build.config.postcss/src/pages/index.md     |    3 -
 .../cases/build.config.public-path/build.config.public-path.spec.js |   63 -
 .../cli/test/cases/build.config.public-path/greenwood.config.js     |    3 -
 .../cli/test/cases/build.config.theme/build.config.theme.spec.js    |   95 -
 packages/cli/test/cases/build.config.theme/greenwood.config.js      |    3 -
 packages/cli/test/cases/build.config.theme/src/styles/my-brand.css  |    5 -
 .../test/cases/build.config.theme/src/templates/page-template.js    |   16 -
 .../cli/test/cases/build.config.title/build.config.title.spec.js    |   90 +-
 .../hello.md => test/cases/build.config.title/src/pages/about.md}   |    6 +-
 packages/cli/test/cases/build.config.title/src/pages/hello.md       |    7 -
 .../build.config.workspace-custom.spec.js                           |    4 +-
 .../build.data.graph-custom-frontmatter.spec.js                     |  145 -
 .../cases/build.data.graph-custom-frontmatter/src/pages/index.md    |    7 -
 .../src/templates/blog-template.js                                  |   78 -
 packages/cli/test/cases/build.data.graph/build.data.graph.spec.js   |  294 --
 packages/cli/test/cases/build.data.graph/src/pages/blog/index.md    |    5 -
 packages/cli/test/cases/build.data.graph/src/pages/index.md         |    7 -
 .../cli/test/cases/build.data.graph/src/templates/blog-template.js  |   62 -
 .../cli/test/cases/build.data.graph/src/templates/page-template.js  |   21 -
 .../cli/test/cases/build.data.graph/src/templates/post-template.js  |   67 -
 .../build.default.import-node-modules.spec.js                       |  268 +
 .../cli/test/cases/build.default.import-node-modules/package.json   |   10 +
 .../cases/build.default.import-node-modules/src/pages/index.html    |   24 +
 .../cases/build.default.import-node-modules/src/scripts/main.js     |    9 +
 .../cases/build.default.markdown/build.default.markdown.spec.js     |   84 +
 packages/cli/test/cases/build.default.markdown/src/pages/index.md   |    9 +
 .../test/cases/build.default.webpack/build.default.webpack.spec.js  |   66 -
 .../cli/test/cases/build.default.webpack/webpack.config.common.js   |  173 -
 .../cli/test/cases/build.default.webpack/webpack.config.develop.js  |   93 -
 .../cli/test/cases/build.default.webpack/webpack.config.prod.js     |   17 -
 .../build.default.workspace-assets.spec.js                          |    2 +-
 .../build.default.workspace-getting-started.spec.js                 |  212 +-
 .../src/components/footer.js                                        |    2 +-
 .../src/components/header.js                                        |    2 +-
 .../src/templates/blog-template.js                                  |   26 -
 .../build.default.workspace-getting-started/src/templates/blog.html |   24 +
 .../src/templates/page-template.js                                  |   32 -
 .../build.default.workspace-getting-started/src/templates/page.html |   31 +
 .../build.default.workspace-javascript-css-remote.spec.js           |  107 +
 .../src/pages/index.html                                            |   14 +
 .../build.default.workspace-javascript-css.spec.js                  |  151 +
 .../build.default.workspace-javascript-css/src/pages/index.html     |   28 +
 .../build.default.workspace-javascript-css/src/scripts/main.js      |    1 +
 .../build.default.workspace-javascript-css/src/scripts/other.js     |    1 +
 .../build.default.workspace-javascript-css/src/styles/main.css      |    3 +
 .../build.default.workspace-nested.spec.js                          |  123 +-
 .../src/pages/blog/2017/03/26/index.md                              |    6 +
 .../src/pages/blog/2017/03/30/index.md                              |    6 +
 .../src/pages/blog/2017/04/10/index.md                              |    6 +
 .../src/pages/blog/2017/04/22/index.md                              |    6 +
 .../src/pages/blog/2017/05/05/index.md                              |    6 +
 .../src/pages/blog/2017/06/07/index.md                              |    6 +
 .../src/pages/blog/2017/09/10/index.md                              |    6 +
 .../src/pages/blog/2017/10/15/index.md                              |    6 +
 .../src/pages/blog/2018/01/24/index.md                              |    6 +
 .../src/pages/blog/2018/05/16/index.md                              |    6 +
 .../src/pages/blog/2018/06/06/index.md                              |    6 +
 .../src/pages/blog/2018/09/26/index.md                              |    6 +
 .../src/pages/blog/2018/10/28/index.md                              |    6 +
 .../src/pages/blog/2018/11/19/index.md                              |    6 +
 .../src/pages/blog/2019/11/11/index.md                              |    6 +
 .../build.default.workspace-nested/src/pages/blog/2019/index.md     |    8 -
 .../src/pages/blog/2020/04/07/index.md                              |    6 +
 .../src/pages/blog/2020/08/15/index.md                              |    6 +
 .../src/pages/blog/2020/10/28/index.md                              |    6 +
 .../cases/build.default.workspace-nested/src/pages/blog/index.md    |    3 +
 .../test/cases/build.default.workspace-nested/src/pages/index.html  |    8 +
 .../test/cases/build.default.workspace-nested/src/pages/index.md    |    3 -
 .../build.default.workspace-template-app.spec.js                    |   86 +-
 .../src/templates/app-template.js                                   |   13 -
 .../build.default.workspace-template-app/src/templates/app.html     |   21 +
 .../build.default.workspace-template-page-and-app.spec.js           |  125 +
 .../src/scripts/app-template-one.js                                 |    1 +
 .../src/scripts/app-template-two.js                                 |    1 +
 .../src/scripts/page-template-one.js                                |    1 +
 .../src/scripts/page-template-two.js                                |    1 +
 .../src/styles/app-template-one.css                                 |    3 +
 .../src/styles/app-template-two.css                                 |    3 +
 .../src/styles/page-template-one.css                                |    3 +
 .../src/styles/page-template-two.css                                |    3 +
 .../src/templates/app.html                                          |   29 +
 .../src/templates/page.html                                         |   37 +
 .../build.default.workspace-template-page-style.spec.js             |  116 -
 .../src/styles/style.css                                            |    7 -
 .../src/templates/page-template.js                                  |   20 -
 .../build.default.workspace-template-page.spec.js                   |   79 +-
 .../cases/build.default.workspace-template-page/src/scripts/main.js |    1 +
 .../src/styles/theme.css                                            |    0
 .../src/templates/page-template.js                                  |   15 -
 .../build.default.workspace-template-page/src/templates/page.html   |   32 +
 .../build.default.workspace-top-level-pages.spec.js                 |  116 +
 .../build.default.workspace-top-level-pages/src/pages/about.html    |    9 +
 .../build.default.workspace-top-level-pages/src/pages/contact.md    |    3 +
 .../build.default.workspace-top-level-pages/src/pages/index.html    |   12 +
 .../build.default.workspace-user-directory-mapping.spec.js          |  130 +-
 .../src/components/header/header.js                                 |   12 +-
 .../src/pages/pages.md                                              |    2 +-
 .../src/pages/plugins/index-hooks.md                                |    3 +
 .../src/pages/plugins/index.md                                      |    3 +
 .../src/templates/page-template.js                                  |   17 -
 .../src/templates/page.html                                         |   22 +
 packages/cli/test/cases/build.default/build.default.spec.js         |   83 +-
 .../cli/test/cases/build.plugins-index/build.plugins-index.spec.js  |   85 -
 packages/cli/test/cases/build.plugins-index/greenwood.config.js     |   31 -
 .../test/cases/build.plugins-webpack/build-plugins-webpack.spec.js  |   78 -
 packages/cli/test/cases/build.plugins-webpack/greenwood.config.js   |   13 -
 .../build.plugins.error-name.spec.js}                               |   17 +-
 .../cli/test/cases/build.plugins.error-name/greenwood.config.js     |    8 +
 .../build.plugins.error-provider.spec.js}                           |    5 +-
 .../greenwood.config.js                                             |    2 +-
 .../build.plugins.error-type.spec.js}                               |    8 +-
 .../greenwood.config.js                                             |    0
 .../build.plugins.resource/build.config.plugins-resource.spec.js    |   70 +
 packages/cli/test/cases/build.plugins.resource/greenwood.config.js  |   36 +
 .../cases/build.plugins.resource/src/foo-files/my-custom-file.foo   |    9 +
 .../build.plugins.resource/src/foo-files/my-other-custom-file.foo   |    8 +
 packages/cli/test/cases/build.plugins.resource/src/pages/index.html |   12 +
 packages/cli/test/cases/eject.default/eject.default.spec.js         |  113 +-
 packages/cli/test/unit/data/mocks/graph.js                          |    4 -
 packages/plugin-babel/README.md                                     |   77 +
 packages/plugin-babel/package.json                                  |   39 +
 packages/plugin-babel/src/.browserslistrc                           |    2 +
 packages/{cli/src/config => plugin-babel/src}/babel.config.js       |   21 +-
 packages/plugin-babel/src/index.js                                  |   78 +
 packages/plugin-babel/test/cases/default/babel.config.js            |    6 +
 packages/plugin-babel/test/cases/default/default.spec.js            |   76 +
 packages/plugin-babel/test/cases/default/greenwood.config.js        |    7 +
 packages/plugin-babel/test/cases/default/src/pages/index.html       |   12 +
 packages/plugin-babel/test/cases/default/src/scripts/main.js        |   18 +
 .../plugin-babel/test/cases/options.extend-config/babel.config.js   |    6 +
 .../test/cases/options.extend-config/greenwood.config.js            |    9 +
 .../test/cases/options.extend-config/options.extend-config.spec.js  |   93 +
 .../test/cases/options.extend-config/src/pages/index.html           |   12 +
 .../test/cases/options.extend-config/src/scripts/main.js            |   18 +
 packages/plugin-google-analytics/README.md                          |   20 +-
 packages/plugin-google-analytics/package.json                       |   10 +-
 packages/plugin-google-analytics/src/index.js                       |   57 +-
 packages/plugin-google-analytics/test/cases/default/default.spec.js |   12 +-
 .../plugin-google-analytics/test/cases/default/greenwood.config.js  |    2 +-
 .../test/cases/error-analytics-id/error-analytics-id.spec.js        |    4 +-
 .../test/cases/error-analytics-id/greenwood.config.js               |    2 +-
 .../test/cases/option-anonymous/greenwood.config.js                 |    2 +-
 .../test/cases/option-anonymous/option-anonymous.spec.js            |    9 +-
 packages/plugin-graphql/README.md                                   |   84 +
 packages/plugin-graphql/package.json                                |   35 +
 packages/{cli/src/data => plugin-graphql/src/core}/cache.js         |   31 +-
 packages/{cli/src/data => plugin-graphql/src/core}/client.js        |   32 +-
 packages/plugin-graphql/src/core/common.client.js                   |   23 +
 packages/plugin-graphql/src/core/common.server.js                   |   23 +
 packages/{cli/src/data => plugin-graphql/src/core}/server.js        |    4 +-
 packages/plugin-graphql/src/index.js                                |  120 +
 packages/plugin-graphql/src/queries/children.gql                    |   11 +
 packages/{cli/src/data => plugin-graphql/src}/queries/config.gql    |    5 +-
 packages/plugin-graphql/src/queries/graph.gql                       |   11 +
 packages/{cli/src/data => plugin-graphql/src}/queries/menu.gql      |    6 +-
 packages/{cli/src/data => plugin-graphql/src}/schema/config.js      |    5 +-
 packages/{cli/src/data => plugin-graphql/src}/schema/graph.js       |   81 +-
 packages/{cli/src/data => plugin-graphql/src}/schema/schema.js      |    0
 .../plugin-graphql/test/cases/query-children/greenwood.config.js    |   10 +
 packages/plugin-graphql/test/cases/query-children/package.json      |    6 +
 .../plugin-graphql/test/cases/query-children/query-children.spec.js |  151 +
 .../test/cases/query-children/src/components/posts-list.js          |   55 +
 .../test/cases/query-children/src/pages/blog/first-post/index.md    |    8 +
 .../test/cases/query-children/src/pages/blog/second-post/index.md   |    8 +
 .../plugin-graphql/test/cases/query-children/src/pages/index.html   |   12 +
 packages/plugin-graphql/test/cases/query-config/greenwood.config.js |   10 +
 .../plugin-graphql/test/cases/query-config/query-config.spec.js     |  108 +
 .../plugin-graphql/test/cases/query-config/src/components/footer.js |   22 +
 .../plugin-graphql/test/cases/query-config/src/pages/index.html     |   12 +
 .../test/cases/query-custom-frontmatter/greenwood.config.js         |    9 +
 .../plugin-graphql/test/cases/query-custom-frontmatter/package.json |    6 +
 .../cases/query-custom-frontmatter/query-custom-frontmatter.spec.js |  177 +
 .../cases/query-custom-frontmatter/src/components/posts-list.js     |   66 +
 .../query-custom-frontmatter}/src/pages/blog/first-post/index.md    |    3 +-
 .../query-custom-frontmatter}/src/pages/blog/second-post/index.md   |    3 +-
 .../test/cases/query-custom-frontmatter/src/pages/index.html        |   12 +
 packages/plugin-graphql/test/cases/query-graph/greenwood.config.js  |    9 +
 packages/plugin-graphql/test/cases/query-graph/package.json         |    6 +
 packages/plugin-graphql/test/cases/query-graph/query-graph.spec.js  |  150 +
 .../test/cases/query-graph/src/components/debug-output.js           |   48 +
 .../test/cases/query-graph}/src/pages/blog/first-post.md            |    0
 .../test/cases/query-graph}/src/pages/blog/second-post.md           |    0
 packages/plugin-graphql/test/cases/query-graph/src/pages/index.html |   13 +
 packages/plugin-graphql/test/cases/query-menu/greenwood.config.js   |    9 +
 packages/plugin-graphql/test/cases/query-menu/package.json          |    6 +
 packages/plugin-graphql/test/cases/query-menu/query-menu.spec.js    |  159 +
 .../test/cases/query-menu}/src/components/header.js                 |   10 +-
 packages/plugin-graphql/test/cases/query-menu/src/pages/about.md    |    7 +
 packages/plugin-graphql/test/cases/query-menu/src/pages/contact.md  |    7 +
 packages/plugin-graphql/test/cases/query-menu/src/pages/index.md    |    3 +
 .../plugin-graphql/test/cases/query-menu/src/templates/page.html    |   12 +
 .../{cli/test/unit/data => plugin-graphql/test/unit}/common.spec.js |   29 +-
 .../test/unit/data => plugin-graphql/test/unit}/mocks/config.js     |    4 +-
 packages/plugin-graphql/test/unit/mocks/graph.js                    | 2274 ++++++++
 .../unit/data => plugin-graphql/test/unit}/schema/config.spec.js    |   30 +-
 .../data => plugin-graphql/test/unit}/schema/graph.menu.spec.js     |  138 +-
 .../unit/data => plugin-graphql/test/unit}/schema/graph.spec.js     |   45 +-
 packages/plugin-import-commonjs/README.md                           |   45 +
 packages/plugin-import-commonjs/package.json                        |   33 +
 packages/plugin-import-commonjs/src/index.js                        |   96 +
 packages/plugin-import-commonjs/test/cases/default/default.spec.js  |   91 +
 .../plugin-import-commonjs/test/cases/default/greenwood.config.js   |    7 +
 packages/plugin-import-commonjs/test/cases/default/package.json     |    6 +
 .../plugin-import-commonjs/test/cases/default/src/pages/index.html  |   12 +
 .../plugin-import-commonjs/test/cases/default/src/scripts/main.js   |    4 +
 packages/plugin-import-css/README.md                                |   41 +
 packages/plugin-import-css/package.json                             |   31 +
 packages/plugin-import-css/src/index.js                             |   59 +
 packages/plugin-import-css/test/cases/default/default.spec.js       |   70 +
 packages/plugin-import-css/test/cases/default/greenwood.config.js   |    7 +
 packages/plugin-import-css/test/cases/default/src/main.js           |    3 +
 packages/plugin-import-css/test/cases/default/src/pages/index.html  |   12 +
 packages/plugin-import-css/test/cases/default/src/styles.css        |    3 +
 packages/plugin-polyfills/README.md                                 |   16 +-
 packages/plugin-polyfills/package.json                              |   10 +-
 packages/plugin-polyfills/src/index.js                              |   89 +-
 packages/plugin-polyfills/test/cases/default/default.spec.js        |   41 +-
 packages/plugin-polyfills/test/cases/default/greenwood.config.js    |    2 +-
 packages/plugin-postcss/README.md                                   |   76 +
 packages/plugin-postcss/package.json                                |   32 +
 packages/plugin-postcss/src/.browserslistrc                         |    2 +
 packages/plugin-postcss/src/index.js                                |   90 +
 packages/plugin-postcss/src/postcss.config.js                       |    5 +
 packages/plugin-postcss/test/cases/default/default.spec.js          |   67 +
 packages/plugin-postcss/test/cases/default/greenwood.config.js      |    7 +
 packages/plugin-postcss/test/cases/default/src/pages/index.html     |   12 +
 packages/plugin-postcss/test/cases/default/src/styles/main.css      |    7 +
 .../test/cases/options.extend-config/greenwood.config.js            |    7 +
 .../test/cases/options.extend-config/options.extend-config.spec.js  |   74 +
 .../test/cases/options.extend-config/postcss.config.js              |    5 +
 .../test/cases/options.extend-config/src/pages/index.html           |   12 +
 .../test/cases/options.extend-config/src/styles/main.css            |    8 +
 postcss.config.js                                                   |   10 +-
 stylelint.config.js                                                 |   20 +
 test/smoke-test.js                                                  |  213 +-
 test/test-bed.js                                                    |   27 +-
 www/assets/brand.png                                                |  Bin 2171 -> 0 bytes
 www/assets/evergreen.svg                                            |   45 +
 www/assets/fonts/source-sans-pro.css                                |    8 +-
 www/assets/greenwood-logo-1000w.png                                 |  Bin 0 -> 90971 bytes
 www/assets/greenwood-logo-1500w.png                                 |  Bin 0 -> 161680 bytes
 www/assets/{greenwood-logo.png => greenwood-logo-300w.png}          |  Bin
 www/assets/greenwood-logo-500w.png                                  |  Bin 0 -> 31932 bytes
 www/assets/greenwood-logo-750w.png                                  |  Bin 0 -> 59108 bytes
 www/assets/greenwood-logo-sml.jpg                                   |  Bin 0 -> 5712 bytes
 www/assets/simple.png                                               |  Bin 0 -> 5089 bytes
 www/assets/webpack.svg                                              |   68 -
 www/components/banner/banner.css                                    |   54 +-
 www/components/banner/banner.js                                     |   27 +-
 www/components/banner/button.css                                    |   24 +-
 www/components/card/card.css                                        |   70 +-
 www/components/card/card.js                                         |   25 +-
 www/components/footer/footer.css                                    |    5 +-
 www/components/footer/footer.js                                     |   19 +-
 www/components/header/header.css                                    |   57 +-
 www/components/header/header.js                                     |   33 +-
 www/components/icons/chevron-down.js                                |   11 +
 www/components/icons/chevron-down/chevron-down.js                   |    8 -
 www/components/icons/chevron-right.js                               |   11 +
 www/components/icons/chevron-right/chevron-right.js                 |    8 -
 www/components/icons/github-icon.js                                 |    2 +-
 www/components/icons/slack-icon.js                                  |    2 +-
 www/components/icons/twitter-icon.js                                |    2 +-
 www/components/row/row.css                                          |    2 +-
 www/components/row/row.js                                           |   15 -
 www/components/scroll/scroll.js                                     |    6 +-
 www/components/shelf/shelf.css                                      |   65 +-
 www/components/shelf/shelf.js                                       |   75 +-
 www/components/social-icons/social-icons.css                        |    3 +-
 www/components/social-icons/social-icons.js                         |   23 +-
 www/package.json                                                    |   10 +-
 www/pages/about/community.md                                        |   18 +-
 www/pages/about/features.md                                         |   20 +-
 www/pages/about/goals.md                                            |    8 +-
 www/pages/about/how-it-works.md                                     |  113 +-
 www/pages/about/index.md                                            |    6 +-
 www/pages/docs/build.md                                             |   65 -
 www/pages/docs/component-model.md                                   |  110 +-
 www/pages/docs/configuration.md                                     |   86 +-
 www/pages/docs/css-and-images.md                                    |  163 +-
 www/pages/docs/data.md                                              |  164 +-
 www/pages/docs/front-matter.md                                      |   24 +-
 www/pages/docs/index.md                                             |   51 +-
 www/pages/docs/layouts.md                                           |  188 +-
 www/pages/docs/markdown.md                                          |   86 +-
 www/pages/docs/menus.md                                             |   44 +-
 www/pages/docs/tech-stack.md                                        |   25 +-
 www/pages/getting-started/branding.md                               |  127 +-
 www/pages/getting-started/build-and-deploy.md                       |    4 +-
 www/pages/getting-started/creating-content.md                       |   87 +-
 www/pages/getting-started/index.md                                  |   11 +-
 www/pages/getting-started/key-concepts.md                           |   61 +-
 www/pages/getting-started/next-steps.md                             |   21 +-
 www/pages/getting-started/project-setup.md                          |   24 +-
 www/pages/getting-started/quick-start.md                            |   18 +-
 www/pages/guides/cloudflare-workers-deployment.md                   |    6 +-
 www/pages/guides/firebase.md                                        |    2 +-
 www/pages/guides/netlify-cms.md                                     |   18 +-
 www/pages/guides/s3-cloudfront.md                                   |    6 +-
 www/pages/index.html                                                |   74 +
 www/pages/index.md                                                  |   28 -
 www/pages/plugins/composite-plugins.md                              |   18 -
 www/pages/plugins/custom-plugins.md                                 |   22 +
 www/pages/plugins/index-hooks.md                                    |  111 -
 www/pages/plugins/index.md                                          |   68 +-
 www/pages/plugins/resource.md                                       |  159 +
 www/pages/plugins/rollup.md                                         |   32 +
 www/pages/plugins/server.md                                         |   64 +
 www/pages/plugins/webpack.md                                        |   45 -
 www/styles/home.css                                                 |  128 +-
 www/styles/page.css                                                 |  187 +-
 www/styles/theme.css                                                |   41 +-
 www/templates/app-template.js                                       |   28 -
 www/templates/app.html                                              |   42 +
 www/templates/home-template.js                                      |   26 -
 www/templates/page-template.js                                      |   54 -
 www/templates/page.html                                             |   41 +
 yarn.lock                                                           | 8023 +++++++++++------------------
 422 files changed, 15822 insertions(+), 10783 deletions(-)

Stats

Here is a breakdown of some the stat improvements for the website when going from 0.9.0 -> 0.10.0.

Lighthouse

Lighthouse performance score went up 34 points and improved across all metrics!!! ⚡

Before
greenwood-lighthouse-before

After
greenwood-lighthouse-after

Network / Bundle Sizes

Our overall payload size went down 194 KB with JS itself going down from 380KB -> 198KB!!! 🌟

Most of that remaining JS size is coming from LitElement (30KB) and Google Analytics (148KB). Since we are going more "unbundled" our network requests went up due to our optimizations, we have a much better waterfall as a result to compensate.

Before
greenwood-network-before

After
greenwood-netowork-after

Dependencies

The CLI shaved off a bunch of dependencies, going down 19 dependencies in package.json! 📦

Before
greenwood-dependencies-before

After
greenwood-dependencies-after

greenwood - v0.10.0-alpha.10

Published by thescientist13 over 3 years ago

Overview

This alpha.10 release completes all P0 issues related to No Bundle Feature Parity and is intended to be the last release before the 0.10.0 release itself.

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save-dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

Optimization (and Mode)

The optimization configuration setting has been re-enabled, as we the new mode setting as well, though mode is still experimental.

To restore client side navigation, please rename the spa setting to mpa instead. SPA will be used for "true" single page applications in the future, as MPA is really just SPA + client side routing.

Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. restore and enhance mode and optimization configuration settings

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

N / A

Diff

$ git diff v0.10.0-alpha.9 v0.10.0-alpha.10 --stat
% git diff v0.10.0-alpha.9 v0.10.0-alpha.10 --stat
 greenwood.config.js                                                 |   3 +-
 lerna.json                                                          |   2 +-
 nyc.config.js                                                       |  12 +-
 packages/cli/package.json                                           |   2 +-
 packages/cli/src/config/rollup.config.js                            | 169 ++++++++++++++++-------
 packages/cli/src/index.js                                           |   8 --
 packages/cli/src/lib/browser.js                                     |  28 ++--
 packages/cli/src/lib/router.js                                      |  38 ++++++
 packages/cli/src/lifecycles/compile.js                              |   2 -
 packages/cli/src/lifecycles/config.js                               |  28 ++--
 packages/cli/src/lifecycles/copy.js                                 |   1 -
 packages/cli/src/lifecycles/serialize.js                            |   2 +
 packages/cli/src/lifecycles/serve.js                                |   3 +-
 packages/cli/src/plugins/resource/plugin-optimization-mpa.js        | 106 ++++++++++++++
 packages/cli/src/plugins/resource/plugin-standard-css.js            |   2 +-
 packages/cli/src/plugins/resource/plugin-standard-font.js           |   2 +-
 packages/cli/src/plugins/resource/plugin-standard-html.js           |  18 +--
 packages/cli/src/plugins/resource/plugin-standard-javascript.js     |   2 -
 packages/cli/src/plugins/resource/plugin-standard-json.js           |   4 -
 .../test/cases/build.config.default/build.config.default.spec.js    |   4 +-
 .../cases/build.config.error-mode/build.config.error-mode.spec.js   |  12 +-
 packages/cli/test/cases/build.config.error-mode/greenwood.config.js |   2 +-
 .../build.config.error-optimization.spec.js}                        |  12 +-
 .../test/cases/build.config.error-optimization/greenwood.config.js  |   3 +
 .../test/cases/build.config.error-theme-file/greenwood.config.js    |   3 -
 .../build.config.markdown-custom.spec.js                            |   1 -
 packages/cli/test/cases/build.config.meta/build.config.meta.spec.js |  64 +--------
 .../test/cases/build.config.mode-mpa/build.config.mode-mpa.spec.js  | 149 ++++++++++++++++++++
 packages/cli/test/cases/build.config.mode-mpa/greenwood.config.js   |   3 +
 packages/cli/test/cases/build.config.mode-mpa/src/pages/about.md    |   7 +
 packages/cli/test/cases/build.config.mode-mpa/src/pages/index.md    |   3 +
 packages/cli/test/cases/build.config.mode/build.config.mode.spec.js |  95 -------------
 packages/cli/test/cases/build.config.mode/greenwood.config.js       |   3 -
 packages/cli/test/cases/build.config.mode/src/pages/about/index.md  |   0
 packages/cli/test/cases/build.config.mode/src/pages/hello.md        |   7 -
 packages/cli/test/cases/build.config.mode/src/pages/index.md        |   3 -
 .../build.config-optimization-default.spec.js                       | 107 +++++++++++++++
 .../build.config.optimization-default/src/components/header.js      |  19 +++
 .../cases/build.config.optimization-default/src/pages/index.html    |  19 +++
 .../cases/build.config.optimization-default/src/styles/theme.css    |   5 +
 .../build.config-optimization-inline.spec.js                        | 115 ++++++++++++++++
 .../test/cases/build.config.optimization-inline/greenwood.config.js |   3 +
 .../cases/build.config.optimization-inline/src/components/header.js |  12 ++
 .../cases/build.config.optimization-inline/src/pages/index.html     |  19 +++
 .../cases/build.config.optimization-inline/src/styles/theme.css     |   5 +
 .../build.config-optimization-none.spec.js                          | 113 +++++++++++++++
 .../test/cases/build.config.optimization-none/greenwood.config.js   |   3 +
 .../cases/build.config.optimization-none/src/components/header.js   |  12 ++
 .../test/cases/build.config.optimization-none/src/pages/index.html  |  19 +++
 .../test/cases/build.config.optimization-none/src/styles/theme.css  |   5 +
 .../build.config-optimization-static.spec.js                        |  81 +++++++++++
 .../test/cases/build.config.optimization-static/greenwood.config.js |   3 +
 .../cases/build.config.optimization-static/src/components/header.js |  19 +++
 .../cases/build.config.optimization-static/src/pages/index.html     |  18 +++
 .../cli/test/cases/build.config.theme/build.config.theme.spec.js    |  95 -------------
 packages/cli/test/cases/build.config.theme/greenwood.config.js      |   3 -
 packages/cli/test/cases/build.config.theme/src/styles/my-brand.css  |   5 -
 .../test/cases/build.config.theme/src/templates/page-template.js    |  16 ---
 .../cli/test/cases/build.config.title/build.config.title.spec.js    |   7 +-
 .../build.config.workspace-custom.spec.js                           |   3 +-
 .../build.default.import-node-modules.spec.js                       |   2 +-
 .../cases/build.default.import-node-modules/src/pages/index.html    |   1 -
 .../cases/build.default.markdown/build.default.markdown.spec.js     |   1 -
 .../build.default.workspace-assets.spec.js                          |   1 -
 .../build.default.workspace-getting-started.spec.js                 |  28 ++--
 .../build.default.workspace-getting-started/src/templates/blog.html |   1 -
 .../build.default.workspace-getting-started/src/templates/page.html |   1 -
 .../build.default.workspace-javascript-css.spec.js                  |   2 +-
 .../build.default.workspace-javascript-css/src/pages/index.html     |   1 -
 .../build.default.workspace-nested.spec.js                          |   3 +-
 .../build.default.workspace-template-app.spec.js                    |   1 -
 .../build.default.workspace-template-app/src/templates/app.html     |   2 -
 .../build.default.workspace-template-page-and-app.spec.js           |  10 +-
 .../build.default.workspace-template-page.spec.js                   |  10 +-
 .../build.default.workspace-template-page/src/templates/page.html   |   1 -
 .../build.default.workspace-top-level-pages.spec.js                 |  10 +-
 .../build.default.workspace-top-level-pages/src/pages/index.html    |   4 +
 .../build.default.workspace-user-directory-mapping.spec.js          |  14 +-
 packages/cli/test/cases/build.default/build.default.spec.js         |   7 +-
 .../build.plugins.resource/build.config.plugins-resource.spec.js    |   2 +-
 packages/cli/test/cases/build.plugins.resource/src/pages/index.html |   1 -
 packages/plugin-babel/package.json                                  |   4 +-
 packages/plugin-babel/test/cases/default/default.spec.js            |   4 +-
 .../test/cases/options.extend-config/options.extend-config.spec.js  |   8 +-
 packages/plugin-google-analytics/package.json                       |   4 +-
 packages/plugin-google-analytics/test/cases/default/default.spec.js |   9 +-
 .../test/cases/option-anonymous/option-anonymous.spec.js            |   7 +-
 packages/plugin-graphql/package.json                                |   4 +-
 packages/plugin-graphql/src/index.js                                |   3 +-
 packages/plugin-graphql/src/queries/config.gql                      |   1 +
 packages/plugin-graphql/src/schema/config.js                        |   1 +
 .../plugin-graphql/test/cases/query-children/query-children.spec.js | 151 ++++++++++++++++++++
 .../test/cases/query-children/src/components/posts-list.js          |   2 +-
 .../plugin-graphql/test/cases/query-config/query-config.spec.js     |  10 +-
 .../cases/query-custom-frontmatter/query-custom-frontmatter.spec.js |  10 +-
 packages/plugin-graphql/test/cases/query-graph/query-graph.spec.js  |  10 +-
 packages/plugin-graphql/test/cases/query-menu/query-menu.spec.js    |  10 +-
 packages/plugin-graphql/test/unit/schema/config.spec.js             |  10 +-
 packages/plugin-import-commonjs/package.json                        |   4 +-
 packages/plugin-import-commonjs/test/cases/default/default.spec.js  |   5 +-
 .../plugin-import-commonjs/test/cases/default/src/pages/index.html  |   1 -
 packages/plugin-import-css/package.json                             |   4 +-
 packages/plugin-import-css/test/cases/default/default.spec.js       |   5 +-
 packages/plugin-import-css/test/cases/default/src/pages/index.html  |   1 -
 packages/plugin-polyfills/package.json                              |   4 +-
 packages/plugin-polyfills/test/cases/default/default.spec.js        |   5 +-
 packages/plugin-postcss/package.json                                |   4 +-
 packages/plugin-postcss/test/cases/default/default.spec.js          |   1 -
 .../test/cases/options.extend-config/options.extend-config.spec.js  |   1 -
 test/smoke-test.js                                                  | 220 ++++++++----------------------
 www/assets/simple.png                                               | Bin 0 -> 5089 bytes
 www/assets/webpack.svg                                              |  68 ---------
 www/components/banner/banner.css                                    |   8 +-
 www/components/banner/banner.js                                     |   5 -
 www/components/banner/button.css                                    |  20 +--
 www/components/card/card.css                                        |   8 +-
 www/components/header/header.css                                    |   4 +-
 www/components/header/header.js                                     |   1 -
 www/package.json                                                    |   2 +-
 www/pages/about/community.md                                        |  18 ++-
 www/pages/about/features.md                                         |  20 +--
 www/pages/about/goals.md                                            |   8 +-
 www/pages/about/how-it-works.md                                     | 114 ++++------------
 www/pages/about/index.md                                            |   5 +-
 www/pages/docs/component-model.md                                   |   2 +-
 www/pages/docs/configuration.md                                     |  55 ++++++--
 www/pages/docs/data.md                                              |   3 +-
 www/pages/docs/front-matter.md                                      |   2 +-
 www/pages/docs/layouts.md                                           |   2 +-
 www/pages/docs/tech-stack.md                                        |   3 +
 www/pages/getting-started/branding.md                               |  10 +-
 www/pages/getting-started/build-and-deploy.md                       |   2 +-
 www/pages/getting-started/creating-content.md                       |   2 +-
 www/pages/getting-started/index.md                                  |   1 +
 www/pages/getting-started/key-concepts.md                           |   4 +-
 www/pages/getting-started/next-steps.md                             |   2 +-
 www/pages/getting-started/quick-start.md                            |  18 ++-
 www/pages/guides/netlify-cms.md                                     |  18 ++-
 www/pages/index.html                                                |  55 +++++---
 www/pages/plugins/index.md                                          |   5 +-
 www/styles/home.css                                                 |  82 +++++++++--
 www/styles/page.css                                                 |  13 +-
 www/styles/theme.css                                                |  23 +---
 www/templates/app.html                                              |   2 -
 www/templates/page.html                                             |   1 -
 145 files changed, 1672 insertions(+), 1029 deletions(-)

Lighthouse

N / A

greenwood - v0.10.0-alpha.9

Published by thescientist13 over 3 years ago

Overview

This alpha.9 release address two recently identified bugs.

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save-dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

N / A

Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. better browser handling for chrome for importing CSS
  2. handle no bundling of remote URLs and add error handling for sync rollup hooks

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. Restore optimizations and SPA MPA support

Diff

$ git diff v0.10.0-alpha.8 v0.10.0-alpha.9 --stat
lerna.json                                                     |   2 +-
 packages/cli/package.json                                      |   2 +-
 packages/cli/src/config/rollup.config.js                       | 283 ++++++++++++++--------------
 .../build.default.workspace-javascript-css-remote.spec.js      | 107 +++++++++++
 .../src/pages/index.html                                       |  14 ++
 packages/plugin-babel/package.json                             |   4 +-
 packages/plugin-google-analytics/package.json                  |   4 +-
 packages/plugin-graphql/package.json                           |   4 +-
 packages/plugin-import-commonjs/package.json                   |   4 +-
 packages/plugin-import-css/package.json                        |   4 +-
 packages/plugin-import-css/src/index.js                        |   5 +-
 packages/plugin-polyfills/package.json                         |   4 +-
 packages/plugin-postcss/package.json                           |   4 +-
 www/package.json                                               |   2 +-
 www/pages/docs/data.md                                         |  26 ---
 15 files changed, 288 insertions(+), 181 deletions(-)

Lighthouse

N / A

greenwood - v0.10.0-alpha.8

Published by thescientist13 over 3 years ago

Overview

This alpha.8 release restores two critical missing pieces of functionality by adding back in (as plugins) GraphQL and Babel support. 🌟

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save-dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

GraphQL

You will now need to install a plugin for GraphQL support

# npm
npm -i @greenwood/plugin-graphql --save-dev

# yarn
yarn add @greenwood/plugin-graphql --dev

And then add this plugin to your greenwood.config.js.

const pluginGraphQL = require('@greenwood/plugin-graphql');

module.exports = {
  ...

  plugins: [
    ...pluginGraphQL() // notice the spread ... !
  ]
}

Additionally, there were some minor tweaks to the schema , so here is what it looks like now

graph {
  filename, // (string) file name without extension/path, so that it can be copied to scratch dir with same name
  
  id, // (string) filename without the extension

  label, // (string) best guess pretty text / display based on filename

  path, // (string) path to the file

  route,  // (string) A URL, typically derived from the filesystem path, e.g. /blog/2019/first-post/

  template, // (string) page template used for the page

  title,  // (string) Useful for a page's <title> tag or the title attribute for an <a> tag, inferred from the filesystem path, e.g. "First Post" or provided through front matter.
}

You can read more in the package's README.md and our documentation.

Babel

You will now need to install a plugin for Babel support

# npm
npm -i @greenwood/plugin-babel --save-dev

# yarn
yarn add @greenwood/plugin-babel --dev

And then add this plugin to your greenwood.config.js.

const pluginBabel = require('@greenwood/plugin-babel');

module.exports = {
  ...

  plugins: [
    ...pluginBabel() // notice the spread ... !
  ]
}

You can read more in the package's README.md


Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. Restore GraphQL support
  2. Restore Babel / Browserslist support

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. Restore optimizations and MPA support

Diff

$ git diff v0.10.0-alpha.7 v0.10.0-alpha.8 --stat
 .eslintignore                                                    |    3 +-
 .eslintrc.js                                                     |    6 -
 .mocharc.js                                                      |    3 +-
 README.md                                                        |    4 +-
 greenwood.config.js                                              |    4 +
 lerna.json                                                       |    2 +-
 packages/cli/package.json                                        |    2 +-
 packages/cli/src/commands/build.js                               |   44 +-
 packages/cli/src/commands/eject.js                               |   28 +-
 packages/cli/src/config/.browserslistrc                          |    3 -
 packages/cli/src/config/rollup.config.js                         |   17 +-
 packages/cli/src/data/common.js                                  |   46 -
 packages/cli/src/data/queries/children.gql                       |   10 -
 packages/cli/src/data/queries/graph.gql                          |   10 -
 packages/cli/src/index.js                                        |   13 +-
 packages/cli/src/lifecycles/config.js                            |    2 +-
 packages/cli/src/lifecycles/graph.js                             |   12 +-
 packages/cli/src/lifecycles/serve.js                             |    2 +-
 packages/cli/src/plugins/resource/plugin-node-modules.js         |   95 +-
 packages/cli/src/plugins/server/plugin-livereload.js             |    7 +-
 packages/cli/test/cases/build.config.babel/babel.config.js       |   20 -
 .../cli/test/cases/build.config.babel/build.config.babel.spec.js |   58 -
 packages/cli/test/cases/build.config.babel/src/pages/index.md    |    3 -
 .../build.data.graph-custom-frontmatter.spec.js                  |  145 --
 .../cases/build.data.graph-custom-frontmatter/src/pages/index.md |    7 -
 .../src/templates/blog-template.js                               |   78 -
 .../cli/test/cases/build.data.graph/build.data.graph.spec.js     |  294 ---
 packages/cli/test/cases/build.data.graph/src/pages/blog/index.md |    5 -
 packages/cli/test/cases/build.data.graph/src/pages/index.md      |    7 -
 .../test/cases/build.data.graph/src/templates/blog-template.js   |   62 -
 .../test/cases/build.data.graph/src/templates/page-template.js   |   21 -
 .../test/cases/build.data.graph/src/templates/post-template.js   |   67 -
 packages/cli/test/cases/eject.default/eject.default.spec.js      |  111 +-
 packages/cli/test/unit/data/mocks/graph.js                       |    4 -
 packages/plugin-babel/README.md                                  |   77 +
 packages/plugin-babel/package.json                               |   39 +
 packages/plugin-babel/src/.browserslistrc                        |    2 +
 packages/{cli/src/config => plugin-babel/src}/babel.config.js    |   21 +-
 packages/plugin-babel/src/index.js                               |   78 +
 packages/plugin-babel/test/cases/default/babel.config.js         |    6 +
 packages/plugin-babel/test/cases/default/default.spec.js         |   76 +
 packages/plugin-babel/test/cases/default/greenwood.config.js     |    7 +
 packages/plugin-babel/test/cases/default/src/pages/index.html    |   12 +
 packages/plugin-babel/test/cases/default/src/scripts/main.js     |   18 +
 .../test/cases/options.extend-config/babel.config.js             |    6 +
 .../test/cases/options.extend-config/greenwood.config.js         |    9 +
 .../cases/options.extend-config/options.extend-config.spec.js    |   93 +
 .../test/cases/options.extend-config/src/pages/index.html        |   12 +
 .../test/cases/options.extend-config/src/scripts/main.js         |   18 +
 packages/plugin-google-analytics/package.json                    |    4 +-
 packages/plugin-graphql/README.md                                |   84 +
 packages/plugin-graphql/package.json                             |   35 +
 packages/{cli/src/data => plugin-graphql/src/core}/cache.js      |   29 +-
 packages/{cli/src/data => plugin-graphql/src/core}/client.js     |   32 +-
 packages/plugin-graphql/src/core/common.client.js                |   23 +
 packages/plugin-graphql/src/core/common.server.js                |   23 +
 packages/{cli/src/data => plugin-graphql/src/core}/server.js     |    4 +-
 packages/plugin-graphql/src/index.js                             |  121 ++
 packages/plugin-graphql/src/queries/children.gql                 |   11 +
 packages/{cli/src/data => plugin-graphql/src}/queries/config.gql |    0
 packages/plugin-graphql/src/queries/graph.gql                    |   11 +
 packages/{cli/src/data => plugin-graphql/src}/queries/menu.gql   |    6 +-
 packages/{cli/src/data => plugin-graphql/src}/schema/config.js   |    0
 packages/{cli/src/data => plugin-graphql/src}/schema/graph.js    |   81 +-
 packages/{cli/src/data => plugin-graphql/src}/schema/schema.js   |    0
 .../plugin-graphql/test/cases/query-children/greenwood.config.js |   10 +
 packages/plugin-graphql/test/cases/query-children/package.json   |    6 +
 .../test/cases/query-children/src/components/posts-list.js       |   55 +
 .../test/cases/query-children/src/pages/blog/first-post/index.md |    8 +
 .../cases/query-children/src/pages/blog/second-post/index.md     |    8 +
 .../test/cases/query-children/src/pages/index.html               |   12 +
 .../plugin-graphql/test/cases/query-config/greenwood.config.js   |   10 +
 .../plugin-graphql/test/cases/query-config/query-config.spec.js  |  110 ++
 .../test/cases/query-config/src/components/footer.js             |   22 +
 .../plugin-graphql/test/cases/query-config/src/pages/index.html  |   12 +
 .../test/cases/query-custom-frontmatter/greenwood.config.js      |    9 +
 .../test/cases/query-custom-frontmatter/package.json             |    6 +
 .../query-custom-frontmatter/query-custom-frontmatter.spec.js    |  179 ++
 .../cases/query-custom-frontmatter/src/components/posts-list.js  |   66 +
 .../query-custom-frontmatter}/src/pages/blog/first-post/index.md |    3 +-
 .../src/pages/blog/second-post/index.md                          |    3 +-
 .../test/cases/query-custom-frontmatter/src/pages/index.html     |   12 +
 .../plugin-graphql/test/cases/query-graph/greenwood.config.js    |    9 +
 packages/plugin-graphql/test/cases/query-graph/package.json      |    6 +
 .../plugin-graphql/test/cases/query-graph/query-graph.spec.js    |  152 ++
 .../test/cases/query-graph/src/components/debug-output.js        |   48 +
 .../test/cases/query-graph}/src/pages/blog/first-post.md         |    0
 .../test/cases/query-graph}/src/pages/blog/second-post.md        |    0
 .../plugin-graphql/test/cases/query-graph/src/pages/index.html   |   13 +
 .../plugin-graphql/test/cases/query-menu/greenwood.config.js     |    9 +
 packages/plugin-graphql/test/cases/query-menu/package.json       |    6 +
 packages/plugin-graphql/test/cases/query-menu/query-menu.spec.js |  161 ++
 .../test/cases/query-menu}/src/components/header.js              |   10 +-
 packages/plugin-graphql/test/cases/query-menu/src/pages/about.md |    7 +
 .../plugin-graphql/test/cases/query-menu/src/pages/contact.md    |    7 +
 packages/plugin-graphql/test/cases/query-menu/src/pages/index.md |    3 +
 .../plugin-graphql/test/cases/query-menu/src/templates/page.html |   12 +
 .../test/unit/data => plugin-graphql/test/unit}/common.spec.js   |   29 +-
 .../test/unit/data => plugin-graphql/test/unit}/mocks/config.js  |    3 +-
 packages/plugin-graphql/test/unit/mocks/graph.js                 | 2274 ++++++++++++++++++++++++
 .../unit/data => plugin-graphql/test/unit}/schema/config.spec.js |    2 +-
 .../data => plugin-graphql/test/unit}/schema/graph.menu.spec.js  |  138 +-
 .../unit/data => plugin-graphql/test/unit}/schema/graph.spec.js  |   45 +-
 packages/plugin-import-commonjs/package.json                     |    4 +-
 packages/plugin-import-commonjs/src/index.js                     |    3 +-
 packages/plugin-import-css/package.json                          |    4 +-
 packages/plugin-polyfills/package.json                           |    4 +-
 packages/plugin-postcss/README.md                                |   28 +-
 packages/plugin-postcss/package.json                             |   10 +-
 packages/plugin-postcss/src/.browserslistrc                      |    2 +
 packages/plugin-postcss/src/index.js                             |   39 +-
 packages/plugin-postcss/src/postcss.config.js                    |    5 +
 packages/plugin-postcss/test/cases/default/default.spec.js       |    9 +-
 packages/plugin-postcss/test/cases/default/src/styles/main.css   |    7 +-
 .../test/cases/options.extend-config/greenwood.config.js         |    7 +
 .../cases/options.extend-config/options.extend-config.spec.js    |   75 +
 .../cases/{default => options.extend-config}/postcss.config.js   |    0
 .../test/cases/options.extend-config/src/pages/index.html        |   12 +
 .../test/cases/options.extend-config/src/styles/main.css         |    8 +
 www/components/header/header.js                                  |   26 +-
 www/components/shelf/shelf.js                                    |   62 +-
 www/package.json                                                 |    2 +-
 www/pages/docs/data.md                                           |  164 +-
 www/pages/docs/front-matter.md                                   |    4 +-
 www/pages/docs/index.md                                          |    2 +-
 www/pages/docs/menus.md                                          |   39 +-
 www/pages/plugins/custom-plugins.md                              |    1 +
 yarn.lock                                                        | 2647 +++++++++++++++++++++++++++-
 128 files changed, 7304 insertions(+), 1458 deletions(-)

Lighthouse

greenwood - v0.10.0-alpha.7

Published by thescientist13 over 3 years ago

Overview

This alpha.7 release upgrade the project to Node v12.x as the minimum version and has a bunch of bug fixes including some of the ongoing known issues. 💯

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save-dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

NodeJS

Depending on your setup, you should plan to starting using Node >= 12.x for Greenwood.

Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. handle bare imports in <head> tags
  2. fix merge order of template <head> tags
  3. ensure proper closing tag semantics
  4. restored default <meta> tags for default app template
  5. better support for top level pages
  6. formalize NodeJS v12 as minimum
  7. fix import CSS not working in non Chrome browsers
  8. fix only adding JS entry points to importMap

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. Restore GraphQL support
  2. Restore optimizations and MPA support
  3. Restore Babel / Browserslist support

Diff

$ git diff v0.10.0-alpha.6 v0.10.0-alpha.7 --stat
 .github/workflows/ci.yml                                                   |   2 +-
 lerna.json                                                                 |   2 +-
 packages/cli/package.json                                                  |   8 +-
 packages/cli/src/config/rollup.config.js                                   | 261 ++++++++++++++++++++++++----------
 packages/cli/src/plugins/resource/plugin-node-modules.js                   |   9 +-
 packages/cli/src/plugins/resource/plugin-standard-html.js                  |  60 ++++++--
 packages/cli/src/templates/app.html                                        |   7 +-
 .../build.default.import-node-modules.spec.js                              |  97 +++++++++++--
 packages/cli/test/cases/build.default.import-node-modules/package.json     |   3 +-
 .../cli/test/cases/build.default.import-node-modules/src/pages/index.html  |   9 ++
 .../build.default.workspace-javascript-css.spec.js                         | 151 ++++++++++++++++++++
 .../test/cases/build.default.workspace-javascript-css/src/pages/index.html |  29 ++++
 .../test/cases/build.default.workspace-javascript-css/src/scripts/main.js  |   1 +
 .../test/cases/build.default.workspace-javascript-css/src/scripts/other.js |   1 +
 .../test/cases/build.default.workspace-javascript-css/src/styles/main.css  |   3 +
 .../build.default.workspace-template-page-and-app.spec.js                  | 129 +++++++++++++++++
 .../src/scripts/app-template-one.js                                        |   1 +
 .../src/scripts/app-template-two.js                                        |   1 +
 .../src/scripts/page-template-one.js                                       |   1 +
 .../src/scripts/page-template-two.js                                       |   1 +
 .../src/styles/app-template-one.css                                        |   3 +
 .../src/styles/app-template-two.css                                        |   3 +
 .../src/styles/page-template-one.css                                       |   3 +
 .../src/styles/page-template-two.css                                       |   3 +
 .../build.default.workspace-template-page-and-app/src/templates/app.html   |  29 ++++
 .../build.default.workspace-template-page-and-app/src/templates/page.html  |  37 +++++
 .../build.default.workspace-template-page-style.spec.js                    | 104 --------------
 .../build.default.workspace-template-page-style/src/templates/page.html    |  49 -------
 .../build.default.workspace-template-page.spec.js                          |  74 +++++++++-
 .../test/cases/build.default.workspace-template-page/src/scripts/main.js   |   1 +
 .../src/styles/theme.css                                                   |   0
 .../cases/build.default.workspace-template-page/src/templates/page.html    |  24 +++-
 .../build.default.workspace-top-level-pages.spec.js                        | 114 +++++++++++++++
 .../cases/build.default.workspace-top-level-pages/src/pages/about.html     |   9 ++
 .../cases/build.default.workspace-top-level-pages/src/pages/contact.md     |   3 +
 .../cases/build.default.workspace-top-level-pages/src/pages/index.html     |   8 ++
 packages/cli/test/cases/build.default/build.default.spec.js                |  50 ++++++-
 packages/plugin-google-analytics/package.json                              |   4 +-
 packages/plugin-import-commonjs/package.json                               |   4 +-
 packages/plugin-import-css/package.json                                    |   4 +-
 packages/plugin-import-css/src/index.js                                    |   2 +-
 packages/plugin-polyfills/package.json                                     |   4 +-
 packages/plugin-postcss/package.json                                       |   4 +-
 www/package.json                                                           |   2 +-
 www/pages/docs/layouts.md                                                  |  46 +++++-
 www/pages/guides/cloudflare-workers-deployment.md                          |   2 +-
 www/pages/guides/s3-cloudfront.md                                          |   2 +-
 www/pages/index.html                                                       |   2 +-
 www/styles/page.css                                                        |   2 -
 www/templates/app.html                                                     |  25 ++--
 www/templates/page.html                                                    |   6 +-
 yarn.lock                                                                  |  40 +-----
 52 files changed, 1089 insertions(+), 350 deletions(-)

Lighthouse

greenwood - v0.10.0-alpha.6

Published by thescientist13 over 3 years ago

Overview

This alpha.6 is a small patch fix to address a missing module / dependency error blocking usage of the @greenwood/cli package from the previous release.

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save-dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

N / A

Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. module cssnano not found

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. Restore GraphQL support
  2. <link> tag detection is incorrect
  3. top level HTML page builds without the page content
  4. Restore optimizations and SPA support
  5. Restore Babel / Browserslist support
  6. plugin-import-css not working in (non Chrome) browsers like Safari and Firefox for development

Diff

$ git diff v0.10.0-alpha.5 v0.10.0-alpha.6 --stat
 lerna.json                                    | 2 +-
 packages/cli/package.json                     | 3 ++-
 packages/plugin-google-analytics/package.json | 4 ++--
 packages/plugin-import-commonjs/package.json  | 4 ++--
 packages/plugin-import-css/package.json       | 4 ++--
 packages/plugin-polyfills/package.json        | 4 ++--
 packages/plugin-postcss/package.json          | 4 ++--
 www/package.json                              | 2 +-
 8 files changed, 14 insertions(+), 13 deletions(-)

Lighthouse

greenwood - v0.10.0-alpha.5

Published by thescientist13 over 3 years ago

Overview

This alpha.5 release introduces a couple breaking changes but also provides the fallback for those by introducing three new plugins! In general, Greenwood wants to keep a lean core focused a very dedicated closeness to the web, and so for thins like being able to use import for non standard things (like CSS) have now been moved out to plugins that Greenwood provides. You of course can make your own for these, but Greenwood does want to provide a balance between all these, you can expect more plugins for Greenwood to support going forward as well, like TypeScript and Babel.

It also introduced two new plugin types:

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save-dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

PostCSS

if you want to use PostCSS, you will now need to install a plugin and include that in your greenwood.config.js. You can then create your own postcss.config.js and the plugin will forward your config onto

  1. Install plugin
    $ yarn add @greenwood/plugin-postcss --dev
    
  2. Include the plugin in your greenwood.config.js
    const pluginPostcss = require('@greenwood/plugin-postcss');
    
    module.exports = {
    
      plugins: [
        pluginPostcss()
      ]
    }
    
  3. Provide your own postcss.config.js
    module.exports = {
      plugins: [
        require('postcss-nested') // as an example
      ]
    };
    
  4. Now you can use nested CSS
    header {
      & nav {
        /* some styles */
      }
    }
    

Import CSS

if you want to be able to import your CSS, you will now need to install a plugin and include that in your greenwood.config.js. You can then use ESM import syntax to get CSS as a string your JavaScript.

  1. Install plugin
    $ yarn add @greenwood/plugin-import-css --dev
    
  2. Include the plugin in your greenwood.config.js
    const pluginImportCss = require('@greenwood/plugin-import-css');
    
    module.exports = {
    
      plugins: [
         ...pluginImportCss() // notice the spread ... !
      ]
    }
    
  3. Now you can import CSS in your JS
    import css from './some-file.css';
    
    console.log(css); // will be a string of the contents of your CSS file
    

Import CommonJS

if you want to be able to import CommonJS modules (as are commonly found on NPM), you will now need to install a plugin and include that in your greenwood.config.js. You can then use ESM import syntax to load these types of modules, like lodash, in your JavaScript.

  1. Install plugin
    $ yarn add @greenwood/plugin-import-commonjs --dev
    
  2. Include the plugin in your greenwood.config.js
    const pluginImportCommonjs = require('@greenwood/plugin-import-commonjs');
    
    module.exports = {
    
      plugins: [
         ...pluginImportCommonjs() // notice the spread ... !
      ]
    }
    
  3. Now you can import CommonJS modules in your JS
    import _ from 'lodash';
    
    _.defaults({ 'a': 1 }, { 'a': 3, 'b': 2 }) // → { 'a': 1, 'b': 2 }
    

Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. Server Plugin API
  2. PostCSS and import CSS as plugins, and new Rollup Plugin
  3. Support for import for CommonJS modules, as a plugin

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. module cssnano not found
  2. Restore GraphQL support
  3. <link> tag detection is incorrect
  4. top level HTML page builds without the page content
  5. Restore optimizations and SPA support
  6. Restore Babel / Browserslist support

Diff

$ git diff v0.10.0-alpha.4 v0.10.0-alpha.5 --stat
 greenwood.config.js                                                        |   6 +-
 lerna.json                                                                 |   2 +-
 netlify.toml                                                               |   5 +-
 packages/cli/package.json                                                  |  16 +--
 packages/cli/src/commands/develop.js                                       |  27 +++--
 packages/cli/src/config/postcss.config.js                                  |   5 -
 packages/cli/src/config/rollup.config.js                                   | 183 ++++++++++++++++++++------------
 packages/cli/src/lib/resource-interface.js                                 |  51 +++++----
 packages/cli/src/lib/server-interface.js                                   |  18 ++++
 packages/cli/src/lifecycles/config.js                                      |   2 +-
 packages/cli/src/lifecycles/graph.js                                       |   5 +-
 packages/cli/src/lifecycles/serialize.js                                   |   5 +-
 packages/cli/src/lifecycles/serve.js                                       |  73 ++++++++-----
 packages/cli/src/plugins/resource/plugin-node-modules.js                   | 158 +++++++++++++++++++++-------
 packages/cli/src/plugins/resource/plugin-standard-css.js                   |  63 ++++++-----
 packages/cli/src/plugins/resource/plugin-standard-html.js                  |  32 ++----
 packages/cli/src/plugins/resource/plugin-standard-javascript.js            |   2 +
 packages/cli/src/plugins/resource/plugin-standard-json.js                  |   2 +
 packages/cli/src/plugins/resource/plugin-user-workspace.js                 |   7 +-
 packages/cli/src/plugins/server/plugin-livereload.js                       |  58 +++++++++++
 .../build.default.import-node-modules.spec.js                              | 191 ++++++++++++++++++++++++++++++++++
 packages/cli/test/cases/build.default.import-node-modules/package.json     |   9 ++
 .../cli/test/cases/build.default.import-node-modules/src/pages/index.html  |  16 +++
 .../cli/test/cases/build.default.import-node-modules/src/scripts/main.js   |   9 ++
 .../test/cases/build.plugins.error-type/build.plugins.error-type.spec.js   |   2 +-
 packages/plugin-google-analytics/README.md                                 |  20 ++--
 packages/plugin-google-analytics/package.json                              |  10 +-
 packages/plugin-google-analytics/src/index.js                              |   9 +-
 packages/plugin-import-commonjs/README.md                                  |  45 ++++++++
 packages/plugin-import-commonjs/package.json                               |  33 ++++++
 packages/plugin-import-commonjs/src/index.js                               |  95 +++++++++++++++++
 packages/plugin-import-commonjs/test/cases/default/default.spec.js         |  88 ++++++++++++++++
 packages/plugin-import-commonjs/test/cases/default/greenwood.config.js     |   7 ++
 packages/plugin-import-commonjs/test/cases/default/package.json            |   6 ++
 packages/plugin-import-commonjs/test/cases/default/src/pages/index.html    |  13 +++
 packages/plugin-import-commonjs/test/cases/default/src/scripts/main.js     |   4 +
 packages/plugin-import-css/README.md                                       |  41 ++++++++
 packages/plugin-import-css/package.json                                    |  31 ++++++
 packages/plugin-import-css/src/index.js                                    |  56 ++++++++++
 packages/plugin-import-css/test/cases/default/default.spec.js              |  67 ++++++++++++
 packages/plugin-import-css/test/cases/default/greenwood.config.js          |   7 ++
 packages/plugin-import-css/test/cases/default/src/main.js                  |   3 +
 packages/plugin-import-css/test/cases/default/src/pages/index.html         |  13 +++
 packages/plugin-import-css/test/cases/default/src/styles.css               |   3 +
 packages/plugin-polyfills/README.md                                        |  16 ++-
 packages/plugin-polyfills/package.json                                     |  10 +-
 packages/plugin-polyfills/src/index.js                                     |   8 +-
 packages/plugin-postcss/README.md                                          |  56 ++++++++++
 packages/plugin-postcss/package.json                                       |  28 +++++
 packages/plugin-postcss/src/index.js                                       |  79 ++++++++++++++
 .../test/cases/default/default.spec.js}                                    |   9 ++
 packages/plugin-postcss/test/cases/default/greenwood.config.js             |   7 ++
 .../test/cases/default}/postcss.config.js                                  |   0
 .../test/cases/default}/src/pages/index.html                               |   0
 .../test/cases/default}/src/styles/main.css                                |   0
 www/package.json                                                           |   2 +-
 www/pages/docs/build.md                                                    | 116 ---------------------
 www/pages/docs/css-and-images.md                                           |   2 +-
 www/pages/docs/front-matter.md                                             |   2 +-
 www/pages/docs/markdown.md                                                 |   2 +-
 www/pages/plugins/custom-plugins.md                                        |   3 +
 www/pages/plugins/index.md                                                 |   7 +-
 www/pages/plugins/resource.md                                              |  71 +++++++++----
 www/pages/plugins/rollup.md                                                |  32 ++++++
 www/pages/plugins/server.md                                                |  64 ++++++++++++
 yarn.lock                                                                  |  96 ++++++++++++++++-
 66 files changed, 1687 insertions(+), 421 deletions(-)

Lighthouse

greenwood - v0.10.0-alpha.4

Published by thescientist13 over 3 years ago

Overview

This alpha.4 release introduces a redesign of how Plugins will work in Greenwood, by removing composite, webpack, and index, options, and introducing the Resource plugin. Plugin docs have been updated accordingly. This release also fixes some bugs with building pages that have index in the filename, now correctly supports custom markdown and settings, and documents some known issues with using <slot>s. You can find our latest docs here as built from the release/0.10.0 branch.

It was realized after the release that the README for each Plugin wasn't updated, for now use our notes in this document.

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

Plugins

Aside from how plugins work now, for both of Greenwood's current plugins, the usage in your greenwood.config.js has changed slightly.

// before
module.exports = {
  ...

 plugins: [
    ...pluginPolyfills()
 ]
}

// after
module.exports = {
  ...

 plugins: [
    pluginPolyfills(). // no more destructuring
 ]
}

Please see the previous release notes for any previously documented breaking changes 👆

Key Changes

Changelog

  1. Resource API
  2. Plugins documentation
  3. Documentation related to usage of <slot> and duplicate content when pre-rendering
  4. Fixed issue with missing build output when page name includes index in the filename
  5. Made URLs "pretty" when running serve command
  6. Correctly support custom markdown plugins and settings

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. support common node module package resolutions
  2. Restore GraphQL support
  3. <link> tag detection is incorrect
  4. top level HTML page builds without the page content
  5. Restore optimizations and SPA support
  6. Restore Babel / Browserslist support

Diff

$ git diff v0.10.0-alpha.3 v0.10.0-alpha.4 --stat
 greenwood.config.js                                                   |  19 ++-
 lerna.json                                                            |   2 +-
 packages/cli/package.json                                             |   2 +-
 packages/cli/src/config/rollup.config.js                              |  27 +++-
 packages/cli/src/lib/resource-interface.js                            |  62 ++++++++
 packages/cli/src/lifecycles/config.js                                 |  36 +++--
 packages/cli/src/lifecycles/graph.js                                  |   6 +
 packages/cli/src/lifecycles/serialize.js                              |  41 +++--
 packages/cli/src/lifecycles/serve.js                                  | 179 +++++++++++++--------
 packages/cli/src/plugins/resource/plugin-node-modules.js              | 108 +++++++++++++
 .../transform.css.js => plugins/resource/plugin-standard-css.js}      |  46 +++---
 packages/cli/src/plugins/resource/plugin-standard-font.js             |  38 +++++
 packages/cli/src/plugins/resource/plugin-standard-html.js             | 274 ++++++++++++++++++++++++++++++++
 packages/cli/src/plugins/resource/plugin-standard-image.js            |  55 +++++++
 packages/cli/src/plugins/resource/plugin-standard-javascript.js       |  37 +++++
 packages/cli/src/plugins/resource/plugin-standard-json.js             |  54 +++++++
 packages/cli/src/plugins/resource/plugin-user-workspace.js            |  33 ++++
 packages/cli/src/transforms/transform.assets.js                       |  59 -------
 packages/cli/src/transforms/transform.html.js                         |  50 ------
 packages/cli/src/transforms/transform.interface.js                    |  24 ---
 packages/cli/src/transforms/transform.js.js                           |  38 -----
 packages/cli/src/transforms/transform.json.js                         |  45 ------
 packages/cli/src/transforms/transform.md.js                           | 109 -------------
 packages/cli/src/transforms/transform.tools.js                        | 183 ---------------------
 .../build.config.markdown-custom.spec.js                              |  12 +-
 .../build.config.markdown-custom.settings.spec.js                     |  24 ++-
 packages/cli/test/cases/build.default.markdown/src/pages/index.md     |   2 +-
 .../build.default.workspace-getting-started.spec.js                   |   4 +
 .../build.default.workspace-getting-started/src/templates/blog.html   |   1 +
 .../build.default.workspace-user-directory-mapping.spec.js            |  10 +-
 .../cli/test/cases/build.plugins-index/build.plugins-index.spec.js    |  85 ----------
 packages/cli/test/cases/build.plugins-index/greenwood.config.js       |  31 ----
 .../test/cases/build.plugins-webpack/build-plugins-webpack.spec.js    |  78 ---------
 packages/cli/test/cases/build.plugins-webpack/greenwood.config.js     |  13 --
 .../cases/build.plugins.error-name/build.plugins.error-name.spec.js   |  49 ++++++
 packages/cli/test/cases/build.plugins.error-name/greenwood.config.js  |   8 +
 .../build.plugins.error-provider.spec.js}                             |   7 +-
 .../greenwood.config.js                                               |   2 +-
 .../build.plugins.error-type.spec.js}                                 |  10 +-
 .../greenwood.config.js                                               |   0
 .../build.plugins.resource/build.config.plugins-resource.spec.js      |  70 ++++++++
 packages/cli/test/cases/build.plugins.resource/greenwood.config.js    |  36 +++++
 .../cases/build.plugins.resource/src/foo-files/my-custom-file.foo     |   9 ++
 .../build.plugins.resource/src/foo-files/my-other-custom-file.foo     |   8 +
 packages/cli/test/cases/build.plugins.resource/src/pages/index.html   |  13 ++
 packages/plugin-google-analytics/package.json                         |   4 +-
 packages/plugin-google-analytics/src/index.js                         |  56 ++++---
 packages/plugin-google-analytics/test/cases/default/default.spec.js   |   9 +-
 .../plugin-google-analytics/test/cases/default/greenwood.config.js    |   2 +-
 .../test/cases/error-analytics-id/error-analytics-id.spec.js          |   6 +-
 .../test/cases/error-analytics-id/greenwood.config.js                 |   2 +-
 .../test/cases/option-anonymous/greenwood.config.js                   |   2 +-
 .../test/cases/option-anonymous/option-anonymous.spec.js              |   8 +-
 packages/plugin-polyfills/package.json                                |   4 +-
 packages/plugin-polyfills/src/index.js                                |  89 +++++++----
 packages/plugin-polyfills/test/cases/default/default.spec.js          |  42 ++++-
 packages/plugin-polyfills/test/cases/default/greenwood.config.js      |   2 +-
 www/components/card/card.css                                          |  64 ++------
 www/components/card/card.js                                           |  15 +-
 www/components/row/row.js                                             |  19 ---
 www/components/scroll/scroll.js                                       |   4 +-
 www/components/shelf/shelf.js                                         |  20 ++-
 www/package.json                                                      |   3 +-
 www/pages/docs/component-model.md                                     |  17 +-
 www/pages/index.html                                                  |  39 +++--
 www/pages/plugins/{composite-plugins.md => custom-plugins.md}         |   8 +-
 www/pages/plugins/index-hooks.md                                      | 111 -------------
 www/pages/plugins/index.md                                            |  64 ++++----
 www/pages/plugins/resource.md                                         | 132 +++++++++++++++
 www/pages/plugins/webpack.md                                          |  45 ------
 www/styles/home.css                                                   |  18 ++-
 www/styles/page.css                                                   |  28 ++--
 www/styles/theme.css                                                  |   7 +-
 www/templates/app.html                                                |   6 -
 yarn.lock                                                             |   2 +-
 75 files changed, 1546 insertions(+), 1281 deletions(-)

Lighthouse

greenwood-lighthouse-v0 10 0-alpha 4

greenwood -

Published by thescientist13 almost 4 years ago

Overview

This alpha.3 is a supplemental release to fix an issue when running the build task using an npm client.

_Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

None this release.

Please see the previous release notes for previously documented breaking changes 👆

Key Changes

Changelog

  1. rollup failing for npm based projects

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. Greenwood plugins not enabled
  2. Restore Babel / Browserslist support
  3. Restore GraphQL support
  4. Restore SPA support
  5. <slot> and LitElement output are rendering twice
  6. <link> tag detection is incorrect
  7. top level HTML page builds without the page content
  8. unexpected build artifacts
  9. Correctly support custom markdown plugins and settings

Diff

$ git diff v0.10.0-alpha.2 v0.10.0-alpha.3 --stat
 lerna.json                                    | 2 +-
 packages/cli/package.json                     | 2 +-
 packages/cli/src/config/rollup.config.js      | 2 +-
 packages/plugin-google-analytics/package.json | 4 ++--
 packages/plugin-polyfills/package.json        | 4 ++--
 5 files changed, 7 insertions(+), 7 deletions(-)
greenwood - v0.10.0-alpha.2

Published by thescientist13 almost 4 years ago

Overview

This alpha.2 release restores custom user PostCSS configuration as well as fixing bugs and known issues in this v0.10.0 pre-release line.
Additionally, technical documentation for the Docs and Getting Started pages have been update to correctly reflect the project's current usage instructions.

_Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes. For more high level details about this upgrade, you can check out or Request For Contributions Google doc to learn more about our current project Roadmap and direction. (please reach out if interested in helping!)

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can see an example of an upgrade in our Getting Started repo.

Breaking Changes

None this release.

Please see the previous release notes for previously documented breaking changes 👆

Key Changes

Changelog

  1. Restore userland PostCSS
  2. Revisit all technical documentation
  3. Fix default graph sorting (again), and finalized outstanding issue for having consistent routes

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. rollup failing for npm based projects
  2. Greenwood plugins not enabled
  3. Restore Babel / Browserslist support
  4. Restore GraphQL support
  5. Restore SPA support
  6. <slot> and LitElement output are rendering twice
  7. <link> tag detection is incorrect
  8. top level HTML page builds without the page content
  9. unexpected build artifacts

Diff

 .github/CONTRIBUTING.md                                               |  67 ++++++-
 lerna.json                                                            |   2 +-
 packages/cli/package.json                                             |   3 +-
 packages/cli/src/commands/develop.js                                  |   2 +-
 packages/cli/src/commands/eject.js                                    |   1 +
 packages/cli/src/config/rollup.config.js                              |  20 +-
 packages/cli/src/data/queries/config.gql                              |   4 +-
 packages/cli/src/data/schema/config.js                                |   4 +-
 packages/cli/src/lifecycles/config.js                                 |  27 +--
 packages/cli/src/lifecycles/context.js                                |  63 +------
 packages/cli/src/lifecycles/graph.js                                  | 312 +++++++++++---------------------
 packages/cli/src/lifecycles/serialize.js                              |  14 +-
 packages/cli/src/templates/404.html                                   |  16 --
 packages/cli/src/templates/app-template.js                            |  13 --
 packages/cli/src/templates/base-template.js                           | 104 -----------
 packages/cli/src/templates/hello.md                                   |   6 -
 packages/cli/src/templates/index.html                                 |  26 ---
 packages/cli/src/templates/index.md                                   |   7 -
 packages/cli/src/templates/page-template.js                           |  15 --
 packages/cli/src/transforms/transform.css.js                          |  18 +-
 .../build.config.error-public-path.spec.js                            |  45 -----
 .../cli/test/cases/build.config.error-public-path/greenwood.config.js |   3 -
 .../cli/test/cases/build.config.postcss/build.config.postcss.spec.js  |  43 ++---
 packages/cli/test/cases/build.config.postcss/postcss.config.js        |  10 +-
 packages/cli/test/cases/build.config.postcss/src/pages/hello.md       |  11 --
 packages/cli/test/cases/build.config.postcss/src/pages/index.html     |  12 ++
 packages/cli/test/cases/build.config.postcss/src/pages/index.md       |   3 -
 packages/cli/test/cases/build.config.postcss/src/styles/main.css      |   8 +
 .../cases/build.config.public-path/build.config.public-path.spec.js   |  63 -------
 packages/cli/test/cases/build.config.public-path/greenwood.config.js  |   3 -
 .../test/cases/build.default.webpack/build.default.webpack.spec.js    |  66 -------
 .../cli/test/cases/build.default.webpack/webpack.config.common.js     | 173 ------------------
 .../cli/test/cases/build.default.webpack/webpack.config.develop.js    |  93 ----------
 packages/cli/test/cases/build.default.webpack/webpack.config.prod.js  |  17 --
 .../build.default.workspace-nested.spec.js                            | 121 +++++++++++--
 .../build.default.workspace-nested/src/pages/blog/2017/03/26/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/03/30/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/04/10/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/04/22/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/05/05/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/06/07/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/09/10/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2017/10/15/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2018/01/24/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2018/05/16/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2018/06/06/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2018/09/26/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2018/10/28/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2018/11/19/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2019/11/11/index.md |   6 +
 .../cases/build.default.workspace-nested/src/pages/blog/2019/index.md |   8 -
 .../build.default.workspace-nested/src/pages/blog/2020/04/07/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2020/08/15/index.md |   6 +
 .../build.default.workspace-nested/src/pages/blog/2020/10/28/index.md |   6 +
 .../test/cases/build.default.workspace-nested/src/pages/blog/index.md |   3 +
 .../test/cases/build.default.workspace-nested/src/pages/index.html    |   8 +
 .../cli/test/cases/build.default.workspace-nested/src/pages/index.md  |   3 -
 .../build.default.workspace-user-directory-mapping.spec.js            |  37 +++-
 .../src/pages/plugins/index-hooks.md                                  |   3 +
 .../src/pages/plugins/index.md                                        |   3 +
 packages/cli/test/unit/data/mocks/config.js                           |   1 -
 packages/cli/test/unit/data/schema/config.spec.js                     |  24 ---
 packages/plugin-google-analytics/package.json                         |   4 +-
 packages/plugin-polyfills/package.json                                |   4 +-
 postcss.config.js                                                     |  10 +-
 www/components/banner/banner.css                                      | 113 ++++++------
 www/components/card/card.css                                          | 112 ++++++------
 www/components/footer/footer.css                                      |  32 ++--
 www/components/header/header.css                                      | 148 ++++++++-------
 www/components/header/header.js                                       |   3 +-
 www/components/row/row.css                                            |   2 +-
 www/components/shelf/shelf.css                                        | 171 +++++++++--------
 www/components/social-icons/social-icons.css                          |   2 +-
 www/package.json                                                      |   3 +-
 www/pages/about/how-it-works.md                                       |   4 +-
 www/pages/docs/build.md                                               |  63 ++++++-
 www/pages/docs/component-model.md                                     |  93 +++++-----
 www/pages/docs/configuration.md                                       |  53 ++----
 www/pages/docs/css-and-images.md                                      | 161 ++++++----------
 www/pages/docs/data.md                                                |  39 ++--
 www/pages/docs/front-matter.md                                        |  18 +-
 www/pages/docs/index.md                                               |  52 ++++--
 www/pages/docs/layouts.md                                             | 142 ++++++++++-----
 www/pages/docs/markdown.md                                            |  84 ++++++---
 www/pages/docs/menus.md                                               |  15 +-
 www/pages/docs/tech-stack.md                                          |  22 ++-
 www/pages/getting-started/branding.md                                 | 117 ++++++------
 www/pages/getting-started/build-and-deploy.md                         |   2 +-
 www/pages/getting-started/creating-content.md                         |  85 ++++-----
 www/pages/getting-started/index.md                                    |  10 +-
 www/pages/getting-started/key-concepts.md                             |  57 +++---
 www/pages/getting-started/next-steps.md                               |  19 +-
 www/pages/getting-started/project-setup.md                            |  24 ++-
 www/pages/guides/cloudflare-workers-deployment.md                     |   4 +-
 www/pages/guides/firebase.md                                          |   2 +-
 www/pages/guides/netlify-cms.md                                       |   4 +-
 www/pages/guides/s3-cloudfront.md                                     |   4 +-
 www/pages/plugins/index-hooks.md                                      |   8 +-
 www/pages/plugins/webpack.md                                          |   2 +-
 www/styles/home.css                                                   |  25 ++-
 www/styles/page.css                                                   |  73 ++++----
 www/styles/theme.css                                                  |  34 ++--
 yarn.lock                                                             |  17 ++
 103 files changed, 1470 insertions(+), 1960 deletions(-)
greenwood - v0.10.0-alpha.1

Published by thescientist13 almost 4 years ago

Overview

This alpha.1 release is a supplemental release to the prior alpha.0 release. It aims to fix a bug that prevented installation without having to install the fs-extras manually.

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release. Please read here for the previous release's release notes.

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can find the latest version of the website and docs here as a preview deploy of the PR for the release/0.10.0 branch, though these are still out of date, but you can see an example of an upgrade in our Getting Started repo.

Unfortunately there is not a lot of content on this paradigm shift yet from the projects POV, but you can gain some insight via this proof of concept repo and eventually the website and a blog post will accompany the official 0.10.0 release when it comes out, likely in mid 2021.

Breaking Changes

None this release.

Please see the previous release notes for previously documented breaking changes 👆

Key Changes

Changelog

  1. commands not working due to fs-extras dependency missing
  2. HTML in markdown rendering being escaped / rendered

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. Greenwood plugins not enabled
  2. Restore Babel / PostCSS support
  3. Restore GraphQL support
  4. Restore SPA support
  5. <slot> and LitElement output are rendering twice
  6. update project's technical documentation
  7. <link> tag detection is incorrect
  8. top level HTML page builds without the page content
  9. unexpected build artifacts

Diff

git diff v0.10.0-alpha.0 v0.10.0-alpha.1 --stat
 .github/workflows/release.yml                      |  39 ++++++++
 lerna.json                                         |   2 +-
 packages/cli/package.json                          |   3 +-
 packages/cli/src/data/cache.js                     |   2 +-
 packages/cli/src/lifecycles/config.js              |   6 +-
 packages/cli/src/lifecycles/context.js             |   8 +-
 packages/cli/src/lifecycles/graph.js               |  15 +--
 packages/cli/src/transforms/transform.md.js        |   2 +
 .../build.default.markdown.spec.js                 |  15 ++-
 .../build.default.markdown/src/pages/index.md      |   4 +-
 .../test/cases/eject.default/eject.default.spec.js |   8 +-
 packages/plugin-google-analytics/package.json      |   4 +-
 packages/plugin-polyfills/package.json             |   4 +-
 test/test-bed.js                                   |  24 +++--
 yarn.lock                                          | 105 ++++++++++++++++++++-
 15 files changed, 203 insertions(+), 38 deletions(-)
greenwood - v0.10.0-alpha.0

Published by thescientist13 almost 4 years ago

Overview

This alpha.0 release is intended to start a preview line of releases to demonstrate and validate a new approach being taken with Greenwood. From new features like a focus on "bundleless" development, platform first developer experience, and trading in webpack* for a smaller collection of more focused packages like rollup and koa, Greenwood is embracing a paradigm shift in the not only how the project will be designed, but in how we can help deliver great developer and user experiences.

Note: Each 0.10.0-alpha.N release will build upon itself release notes wise, with the sum all release notes being included in the final, actual 0.10.0 release.

To test this upgrade, you can run the following

# npm
$ npm install @greenwood/[email protected] --save dev

# yarn
$ yarn add @greenwood/[email protected] --dev

You can find the latest version of the website and docs here as a preview deploy of the PR for the release/0.10.0.

Unfortunately there is not a lot of content on this paradigm shift yet from the projects POV, but you can gain some insight via this proof of concept repo and eventually the website and a blog post will accompany the official 0.10.0 release when it comes out, likely in mid 2021.

Breaking Changes

For existing users, here is a list of breaking changes coming in the 0.10.0 release. You can see an example of an upgrade in our Getting Started repo.

Templates

The biggest change is that going froward Greenwood will default to supporting HTML and markdown as the principal content authoring experiences. This means that your templates/ need to be converted to HTML instead of JS.

Before

import { html, LitElement } from 'lit-element';
import '../components/footer/footer';
import '../styles/theme.css';
import pageCss from '../styles/home.css';

class PageTemplate extends LitElement {

  constructor() {
    super();
  }

  render() {
    return html`
      <style>
        ${pageCss}
      </style>

      <div class='wrapper'>
        <app-header></app-header>
         <entry></entry>
      </div>
    `;
  }
}

customElements.define('page-template', PageTemplate); 

After

<!DOCTYPE html>
<html lang="en" prefix="og:http://ogp.me/ns#">

  <head>
    <meta-outlet></meta-outlet>

    <script type="module" src="/components/header/header.js"></script>

    <link rel="stylesheet" href="/styles/theme.css"></link>
    <link rel="stylesheet" href="/styles/home.css"></link>
  </head>

  <body>

    <div class='wrapper'>
      <app-header></app-header>
      <content-outlet></content-outlet>
    </div>

  </body>
</html>

Some additional observations:

  • No need for "template" in the filename anymore, just page.html is sufficient
  • Now have to explicitly defined a <meta-outlet> custom element to load in your meta data from greenwood.config.js
  • <entry> has been replaced by <content-outlet>
  • All paths need to assume a web root and start with / for now
  • No more support for theme.css, you can now load CSS however you like
  • You'll need to install lit-element / lit-html yourself if you still need access to those dependencies
  • Greenwood will support things like CSS-in-JS as well, but eventually those will be made their own plugins

Configuration

  • devServer.host has been removed with the removal of webpack (dev-server) but this should still work anyway.
  • publicPath has been removed with the removal of webpack but we will track adding it back in based on user needs.

PostCSS (Nested CSS)

Although PostCSS plugin support is not available in this pre-release, it is worth noting that when it is enabled, it will not include postcss-preset-env or postcss-nested so you will either need to:

  1. Not depend on nested CSS (or install postcss-nested)
  2. Install postcss-preset-env yourself

Serve

Greenwood now builds in its own serve command. You can add this to package.json to get a local web server and a production build for local testing

"scripts": {
  ...
  
   "serve": "greenwood serve"
},

Data

As noted in the Known Issues section below, GraphQL support is not available yet, however you will find that a ?graph.json file is being output to the output directory. You can use this to recreate the same functionality in your pages to keep your client side templating working.

// before
import client from '@greenwood/cli/data/client';
import ChildrenQuery from '../queries/children';

const posts = await client.query({
  query: ChildrenQuery,
  variables: {
    parent: 'blog'
  }
});

// after
const posts = await fetch('/graph.json')
  .then(resp => resp.json());
  .filter(page => page.route.indexOf(/blog[0-9]{4}/));

NodeJS version

The final release will include a deprecation of NodeJS v10.0, so please plan on upgrading to v12 (or v14).

Key Changes

Changelog

  1. Bundle-less Development
  2. CSS Bundling
  3. Introduction of Transforms API

Known Issues

A lot of features available in 0.9.0 of Greenwood are not available at this time in this release. The full list of outstanding items is here, with the main ones being captured below for quick reference:

  1. fs-extras dependency missing
  2. HTML in markdown rendering being escaped / rendered
  3. Greenwood plugins not enabled
  4. Restore Babel / PostCSS support
  5. Restore GraphQL support
  6. Restore SPA support
  7. <slot>s are rendering twice
  8. update project's technical documentation
  9. <link> tag detection is incorrect
  10. top level HTML page builds without the page content
  11. unexpected build artifacts

Diff

% git diff v0.9.0 v0.10.0-alpha.0 --stat
 .eslintrc.js                                                  |   12 +-
 .mocharc.js                                                   |    3 +-
 README.md                                                     |   10 +-
 greenwood.config.js                                           |   24 +-
 lerna.json                                                    |    2 +-
 nyc.config.js                                                 |    4 +-
 package.json                                                  |    4 +-
 packages/cli/package.json                                     |   68 +-
 packages/cli/src/commands/build.js                            |   33 +
 packages/cli/src/commands/develop.js                          |   30 +
 packages/cli/src/{tasks => commands}/eject.js                 |    0
 packages/cli/src/commands/serve.js                            |   20 +
 packages/cli/src/config/postcss.config.js                     |    8 +-
 packages/cli/src/config/rollup.config.js                      |  244 +
 packages/cli/src/config/webpack.config.common.js              |  172 -
 packages/cli/src/config/webpack.config.develop.js             |   93 -
 packages/cli/src/config/webpack.config.prod.js                |   17 -
 packages/cli/src/index.js                                     |  100 +-
 packages/cli/src/lib/browser.js                               |   28 +-
 packages/cli/src/lifecycles/bundle.js                         |   22 +
 packages/cli/src/lifecycles/compile.js                        |   17 +-
 packages/cli/src/lifecycles/config.js                         |   54 +-
 packages/cli/src/lifecycles/context.js                        |  125 +-
 packages/cli/src/lifecycles/copy.js                           |   77 +
 packages/cli/src/lifecycles/graph.js                          |   64 +-
 packages/cli/src/lifecycles/scaffold.js                       |  155 -
 packages/cli/src/lifecycles/serialize.js                      |  112 +-
 packages/cli/src/lifecycles/serve.js                          |  135 +
 packages/cli/src/tasks/build.js                               |   42 -
 packages/cli/src/tasks/develop.js                             |   25 -
 packages/cli/src/templates/app.html                           |   15 +
 packages/cli/src/transforms/transform.assets.js               |   59 +
 packages/cli/src/transforms/transform.css.js                  |   47 +
 packages/cli/src/transforms/transform.html.js                 |   50 +
 packages/cli/src/transforms/transform.interface.js            |   24 +
 packages/cli/src/transforms/transform.js.js                   |   38 +
 packages/cli/src/transforms/transform.json.js                 |   45 +
 packages/cli/src/transforms/transform.md.js                   |  107 +
 packages/cli/src/transforms/transform.tools.js                |  183 +
 .../test/cases/build.config.babel/build.config.babel.spec.js  |    2 +-
 .../cases/build.config.default/build.config.default.spec.js   |    3 +-
 .../build.config.error-mode/build.config.error-mode.spec.js   |    2 +-
 .../build.config.error-theme-file.spec.js                     |    2 +-
 .../build.config.markdown-custom.spec.js                      |   31 +-
 .../build.config.markdown-custom.plugins/greenwood.config.js  |    5 +-
 .../build.config.markdown-custom.plugins/src/pages/index.md   |    9 +
 .../build.config.markdown-custom.settings.spec.js             |    2 +-
 .../test/cases/build.config.meta/build.config.meta.spec.js    |   18 +-
 .../test/cases/build.config.mode/build.config.mode.spec.js    |    2 +-
 .../cases/build.config.postcss/build.config.postcss.spec.js   |    2 +-
 .../build.config.public-path/build.config.public-path.spec.js |    2 +-
 .../test/cases/build.config.theme/build.config.theme.spec.js  |    2 +-
 .../test/cases/build.config.title/build.config.title.spec.js  |   87 +-
 .../cases/build.config.title/src/pages/{hello.md => about.md} |    7 +-
 .../build.config.workspace-custom.spec.js                     |    3 +-
 .../build.data.graph-custom-frontmatter.spec.js               |    2 +-
 .../cli/test/cases/build.data.graph/build.data.graph.spec.js  |    2 +-
 .../build.default.markdown/build.default.markdown.spec.js     |   76 +
 .../cli/test/cases/build.default.markdown/src/pages/index.md  |    7 +
 .../cases/build.default.webpack/build.default.webpack.spec.js |    2 +-
 .../build.default.workspace-assets.spec.js                    |    3 +-
 .../build.default.workspace-getting-started.spec.js           |  202 +-
 .../src/components/footer.js                                  |    2 +-
 .../src/components/header.js                                  |    2 +-
 .../src/templates/blog-template.js                            |   26 -
 .../src/templates/blog.html                                   |   24 +
 .../src/templates/page-template.js                            |   32 -
 .../src/templates/page.html                                   |   32 +
 .../build.default.workspace-nested.spec.js                    |    3 +-
 .../build.default.workspace-template-app.spec.js              |   87 +-
 .../src/templates/app-template.js                             |   13 -
 .../src/templates/app.html                                    |   23 +
 .../build.default.workspace-template-page-style.spec.js       |   72 +-
 .../src/styles/style.css                                      |    7 -
 .../src/templates/page-template.js                            |   20 -
 .../src/templates/page.html                                   |   49 +
 .../build.default.workspace-template-page.spec.js             |    5 +-
 .../src/templates/page-template.js                            |   15 -
 .../src/templates/page.html                                   |   21 +
 .../build.default.workspace-user-directory-mapping.spec.js    |   93 +-
 .../src/components/header/header.js                           |   12 +-
 .../src/pages/pages.md                                        |    2 +-
 .../src/templates/page-template.js                            |   17 -
 .../src/templates/page.html                                   |   22 +
 packages/cli/test/cases/build.default/build.default.spec.js   |   40 +-
 .../build.plugins-error-provider.spec.js                      |    2 +-
 .../build.plugins-error-type/build.plugins-error-type.spec.js |    2 +-
 .../cases/build.plugins-index/build.plugins-index.spec.js     |    2 +-
 .../cases/build.plugins-webpack/build-plugins-webpack.spec.js |    2 +-
 packages/cli/test/cases/eject.default/eject.default.spec.js   |    2 +-
 packages/plugin-google-analytics/package.json                 |    4 +-
 .../test/cases/default/default.spec.js                        |    2 +-
 .../test/cases/error-analytics-id/error-analytics-id.spec.js  |    2 +-
 .../test/cases/option-anonymous/option-anonymous.spec.js      |    2 +-
 packages/plugin-polyfills/package.json                        |    4 +-
 packages/plugin-polyfills/test/cases/default/default.spec.js  |    2 +-
 postcss.config.js                                             |   14 +-
 test/smoke-test.js                                            |   51 +-
 test/test-bed.js                                              |    3 +
 www/assets/brand.png                                          |  Bin 2171 -> 0 bytes
 www/assets/evergreen.svg                                      |   45 +
 www/assets/greenwood-logo-1000w.png                           |  Bin 0 -> 90971 bytes
 www/assets/greenwood-logo-1500w.png                           |  Bin 0 -> 161680 bytes
 www/assets/{greenwood-logo.png => greenwood-logo-300w.png}    |  Bin
 www/assets/greenwood-logo-500w.png                            |  Bin 0 -> 31932 bytes
 www/assets/greenwood-logo-750w.png                            |  Bin 0 -> 59108 bytes
 www/assets/greenwood-logo-sml.jpg                             |  Bin 0 -> 5712 bytes
 www/components/banner/banner.css                              |  113 +-
 www/components/banner/banner.js                               |   32 +-
 www/components/banner/button.css                              |    2 +-
 www/components/card/card.css                                  |  106 +-
 www/components/card/card.js                                   |   12 +-
 www/components/footer/footer.css                              |   32 +-
 www/components/footer/footer.js                               |   19 +-
 www/components/header/header.css                              |  147 +-
 www/components/header/header.js                               |   51 +-
 www/components/icons/chevron-down.js                          |   11 +
 www/components/icons/chevron-down/chevron-down.js             |    8 -
 www/components/icons/chevron-right.js                         |   11 +
 www/components/icons/chevron-right/chevron-right.js           |    8 -
 www/components/icons/github-icon.js                           |    2 +-
 www/components/icons/slack-icon.js                            |    2 +-
 www/components/icons/twitter-icon.js                          |    2 +-
 www/components/row/row.js                                     |   16 +-
 www/components/scroll/scroll.js                               |    2 +-
 www/components/shelf/shelf.css                                |  171 +-
 www/components/shelf/shelf.js                                 |   97 +-
 www/components/social-icons/social-icons.js                   |   23 +-
 www/package.json                                              |   10 +-
 www/pages/about/how-it-works.md                               |    1 +
 www/pages/about/index.md                                      |    1 +
 www/pages/docs/configuration.md                               |    2 +-
 www/pages/docs/index.md                                       |   13 +-
 www/pages/index.html                                          |   56 +
 www/pages/index.md                                            |   28 -
 www/styles/home.css                                           |   65 +-
 www/styles/page.css                                           |  187 +-
 www/styles/theme.css                                          |   36 +-
 www/templates/app-template.js                                 |   28 -
 www/templates/app.html                                        |   47 +
 www/templates/home-template.js                                |   26 -
 www/templates/page-template.js                                |   54 -
 www/templates/page.html                                       |   40 +
 yarn.lock                                                     | 7434 ++++----------------------
 144 files changed, 4061 insertions(+), 8333 deletions(-)
greenwood - v0.9.0

Published by thescientist13 about 4 years ago

Overview

Introduced an optimization configuration for Greenwood, to further allow for applications to customize and tailer the user experience they want to deliver. To learn more visit our How It Works page. Bundled chunks for spa (default) mode are also now shipped with the async attribute on them.

Breaking Changes

None

Key Changes

  1. Strict Mode

Changelog

https://github.com/ProjectEvergreen/greenwood/issues?q=label%3Av0.9.0

Known Issues

  1. Components are over-rendering
  2. Better puppeteer / CI support and stability

Diff

$  git diff v0.8.0 v0.9.0 --stat
 .gitattributes                                                        |   5 +-
 .ls-lint.yml                                                          |  16 ++++++
 lerna.json                                                            |   2 +-
 netlify.toml                                                          |   6 ++
 package.json                                                          |   9 +--
 packages/cli/package.json                                             |   2 +-
 packages/cli/src/data/client.js                                       |   4 +-
 packages/cli/src/data/queries/config.gql                              |   1 +
 packages/cli/src/data/schema/config.js                                |   1 +
 packages/cli/src/lifecycles/config.js                                 |  11 +++-
 packages/cli/src/lifecycles/serialize.js                              |  24 ++++++--
 .../cases/build.config.error-mode/build.config.error-mode.spec.js     |  44 ++++++++++++++
 packages/cli/test/cases/build.config.error-mode/greenwood.config.js   |   3 +
 packages/cli/test/cases/build.config.meta/build.config.meta.spec.js   |  28 ++++++++-
 packages/cli/test/cases/build.config.mode/build.config.mode.spec.js   |  95 +++++++++++++++++++++++++++++++
 packages/cli/test/cases/build.config.mode/greenwood.config.js         |   3 +
 packages/cli/test/cases/build.config.mode/src/pages/about/index.md    |   0
 packages/cli/test/cases/build.config.mode/src/pages/hello.md          |   7 +++
 packages/cli/test/cases/build.config.mode/src/pages/index.md          |   3 +
 packages/cli/test/cases/build.config.title/build.config.title.spec.js |  29 +++++++++-
 .../build.data.graph-custom-frontmatter.spec.js                       |  38 ++++++++++++-
 packages/cli/test/cases/build.data.graph/build.data.graph.spec.js     |  63 +++++++++++++++++---
 .../build.default.workspace-template-app.spec.js                      |  28 ++++++++-
 packages/cli/test/unit/data/schema/config.spec.js                     |   8 +++
 packages/plugin-google-analytics/package.json                         |   4 +-
 packages/plugin-polyfills/package.json                                |   4 +-
 test/smoke-test.js                                                    |  29 ++++++++--
 www/assets/fonts/source-sans-pro-v13-latin-regular.ttf                | Bin 0 -> 40408 bytes
 www/assets/fonts/source-sans-pro-v13-latin-regular.woff               | Bin 0 -> 20179 bytes
 www/assets/fonts/source-sans-pro-v13-latin-regular.woff2              | Bin 0 -> 16112 bytes
 www/assets/fonts/source-sans-pro.css                                  |  11 ++++
 www/components/shelf/shelf.css                                        |   4 +-
 www/package.json                                                      |   2 +-
 www/pages/about/how-it-works.md                                       |  48 ++++++++++++++++
 www/pages/docs/configuration.md                                       |  14 +++++
 www/pages/docs/data.md                                                |   1 +
 www/pages/docs/layouts.md                                             |   2 +-
 www/pages/guides/netlify-deploy.md                                    |   2 +
 www/styles/theme.css                                                  |   4 +-
 yarn.lock                                                             |   5 ++
 40 files changed, 514 insertions(+), 46 deletions(-)
Package Rankings
Top 4.55% on Npmjs.org
Top 8.17% on Proxy.golang.org
Badges
Extracted from project README
Netlify Status GitHub release GitHub issues GitHub license lerna