Skip to content

v0.5.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@thescientist13 thescientist13 released this 24 Apr 01:51
· 732 commits to master since this release

Overview

Adds support for GraphQL to allow for content querying to create dynamically static pages, including <meta> and <title> tags.

Key Changes

  1. Build Time Data Access
  2. Deterministic Queries
  3. Configuration as data
  4. <title> from data
  5. <meta> from data
  6. Custom frontmatter as data
  7. Created a MenuQuery

Known Issues

  1. cache.json files are large and are being overfetched
  2. Dedupe content from JavaScript
  3. Components are over-rendering
  4. Better puppeteer / CI support and stability

Breaking Changes

  1. In your page templates, you will need to remove all instances ofMETAIMPORT, METADATA, METAELEMENT

Changelog

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

$ git diff v0.4.2 v0.5.0 --stat
 .eslintignore                                                                         |    3 +
 .eslintrc                                                                             |  201 ----
 .eslintrc.js                                                                          |  226 +++++
 .github/CONTRIBUTING.md                                                               |   51 +-
 .github/workflows/chromium-lib-install.sh                                             |   10 +
 .github/workflows/ci.yml                                                              |    4 +-
 .github/workflows/master.yml                                                          |    4 +-
 .mocharc.js                                                                           |    6 +
 lerna.json                                                                            |    2 +-
 nyc.config.js                                                                         |   10 +-
 package.json                                                                          |    9 +-
 packages/cli/package.json                                                             |   22 +-
 packages/cli/src/config/babel.config.js                                               |    7 +-
 packages/cli/src/config/webpack.config.common.js                                      |   16 +-
 packages/cli/src/data/cache.js                                                        |   51 +
 packages/cli/src/data/client.js                                                       |   37 +
 packages/cli/src/data/queries/children.gql                                            |   10 +
 packages/cli/src/data/queries/config.gql                                              |   19 +
 packages/cli/src/data/queries/graph.gql                                               |   10 +
 packages/cli/src/data/queries/menu.gql                                                |   20 +
 packages/cli/src/data/schema/config.js                                                |   45 +
 packages/cli/src/data/schema/graph.js                                                 |  198 ++++
 packages/cli/src/data/schema/schema.js                                                |   50 +
 packages/cli/src/data/server.js                                                       |   31 +
 packages/cli/src/lib/browser.js                                                       |   26 +-
 packages/cli/src/lifecycles/config.js                                                 |    2 +-
 packages/cli/src/lifecycles/context.js                                                |    2 -
 packages/cli/src/lifecycles/graph.js                                                  |   71 +-
 packages/cli/src/lifecycles/scaffold.js                                               |   20 +-
 packages/cli/src/lifecycles/serialize.js                                              |   97 +-
 packages/cli/src/plugins/meta.js                                                      |   71 --
 packages/cli/src/tasks/develop.js                                                     |    5 +
 packages/cli/src/templates/app-template.js                                            |   85 +-
 packages/cli/src/templates/index.html                                                 |    3 +-
 packages/cli/src/templates/page-template.js                                           |    3 -
 packages/cli/test/cases/build.config.default/build.config.default.spec.js             |    2 +-
 .../test/cases/build.config.error-public-path/build.config.error-public-path.spec.js  |    9 +-
 .../test/cases/build.config.error-theme-file/build.config.error-theme-file.spec.js    |    8 +-
 packages/cli/test/cases/build.config.error-title/build.config.error-title.spec.js     |    8 +-
 .../build.config.error-workspace-absolute.spec.js                                     |    8 +-
 .../cli/test/cases/build.config.error-workspace/build.config.error-workspace.spec.js  |    8 +-
 packages/cli/test/cases/build.config.meta/build.config.meta.spec.js                   |   15 +-
 packages/cli/test/cases/build.config.public-path/build.config.public-path.spec.js     |    6 +-
 packages/cli/test/cases/build.config.theme/build.config.theme.spec.js                 |    6 +-
 packages/cli/test/cases/build.config.theme/src/templates/page-template.js             |    3 -
 packages/cli/test/cases/build.config.title/build.config.title.spec.js                 |   23 +-
 .../test/cases/build.config.workspace-custom/build.config.workspace-custom.spec.js    |    4 +-
 .../build.data.graph-custom-frontmatter/build.data.graph-custom-frontmatter.spec.js   |  109 ++
 .../cli/test/cases/build.data.graph-custom-frontmatter/src/pages/blog/first-post.md   |   10 +
 .../cli/test/cases/build.data.graph-custom-frontmatter/src/pages/blog/second-post.md  |   10 +
 packages/cli/test/cases/build.data.graph-custom-frontmatter/src/pages/index.md        |    7 +
 .../cli/test/cases/build.data.graph-custom-frontmatter/src/templates/blog-template.js |   80 ++
 packages/cli/test/cases/build.data.graph/build.data.graph.spec.js                     |  175 ++++
 packages/cli/test/cases/build.data.graph/src/components/header.js                     |   57 ++
 packages/cli/test/cases/build.data.graph/src/pages/blog/first-post.md                 |   10 +
 packages/cli/test/cases/build.data.graph/src/pages/blog/second-post.md                |   10 +
 packages/cli/test/cases/build.data.graph/src/pages/index.md                           |    7 +
 packages/cli/test/cases/build.data.graph/src/templates/blog-template.js               |   66 ++
 packages/cli/test/cases/build.data.graph/src/templates/page-template.js               |   23 +
 .../test/cases/build.default.workspace-assets/build.default.workspace-assets.spec.js  |    2 +-
 .../build.default.workspace-getting-started.spec.js                                   |    4 +-
 .../test/cases/build.default.workspace-getting-started/src/templates/blog-template.js |    4 -
 .../test/cases/build.default.workspace-nested/build.default.workspace-nested.spec.js  |    4 +-
 .../build.default.workspace-template-app/build.default.workspace-template-app.spec.js |   19 +-
 .../cli/test/cases/build.default.workspace-template-app/src/templates/app-template.js |   23 +-
 .../build.default.workspace-template-page-style.spec.js                               |    6 +-
 .../cases/build.default.workspace-template-page-style/src/templates/page-template.js  |    3 -
 .../test/cases/build.default.workspace-template-page/src/templates/page-template.js   |    3 -
 .../build.default.workspace-user-directory-mapping/src/templates/page-template.js     |    4 -
 .../cli/test/cases/build.plugins-error-provider/build.plugins-error-provider.spec.js  |    8 +-
 packages/cli/test/cases/build.plugins-error-type/build.plugins-error-type.spec.js     |   10 +-
 packages/cli/test/cases/build.plugins-error-type/greenwood.config.js                  |    2 +-
 packages/cli/test/cases/build.plugins-index/build.plugins-index.spec.js               |    6 +-
 packages/cli/test/cases/build.plugins-index/greenwood.config.js                       |    8 +-
 packages/cli/test/cases/build.plugins-webpack/build-plugins-webpack.spec.js           |    4 +-
 packages/cli/test/cases/build.plugins-webpack/greenwood.config.js                     |    2 +-
 packages/cli/test/unit/data/mocks/config.js                                           |   17 +
 packages/cli/test/unit/data/mocks/graph.js                                            |    4 +
 packages/cli/test/unit/data/schema/config.spec.js                                     |   83 ++
 packages/cli/test/unit/data/schema/graph.menu.spec.js                                 |  354 +++++++
 packages/cli/test/unit/data/schema/graph.spec.js                                      |  105 ++
 packages/plugin-google-analytics/package.json                                         |    4 +-
 packages/plugin-google-analytics/test/cases/default/default.spec.js                   |    8 +-
 .../plugin-google-analytics/test/cases/error-analytics-id/error-analytics-id.spec.js  |    6 +-
 packages/plugin-google-analytics/test/cases/option-anonymous/option-anonymous.spec.js |    8 +-
 packages/plugin-polyfills/README.md                                                   |   10 +-
 packages/plugin-polyfills/package.json                                                |    4 +-
 packages/plugin-polyfills/test/cases/default/default.spec.js                          |    2 +-
 test/smoke-test.js                                                                    |   41 +-
 www/assets/graphql-playground.png                                                     |  Bin 0 -> 339846 bytes
 www/assets/web-components-browser-support.png                                         |  Bin 40340 -> 160049 bytes
 www/components/header/header.js                                                       |   51 +-
 www/components/shelf/about.json                                                       |   34 -
 www/components/shelf/documentation-list.json                                          |  106 --
 www/components/shelf/getting-started-list.json                                        |   69 --
 www/components/shelf/plugins.json                                                     |   14 -
 www/components/shelf/shelf.js                                                         |   58 +-
 www/package.json                                                                      |    2 +-
 www/pages/about/community.md                                                          |    8 +
 www/pages/about/features.md                                                           |   13 +-
 www/pages/about/goals.md                                                              |    7 +
 www/pages/about/how-it-works.md                                                       |   10 +-
 www/pages/about/index.md                                                              |    2 +
 www/pages/docs/component-model.md                                                     |    7 +
 www/pages/docs/configuration.md                                                       |    8 +
 www/pages/docs/css-and-images.md                                                      |    8 +
 www/pages/docs/data.md                                                                |  357 +++++++
 www/pages/docs/front-matter.md                                                        |   76 +-
 www/pages/docs/index.md                                                               |    6 +
 www/pages/docs/layouts.md                                                             |   18 +-
 www/pages/docs/markdown.md                                                            |    8 +
 www/pages/docs/menus.md                                                               |  290 ++++++
 www/pages/docs/tech-stack.md                                                          |    8 +
 www/pages/getting-started/branding.md                                                 |   12 +-
 www/pages/getting-started/build-and-deploy.md                                         |    9 +-
 www/pages/getting-started/creating-content.md                                         |   14 +-
 www/pages/getting-started/index.md                                                    |    4 +-
 www/pages/getting-started/key-concepts.md                                             |   15 +-
 www/pages/getting-started/next-steps.md                                               |    9 +-
 www/pages/getting-started/project-setup.md                                            |   10 +-
 www/pages/getting-started/quick-start.md                                              |    7 +
 www/pages/plugins/composite-plugins.md                                                |    9 +-
 www/pages/plugins/index-hooks.md                                                      |   19 +-
 www/pages/plugins/index.md                                                            |   18 +-
 www/pages/plugins/webpack.md                                                          |    9 +-
 www/templates/home-template.js                                                        |   14 +-
 www/templates/page-template.js                                                        |   43 +-
 yarn.lock                                                                             | 2229 ++++++++++++++++++++++++++++++-----------
 128 files changed, 4988 insertions(+), 1442 deletions(-)